diff --git a/.cursor/rules/vars-usage.mdc b/.cursor/rules/vars-usage.mdc new file mode 100644 index 00000000..233e0aba --- /dev/null +++ b/.cursor/rules/vars-usage.mdc @@ -0,0 +1,18 @@ +--- +description: Restricts usage of the global Mineflayer `bot` variable to only src/ files; prohibits usage in renderer/. Specifies correct usage of player state and appViewer globals. +globs: src/**/*.ts,renderer/**/*.ts +alwaysApply: false +--- +Ask AI + +- The global variable `bot` refers to the Mineflayer bot instance. +- You may use `bot` directly in any file under the `src/` directory (e.g., `src/mineflayer/playerState.ts`). +- Do **not** use `bot` directly in any file under the `renderer/` directory or its subfolders (e.g., `renderer/viewer/three/worldrendererThree.ts`). +- In renderer code, all bot/player state and events must be accessed via explicit interfaces, state managers, or passed-in objects, never by referencing `bot` directly. +- In renderer code (such as in `WorldRendererThree`), use the `playerState` property (e.g., `worldRenderer.playerState.gameMode`) to access player state. The implementation for `playerState` lives in `src/mineflayer/playerState.ts`. +- In `src/` code, you may use the global variable `appViewer` from `src/appViewer.ts` directly. Do **not** import `appViewer` or use `window.appViewer`; use the global `appViewer` variable as-is. +- Some other global variables that can be used without window prefixes are listed in src/globals.d.ts + +Rationale: This ensures a clean separation between the Mineflayer logic (server-side/game logic) and the renderer (client-side/view logic), making the renderer portable and testable, and maintains proper usage of global state. + +For more general project contributing guides see CONTRIBUTING.md on like how to setup the project. Use pnpm tsc if needed to validate result with typechecking the whole project. diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..38ca0016 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +# build stuff +node_modules +public \ No newline at end of file diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 00000000..9aa16166 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,9 @@ +node_modules +rsbuild.config.ts +*.module.css.d.ts +*.generated.ts +generated +dist +public +**/*/rsbuildSharedConfig.ts +src/mcDataTypes.ts \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 00000000..63f6749a --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,223 @@ +{ + "extends": [ + "zardoy", + "plugin:@stylistic/disable-legacy" + ], + "ignorePatterns": [ + "!*.js" + ], + "plugins": [ + "@stylistic" + ], + "rules": { + // style + "@stylistic/space-infix-ops": "error", + "@stylistic/no-multi-spaces": "error", + "@stylistic/no-trailing-spaces": "error", + "@stylistic/space-before-function-paren": "error", + "@stylistic/array-bracket-spacing": "error", + // would be great to have but breaks TS code like (url?) => ... + // "@stylistic/arrow-parens": [ + // "error", + // "as-needed" + // ], + "@stylistic/arrow-spacing": "error", + "@stylistic/block-spacing": "error", + "@typescript-eslint/no-this-alias": "off", + "@stylistic/brace-style": [ + "error", + "1tbs", + { + "allowSingleLine": true + } + ], + // too annoying to be forced to multi-line, probably should be enforced to never + // "@stylistic/comma-dangle": [ + // "error", + // "always-multiline" + // ], + "@stylistic/computed-property-spacing": "error", + "@stylistic/dot-location": [ + "error", + "property" + ], + "@stylistic/eol-last": "error", + "@stylistic/function-call-spacing": "error", + "@stylistic/function-paren-newline": [ + "error", + "consistent" + ], + "@stylistic/generator-star-spacing": "error", + "@stylistic/implicit-arrow-linebreak": "error", + "@stylistic/indent-binary-ops": [ + "error", + 2 + ], + "@stylistic/function-call-argument-newline": [ + "error", + "consistent" + ], + "@stylistic/space-in-parens": [ + "error", + "never" + ], + "@stylistic/object-curly-spacing": [ + "error", + "always" + ], + "@stylistic/comma-spacing": "error", + "@stylistic/semi": [ + "error", + "never" + ], + "@stylistic/indent": [ + "error", + 2, + { + "SwitchCase": 1, + "ignoredNodes": [ + "TemplateLiteral" + ] + } + ], + "@stylistic/quotes": [ + "error", + "single", + { + "allowTemplateLiterals": true + } + ], + "@stylistic/key-spacing": "error", + "@stylistic/keyword-spacing": "error", + // "@stylistic/line-comment-position": "error", // not needed + // "@stylistic/lines-around-comment": "error", // also not sure if needed + // "@stylistic/max-len": "error", // also not sure if needed + // "@stylistic/linebreak-style": "error", // let git decide + "@stylistic/max-statements-per-line": [ + "error", + { + "max": 5 + } + ], + // "@stylistic/member-delimiter-style": "error", + // "@stylistic/multiline-ternary": "error", // not needed + // "@stylistic/newline-per-chained-call": "error", // not sure if needed + "@stylistic/new-parens": "error", + "@typescript-eslint/class-literal-property-style": "off", + "@stylistic/no-confusing-arrow": "error", + "@stylistic/wrap-iife": "error", + "@stylistic/space-before-blocks": "error", + "@stylistic/type-generic-spacing": "error", + "@stylistic/template-tag-spacing": "error", + "@stylistic/template-curly-spacing": "error", + "@stylistic/type-annotation-spacing": "error", + "@stylistic/jsx-child-element-spacing": "error", + // buggy + // "@stylistic/jsx-closing-bracket-location": "error", + // "@stylistic/jsx-closing-tag-location": "error", + "@stylistic/jsx-curly-brace-presence": "error", + "@stylistic/jsx-curly-newline": "error", + "@stylistic/jsx-curly-spacing": "error", + "@stylistic/jsx-equals-spacing": "error", + "@stylistic/jsx-first-prop-new-line": "error", + "@stylistic/jsx-function-call-newline": "error", + "@stylistic/jsx-max-props-per-line": [ + "error", + { + "maximum": 7 + } + ], + "@stylistic/jsx-pascal-case": "error", + "@stylistic/jsx-props-no-multi-spaces": "error", + "@stylistic/jsx-self-closing-comp": "error", + // "@stylistic/jsx-sort-props": [ + // "error", + // { + // "callbacksLast": false, + // "shorthandFirst": true, + // "shorthandLast": false, + // "multiline": "ignore", + // "ignoreCase": true, + // "noSortAlphabetically": true, + // "reservedFirst": [ + // "key", + // "className" + // ], + // "locale": "auto" + // } + // ], + // perf + "import/no-deprecated": "off", + // --- + "@typescript-eslint/prefer-nullish-coalescing": "off", + "@typescript-eslint/naming-convention": "off", + "prefer-template": "off", + // intentional: improve readability in some cases + "no-else-return": "off", + "@typescript-eslint/padding-line-between-statements": "off", + "@typescript-eslint/no-dynamic-delete": "off", + "arrow-body-style": "off", + "unicorn/prefer-ternary": "off", + "unicorn/switch-case-braces": "off", + "@typescript-eslint/consistent-type-definitions": "off", + "unicorn/explicit-length-check": "off", + "unicorn/prefer-dom-node-append": "off", + "typescript-eslint/no-confusing-void-expression": "off", + "unicorn/no-lonely-if": "off", + "no-multi-assign": "off", + "sonarjs/no-duplicate-string": "off", + "new-cap": "off", + "unicorn/consistent-destructuring": "off", + "unicorn/no-await-expression-member": "off", + "unicorn/prefer-add-event-listener": "off", + "unicorn/prefer-top-level-await": "off", + "default-case": "off", + // I guess it would better to fix + "node/prefer-global/buffer": "off", + "unicorn/prefer-optional-catch-binding": "off", // still useful for debugging + "no-alert": "off", // todo once replaced with ui, enable + "@typescript-eslint/restrict-plus-operands": "off", + // --- + "@typescript-eslint/no-throw-literal": "off", // disabling because of "rule expansion" + "no-empty-function": "off", + "@typescript-eslint/no-explicit-any": "off", + "import/no-extraneous-dependencies": "off", + "@typescript-eslint/ban-types": "off", + "unicorn/prefer-query-selector": "off", + "@typescript-eslint/dot-notation": "off", // trick prop type-checking + "@typescript-eslint/consistent-type-imports": "off", + "no-negated-condition": "off", + "@typescript-eslint/no-require-imports": "off", + "unicorn/prefer-number-properties": "off", + "@typescript-eslint/no-confusing-void-expression": "off", + "unicorn/no-empty-file": "off", + "unicorn/prefer-event-target": "off", + "@typescript-eslint/member-ordering": "off", + // needs to be fixed actually + "complexity": "off", + "@typescript-eslint/no-floating-promises": "warn", + "no-async-promise-executor": "off", + "no-bitwise": "off", + "unicorn/filename-case": "off", + "max-depth": "off", + "unicorn/no-typeof-undefined": "off" + }, + "overrides": [ + { + "files": [ + "*.js" + ], + "rules": { + "@stylistic/space-before-function-paren": [ + "error", + { + "anonymous": "always", + "named": "never", + "asyncArrow": "always" + } + ] + } + } + ], + "root": true +} diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml new file mode 100644 index 00000000..e80b7100 --- /dev/null +++ b/.github/workflows/benchmark.yml @@ -0,0 +1,59 @@ +name: Benchmark +on: + issue_comment: + types: [created] + push: + branches: + - perf-test +jobs: + deploy: + runs-on: ubuntu-latest + if: >- + (github.event_name == 'push' && github.ref == 'refs/heads/perf-test') || + ( + github.event_name == 'issue_comment' && + github.event.issue.pull_request != '' && + (startsWith(github.event.comment.body, '/benchmark')) + ) + permissions: + pull-requests: write + steps: + - run: lscpu + + - name: Checkout + uses: actions/checkout@v2 + - name: Setup pnpm + uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: "pnpm" + - name: Move Cypress to dependencies + run: | + jq '.dependencies.cypress = .optionalDependencies.cypress | del(.optionalDependencies.cypress)' package.json > package.json.tmp + mv package.json.tmp package.json + - run: pnpm install --no-frozen-lockfile + + - run: pnpm build + - run: nohup pnpm prod-start & + + - run: pnpm test:benchmark + id: benchmark + continue-on-error: true + # read benchmark results from stdout + - run: | + if [ -f benchmark.txt ]; then + # Format the benchmark results for GitHub comment + BENCHMARK_RESULT=$(cat benchmark.txt | sed 's/^/- /') + echo "BENCHMARK_RESULT<> $GITHUB_ENV + echo "$BENCHMARK_RESULT" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV + else + echo "BENCHMARK_RESULT=Benchmark failed to run or produce results" >> $GITHUB_ENV + fi + + - uses: mshick/add-pr-comment@v2 + with: + allow-repeats: true + message: | + Benchmark result: ${{ env.BENCHMARK_RESULT }} diff --git a/.github/workflows/build-single-file.yml b/.github/workflows/build-single-file.yml new file mode 100644 index 00000000..5f9800db --- /dev/null +++ b/.github/workflows/build-single-file.yml @@ -0,0 +1,33 @@ +name: build-single-file + +on: + workflow_dispatch: + +jobs: + build-and-bundle: + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Checkout repository + uses: actions/checkout@master + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Install dependencies + run: pnpm install + + - name: Build single-file version - minecraft.html + run: pnpm build-single-file && mv dist/single/index.html minecraft.html + env: + LOCAL_CONFIG_FILE: config.mcraft-only.json + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: minecraft.html + path: minecraft.html diff --git a/.github/workflows/build-zip.yml b/.github/workflows/build-zip.yml new file mode 100644 index 00000000..76ca65ca --- /dev/null +++ b/.github/workflows/build-zip.yml @@ -0,0 +1,45 @@ +name: Make Self Host Zip + +on: + workflow_dispatch: + +jobs: + build-and-bundle: + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Checkout repository + uses: actions/checkout@master + + - uses: actions/setup-node@v4 + with: + node-version: 22 + + - name: Install pnpm + uses: pnpm/action-setup@v4 + + - name: Install dependencies + run: pnpm install + + - name: Build project + run: pnpm build + env: + LOCAL_CONFIG_FILE: config.mcraft-only.json + + - name: Bundle server.js + run: | + pnpm esbuild server.js --bundle --platform=node --outfile=bundled-server.js --define:process.env.NODE_ENV="'production'" + + - name: Create distribution package + run: | + mkdir -p package + cp -r dist package/ + cp bundled-server.js package/server.js + cd package + zip -r ../self-host.zip . + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: self-host + path: self-host.zip diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..8fc56ea9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,177 @@ +name: CI +on: + pull_request: +jobs: + build-and-deploy: + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Checkout repository + uses: actions/checkout@master + - name: Setup Java JDK + uses: actions/setup-java@v1.4.3 + with: + java-version: 17 + java-package: jre + - uses: actions/setup-node@v4 + with: + node-version: 22 + # cache: "pnpm" + - name: Install pnpm + uses: pnpm/action-setup@v4 + - run: pnpm install + - run: pnpm build-single-file + - name: Store minecraft.html size + run: | + SIZE_BYTES=$(du -s dist/single/minecraft.html 2>/dev/null | cut -f1) + echo "SIZE_BYTES=$SIZE_BYTES" >> $GITHUB_ENV + - run: pnpm check-build + - name: Create zip package for size comparison + run: | + mkdir -p package + cp -r dist package/ + cd package + zip -r ../self-host.zip . + - run: pnpm build-playground + # - run: pnpm build-storybook + - run: pnpm test-unit + - run: pnpm lint + + - name: Parse Bundle Stats + run: | + GZIP_BYTES=$(du -s self-host.zip 2>/dev/null | cut -f1) + SIZE=$(echo "scale=2; $SIZE_BYTES/1024/1024" | bc) + GZIP_SIZE=$(echo "scale=2; $GZIP_BYTES/1024/1024" | bc) + echo "{\"total\": ${SIZE}, \"gzipped\": ${GZIP_SIZE}}" > /tmp/bundle-stats.json + + # - name: Compare Bundle Stats + # id: compare + # uses: actions/github-script@v6 + # env: + # GITHUB_TOKEN: ${{ secrets.GIST_TOKEN }} + # with: + # script: | + # const gistId = '${{ secrets.BUNDLE_STATS_GIST_ID }}'; + + # async function getGistContent() { + # const { data } = await github.rest.gists.get({ + # gist_id: gistId, + # headers: { + # authorization: `token ${process.env.GITHUB_TOKEN}` + # } + # }); + # return JSON.parse(data.files['bundle-stats.json'].content || '{}'); + # } + + # const content = await getGistContent(); + # const baseStats = content['${{ github.event.pull_request.base.ref }}']; + # const newStats = require('/tmp/bundle-stats.json'); + + # const comparison = `minecraft.html (normal build gzip)\n${baseStats.total}MB (${baseStats.gzipped}MB compressed) -> ${newStats.total}MB (${newStats.gzipped}MB compressed)`; + # core.setOutput('stats', comparison); + + # - run: pnpm tsx scripts/buildNpmReact.ts + - run: nohup pnpm prod-start & + - run: nohup pnpm test-mc-server & + - uses: cypress-io/github-action@v5 + with: + install: false + - uses: actions/upload-artifact@v4 + if: failure() + with: + name: cypress-images + path: cypress/screenshots/ + # - run: node scripts/outdatedGitPackages.mjs + # if: ${{ github.event.pull_request.base.ref == 'release' }} + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # - name: Store Bundle Stats + # if: github.event.pull_request.base.ref == 'next' + # uses: actions/github-script@v6 + # env: + # GITHUB_TOKEN: ${{ secrets.GIST_TOKEN }} + # with: + # script: | + # const gistId = '${{ secrets.BUNDLE_STATS_GIST_ID }}'; + + # async function getGistContent() { + # const { data } = await github.rest.gists.get({ + # gist_id: gistId, + # headers: { + # authorization: `token ${process.env.GITHUB_TOKEN}` + # } + # }); + # return JSON.parse(data.files['bundle-stats.json'].content || '{}'); + # } + + # async function updateGistContent(content) { + # await github.rest.gists.update({ + # gist_id: gistId, + # headers: { + # authorization: `token ${process.env.GITHUB_TOKEN}` + # }, + # files: { + # 'bundle-stats.json': { + # content: JSON.stringify(content, null, 2) + # } + # } + # }); + # } + + # const stats = require('/tmp/bundle-stats.json'); + # const content = await getGistContent(); + # content['${{ github.event.pull_request.base.ref }}'] = stats; + # await updateGistContent(content); + + # - name: Update PR Description + # uses: actions/github-script@v6 + # with: + # script: | + # const { data: pr } = await github.rest.pulls.get({ + # owner: context.repo.owner, + # repo: context.repo.repo, + # pull_number: context.issue.number + # }); + + # let body = pr.body || ''; + # const statsMarker = '### Bundle Size'; + # const comparison = '${{ steps.compare.outputs.stats }}'; + + # if (body.includes(statsMarker)) { + # body = body.replace( + # new RegExp(`${statsMarker}[^\n]*\n[^\n]*`), + # `${statsMarker}\n${comparison}` + # ); + # } else { + # body += `\n\n${statsMarker}\n${comparison}`; + # } + + # await github.rest.pulls.update({ + # owner: context.repo.owner, + # repo: context.repo.repo, + # pull_number: context.issue.number, + # body + # }); + # dedupe-check: + # runs-on: ubuntu-latest + # if: github.event.pull_request.head.ref == 'next' + # steps: + # - name: Checkout repository + # uses: actions/checkout@v2 + + # - name: Install pnpm + # run: npm install -g pnpm@9.0.4 + + # - name: Run pnpm dedupe + # run: pnpm dedupe + + # - name: Check for changes + # run: | + # if ! git diff --exit-code --quiet pnpm-lock.yaml; then + # echo "pnpm dedupe introduced changes:" + # git diff --color=always pnpm-lock.yaml + # exit 1 + # else + # echo "No changes detected after pnpm dedupe in pnpm-lock.yaml" + # fi diff --git a/.github/workflows/fix-lint.yml b/.github/workflows/fix-lint.yml new file mode 100644 index 00000000..da2cf87d --- /dev/null +++ b/.github/workflows/fix-lint.yml @@ -0,0 +1,29 @@ +name: Fix Lint Command +on: + issue_comment: + types: [created] +jobs: + deploy: + runs-on: ubuntu-latest + if: >- + github.event.issue.pull_request != '' && + ( + contains(github.event.comment.body, '/fix') + ) + permissions: + pull-requests: write + steps: + - uses: actions/checkout@v2 + with: + ref: refs/pull/${{ github.event.issue.number }}/head + - uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Install pnpm + uses: pnpm/action-setup@v4 + - run: pnpm install + - run: pnpm lint --fix + - name: Push Changes + uses: ad-m/github-push-action@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/merge-next.yml b/.github/workflows/merge-next.yml new file mode 100644 index 00000000..ee02789b --- /dev/null +++ b/.github/workflows/merge-next.yml @@ -0,0 +1,28 @@ +name: Update Base Branch Command +on: + issue_comment: + types: [created] +jobs: + deploy: + runs-on: ubuntu-latest + if: >- + github.event.issue.pull_request != '' && + ( + contains(github.event.comment.body, '/update') + ) + permissions: + pull-requests: write + contents: write + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # Fetch all history so we can merge branches + ref: refs/pull/${{ github.event.issue.number }}/head + - name: Fetch All Branches + run: git fetch --all + # - name: Checkout PR + # run: git checkout ${{ github.event.issue.pull_request.head.ref }} + - name: Merge From Next + run: git merge origin/next --strategy-option=theirs + - name: Push Changes + run: git push diff --git a/.github/workflows/next-deploy.yml b/.github/workflows/next-deploy.yml new file mode 100644 index 00000000..75b39f6c --- /dev/null +++ b/.github/workflows/next-deploy.yml @@ -0,0 +1,91 @@ +name: Vercel Deploy Next +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + ALIASES: ${{ vars.ALIASES }} + MAIN_MENU_LINKS: ${{ vars.MAIN_MENU_LINKS }} +on: + push: + branches: + - next +jobs: + deploy: + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - name: Checkout + uses: actions/checkout@v2 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Install pnpm + uses: pnpm/action-setup@v4 + - name: Install Global Dependencies + run: pnpm add -g vercel + - name: Install Dependencies + run: pnpm install + - name: Pull Vercel Environment Information + run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} + - name: Write Release Info + run: | + echo "{\"latestTag\": \"$(git rev-parse --short $GITHUB_SHA)\", \"isCommit\": true}" > assets/release.json + - name: Download Generated Sounds map + run: node scripts/downloadSoundsMap.mjs + - name: Build Project Artifacts + run: vercel build --token=${{ secrets.VERCEL_TOKEN }} + env: + CONFIG_JSON_SOURCE: BUNDLED + LOCAL_CONFIG_FILE: config.mcraft-only.json + - name: Copy playground files + run: | + mkdir -p .vercel/output/static/playground + pnpm build-playground + cp -r renderer/dist/* .vercel/output/static/playground/ + - name: Deploy Project Artifacts to Vercel + uses: mathiasvr/command-output@v2.0.0 + with: + run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} + id: deploy + - name: Start servers for testing + run: | + nohup pnpm prod-start & + nohup pnpm test-mc-server & + - name: Run Cypress smoke tests + uses: cypress-io/github-action@v5 + with: + install: false + spec: cypress/e2e/smoke.spec.ts + - uses: actions/upload-artifact@v4 + if: failure() + with: + name: cypress-smoke-test-screenshots + path: cypress/screenshots/ + - name: Set deployment aliases + run: | + for alias in $(echo ${{ secrets.TEST_PREVIEW_DOMAIN }} | tr "," "\n"); do + vercel alias set ${{ steps.deploy.outputs.stdout }} $alias --token=${{ secrets.VERCEL_TOKEN }} --scope=zaro + done + + - name: Create Release Pull Request + uses: actions/github-script@v6 + with: + script: | + const { data: pulls } = await github.rest.pulls.list({ + owner: context.repo.owner, + repo: context.repo.repo, + head: `${context.repo.owner}:next`, + base: 'release', + state: 'open' + }); + + if (pulls.length === 0) { + await github.rest.pulls.create({ + owner: context.repo.owner, + repo: context.repo.repo, + title: 'Release', + head: 'next', + base: 'release', + body: 'PR was created automatically by the release workflow, hope you release it as soon as possible!', + }); + } diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 00000000..89fd6698 --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,114 @@ +name: Vercel PR Deploy (Preview) +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + ALIASES: ${{ vars.ALIASES }} +on: + issue_comment: + types: [created] + pull_request_target: +jobs: + deploy: + runs-on: ubuntu-latest + if: >- + ( + ( + github.event_name == 'issue_comment' && + contains(github.event.comment.body, '/deploy') && + github.event.issue.pull_request != null + ) || + ( + github.event_name == 'pull_request_target' && + contains(fromJson(vars.AUTO_DEPLOY_PRS), github.event.pull_request.number) + ) + ) + permissions: + pull-requests: write + steps: + - name: Checkout Base To Temp + uses: actions/checkout@v2 + with: + path: temp-base-repo + - name: Get deployment alias + run: node temp-base-repo/scripts/githubActions.mjs getAlias + id: alias + env: + ALIASES: ${{ env.ALIASES }} + PULL_URL: ${{ github.event.issue.pull_request.url || github.event.pull_request.url }} + - name: Checkout PR (comment) + uses: actions/checkout@v2 + if: github.event_name == 'issue_comment' + with: + ref: refs/pull/${{ github.event.issue.number }}/head + - name: Checkout PR (pull_request) + uses: actions/checkout@v2 + if: github.event_name == 'pull_request_target' + with: + ref: refs/pull/${{ github.event.pull_request.number }}/head + + - name: Install pnpm + uses: pnpm/action-setup@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + cache: "pnpm" + - name: Update deployAlwaysUpdate packages + run: | + if [ -f package.json ]; then + PACKAGES=$(node -e "const pkg = require('./package.json'); if (pkg.deployAlwaysUpdate) console.log(pkg.deployAlwaysUpdate.join(' '))") + if [ ! -z "$PACKAGES" ]; then + echo "Updating packages: $PACKAGES" + pnpm up -L $PACKAGES + else + echo "No deployAlwaysUpdate packages found in package.json" + fi + else + echo "package.json not found" + fi + - name: Install Global Dependencies + run: pnpm add -g vercel + - name: Pull Vercel Environment Information + run: vercel pull --yes --environment=preview --token=${{ secrets.VERCEL_TOKEN }} + - name: Write Release Info + run: | + echo "{\"latestTag\": \"$(git rev-parse --short ${{ github.event.pull_request.head.sha }})\", \"isCommit\": true}" > assets/release.json + - name: Download Generated Sounds map + run: node scripts/downloadSoundsMap.mjs + - name: Build Project Artifacts + run: vercel build --token=${{ secrets.VERCEL_TOKEN }} + env: + CONFIG_JSON_SOURCE: BUNDLED + LOCAL_CONFIG_FILE: config.mcraft-only.json + - name: Copy playground files + run: | + mkdir -p .vercel/output/static/playground + pnpm build-playground + cp -r renderer/dist/* .vercel/output/static/playground/ + - name: Write pr redirect index.html + run: | + mkdir -p .vercel/output/static/pr + echo "" > .vercel/output/static/pr/index.html + - name: Write commit redirect index.html + run: | + mkdir -p .vercel/output/static/commit + echo "" > .vercel/output/static/commit/index.html + - name: Deploy Project Artifacts to Vercel + uses: mathiasvr/command-output@v2.0.0 + with: + run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} + id: deploy + - uses: mshick/add-pr-comment@v2 + # if: github.event_name == 'issue_comment' + with: + allow-repeats: true + message: | + Deployed to Vercel Preview: ${{ steps.deploy.outputs.stdout }} + [Playground](${{ steps.deploy.outputs.stdout }}/playground/) + [Storybook](${{ steps.deploy.outputs.stdout }}/storybook/) + # - run: git checkout next scripts/githubActions.mjs + - name: Set deployment alias + if: ${{ steps.alias.outputs.alias != '' && steps.alias.outputs.alias != 'mcraft.fun' && steps.alias.outputs.alias != 's.mcraft.fun' }} + run: | + for alias in $(echo ${{ steps.alias.outputs.alias }} | tr "," "\n"); do + vercel alias set ${{ steps.deploy.outputs.stdout }} $alias --token=${{ secrets.VERCEL_TOKEN }} --scope=zaro + done diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..3e8c4136 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,116 @@ +name: Release +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} + MAIN_MENU_LINKS: ${{ vars.MAIN_MENU_LINKS }} +on: + push: + branches: [release] +jobs: + build-and-deploy: + runs-on: ubuntu-latest + permissions: write-all + steps: + - name: Checkout repository + uses: actions/checkout@master + - uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Install pnpm + uses: pnpm/action-setup@v4 + - name: Install Global Dependencies + run: pnpm add -g vercel + # - run: pnpm install + # - run: pnpm build + - run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} + - run: node scripts/replaceFavicon.mjs ${{ secrets.FAVICON_MAIN }} + # will install + build to .vercel/output/static + - name: Get Release Info + run: pnpx zardoy-release empty --skip-github --output-file assets/release.json + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Download Generated Sounds map + run: node scripts/downloadSoundsMap.mjs + - run: vercel build --token=${{ secrets.VERCEL_TOKEN }} --prod + env: + CONFIG_JSON_SOURCE: BUNDLED + LOCAL_CONFIG_FILE: config.mcraft-only.json + - name: Copy playground files + run: | + mkdir -p .vercel/output/static/playground + pnpm build-playground + cp -r renderer/dist/* .vercel/output/static/playground/ + + # publish to github + - run: cp vercel.json .vercel/output/static/vercel.json + - uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: .vercel/output/static + force_orphan: true + + # Create CNAME file for custom domain + - name: Create CNAME file + run: echo "github.mcraft.fun" > .vercel/output/static/CNAME + + - name: Deploy to mwc-mcraft-pages repository + uses: peaceiris/actions-gh-pages@v3 + with: + personal_token: ${{ secrets.MCW_MCRAFT_PAGE_DEPLOY_TOKEN }} + external_repository: ${{ github.repository_owner }}/mwc-mcraft-pages + publish_dir: .vercel/output/static + publish_branch: main + destination_dir: docs + force_orphan: true + + - name: Change index.html title + run: | + # change Minecraft Web Client to Minecraft Web Client — Free Online Browser Version + sed -i 's/Minecraft Web Client<\/title>/<title>Minecraft Web Client — Free Online Browser Version<\/title>/' .vercel/output/static/index.html + + - name: Deploy Project to Vercel + uses: mathiasvr/command-output@v2.0.0 + with: + run: vercel deploy --prebuilt --token=${{ secrets.VERCEL_TOKEN }} --prod + id: deploy + - name: Get releasing alias + run: node scripts/githubActions.mjs getReleasingAlias + id: alias + - name: Set deployment alias + run: | + for alias in $(echo ${{ steps.alias.outputs.alias }} | tr "," "\n"); do + vercel alias set ${{ steps.deploy.outputs.stdout }} $alias --token=${{ secrets.VERCEL_TOKEN }} --scope=zaro + done + + - name: Build single-file version - minecraft.html + run: pnpm build-single-file && mv dist/single/index.html minecraft.html + - name: Build self-host version + run: pnpm build + - name: Bundle server.js + run: | + pnpm esbuild server.js --bundle --platform=node --outfile=bundled-server.js --define:process.env.NODE_ENV="'production'" + + - name: Create zip package + run: | + mkdir -p package + cp -r dist package/ + cp bundled-server.js package/server.js + cd package + zip -r ../self-host.zip . + + - run: | + pnpx zardoy-release node --footer "This release URL: https://$(echo ${{ steps.alias.outputs.alias }} | cut -d',' -f1) (Vercel URL: ${{ steps.deploy.outputs.stdout }})" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # has possible output: tag + id: release + + # has output + - name: Set publishing config + run: pnpm config set '//registry.npmjs.org/:_authToken' "${NODE_AUTH_TOKEN}" + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + # - run: pnpm tsx scripts/buildNpmReact.ts ${{ steps.release.outputs.tag }} + # if: steps.release.outputs.tag + # env: + # NPM_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..33734572 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +node_modules/ +package-lock.json +.vscode +**/public +*.log +.env.local +Thumbs.db +build +localSettings.mjs +dist* +.DS_Store +.idea/ +/world +data*.json +out +*.iml +.vercel +generated +storybook-static +server-jar +config.local.json +logs/ + +src/react/npmReactComponents.ts diff --git a/.npmignore b/.npmignore new file mode 100644 index 00000000..3ff87f13 --- /dev/null +++ b/.npmignore @@ -0,0 +1,3 @@ +node_modules/ +package-lock.json +.vscode \ No newline at end of file diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..b602bc2e --- /dev/null +++ b/.npmrc @@ -0,0 +1,3 @@ +public-hoist-pattern=* +ignore-workspace-root-check=true +shell-emulator=true diff --git a/.storybook/main.ts b/.storybook/main.ts new file mode 100644 index 00000000..46d2bcd1 --- /dev/null +++ b/.storybook/main.ts @@ -0,0 +1,14 @@ +import type { StorybookConfig } from "@storybook/react-vite"; + +const config: StorybookConfig = { + stories: ["../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"], + addons: ["@storybook/addon-links", "@storybook/addon-essentials"], + framework: { + name: "@storybook/react-vite", + options: {}, + }, + docs: { + autodocs: "tag", + }, +}; +export default config; diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx new file mode 100644 index 00000000..05c36eba --- /dev/null +++ b/.storybook/preview.tsx @@ -0,0 +1,29 @@ +import React from 'react' + +import type { Preview } from "@storybook/react" + +import './storybook.css' +import '../src/styles.css' +import '../src/scaleInterface' + +const preview: Preview = { + decorators: [ + (Story, c) => { + const noScaling = c.parameters.noScaling + return <div id={noScaling ? '' : 'ui-root'}> + <Story /> + </div> + }, + ], + parameters: { + actions: { argTypesRegex: "^on[A-Z].*" }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + }, +} + +export default preview diff --git a/.storybook/storybook.css b/.storybook/storybook.css new file mode 100644 index 00000000..9a98f519 --- /dev/null +++ b/.storybook/storybook.css @@ -0,0 +1,18 @@ +#storybook-root::before { + content: ""; + position: fixed; + inset: 0; + background-image: url("../assets/storybook-bg.jpg"); + background-size: cover; + background-position: center; +} + +@font-face { + font-family: minecraft; + src: url(../assets/minecraftia.woff); +} + +@font-face { + font-family: mojangles; + src: url(../assets/mojangles.ttf); +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..dec88163 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,60 @@ +{ + "configurations": [ + // recommended as much faster + { + // to launch "C:\Program Files\Google\Chrome Beta\Application\chrome.exe" --remote-debugging-port=9222 + "type": "chrome", + "address": "localhost", + "name": "Attach Chrome", + "request": "attach", + // comment if using webpack + "pathMapping": { + "/": "${workspaceFolder}/dist" + }, + "outFiles": [ + "${workspaceFolder}/dist/**/*.js", + // "!${workspaceFolder}/dist/**/*vendors*", + "!${workspaceFolder}/dist/**/*mc-data*", + "!**/node_modules/**" + ], + "skipFiles": [ + // "<node_internals>/**/*vendors*" + "<node_internals>/**/*mc-data*" + ], + "port": 9222, + }, + { + // not recommended as in most cases it will slower as it launches from extension host so it slows down extension host, not sure why + "type": "chrome", + "name": "Launch Chrome", + "request": "launch", + "url": "http://localhost:3000/", + "pathMapping": { + "/": "${workspaceFolder}/dist" + }, + "outFiles": [ + "${workspaceFolder}/dist/**/*.js", + // "!${workspaceFolder}/dist/**/*vendors*", + "!${workspaceFolder}/dist/**/*mc-data*", + "!**/node_modules/**" + ], + "skipFiles": [ + // "<node_internals>/**/*vendors*" + "<node_internals>/**/*mc-data*" + ], + }, + { + // to launch "C:\Program Files\Mozilla Firefox\firefox.exe" -start-debugger-server + "type": "firefox", + "name": "Attach Firefox", + "request": "attach", + // comment if using webpack + "url": "http://localhost:3000/", + "webRoot": "${workspaceFolder}/", + "skipFiles": [ + // "<node_internals>/**/*vendors*" + "<node_internals>/**/*mc-data*" + ], + }, + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..ca74a57d --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,36 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "viewer-server", + "command": "live-server --port=9090", + "type": "shell", + "args": [], + "problemMatcher": [], + // set cwd + "options": { + "cwd": "${workspaceFolder}/prismarine-viewer/public/" + }, + "presentation": { + "reveal": "silent" + }, + }, + { + "label": "viewer-esbuild", + "type": "shell", + "command": "node prismarine-viewer/esbuild.mjs -w", + "problemMatcher": "$esbuild-watch", + "presentation": { + "reveal": "silent" + }, + }, + { + "label": "viewer server+esbuild", + "dependsOn": [ + "viewer-server", + "viewer-esbuild" + ], + "dependsOrder": "parallel", + } + ] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..a5a3482d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,195 @@ +# Contributing Guide + +After forking the repository, run the following commands to get started: + +0. Ensure you have [Node.js](https://nodejs.org) installed. Enable corepack with `corepack enable` *(1). +1. Install dependencies: `pnpm i` +2. Start the project in development mode: `pnpm start` or build the project for production: `pnpm build` +3. Read the [Tasks Categories](#tasks-categories) and [Workflow](#workflow) sections below +4. Let us know if you are working on something and be sure to open a PR if you got any changes. Happy coding! + +*(1): If you are getting `Cannot find matching keyid` update corepack to the latest version with `npm i -g corepack`. + +*(2): If still something doesn't work ensure you have the right nodejs version with `node -v` (tested on 22.x) + +<!-- *(3): For GitHub codespaces (cloud ide): Run `pnpm i @rsbuild/core@1.2.4 @rsbuild/plugin-node-polyfill@1.3.0 @rsbuild/plugin-react@1.1.0 @rsbuild/plugin-typed-css-modules@1.0.2` command to avoid crashes because of limited ram --> + +## Project Structure + +There are 3 main parts of the project: + +### Core (`src`) + +This is the main app source code which reuses all the other parts of the project. + +> The first version used Webpack, then was migrated to Esbuild and now is using Rsbuild! + +- Scripts: + - Start: `pnpm start`, `pnpm dev-rsbuild` (if you don't need proxy server also running) + - Build: `pnpm build` (note that `build` script builds only the core app, not the whole project!) + +Paths: + +- `src` - main app source code +- `src/react` - React components - almost all UI is in this folder. Almost every component has its base (reused in app and storybook) and `Provider` - which is a component that provides context to its children. Consider looking at DeathScreen component to see how it's used. + +### Renderer: Playground & Mesher (`renderer`) + +- Playground Scripts: + - Start: `pnpm run-playground` (playground, mesher + server) or `pnpm watch-playground` + - Build: `pnpm build-playground` or `node renderer/esbuild.mjs` + +- Mesher Scripts: + - Start: `pnpm watch-mesher` + - Build: `pnpm build-mesher` + +Paths: + +- `renderer` - Improved and refactored version of <https://github.com/PrismarineJS/prismarine-viewer>. Here is everything related to rendering the game world itself (no ui at all). Two most important parts here are: +- `renderer/viewer/lib/worldrenderer.ts` - adding new objects to three.js happens here (sections) +- `renderer/viewer/lib/models.ts` - preparing data for rendering (blocks) - happens in worker: out file - `worker.js`, building - `renderer/buildWorker.mjs` +- `renderer/playground/playground.ts` - Playground (source of <mcraft.fun/playground.html>) Use this for testing any rendering changes. You can also modify the playground code. + +### Storybook (`.storybook`) + +Storybook is a tool for easier developing and testing React components. +Path of all Storybook stories is `src/react/**/*.stories.tsx`. + +- Scripts: + - Start: `pnpm storybook` + - Build: `pnpm build-storybook` + +## Core-related + +How different modules are used: + +- `mineflayer` - provider `bot` variable and as mineflayer states it is a wrapper for the `node-minecraft-protocol` module and is used to connect and interact with real Java Minecraft servers. However not all events & properties are exposed and sometimes you have to use `bot._client.on('packet_name', data => ...)` to handle packets that are not handled via mineflayer API. Also you can use almost any mineflayer plugin. + +## Running Main App + Playground + +To start the main web app and playground, run `pnpm run-all`. Note is doesn't start storybook and tests. + +## Cypress Tests (E2E) + +Cypress tests are located in `cypress` folder. To run them, run `pnpm test-mc-server` and then `pnpm test:cypress` when the `pnpm prod-start` is running (or change the port to 3000 to test with the dev server). Usually you don't need to run these until you get issues on the CI. + +## Unit Tests + +There are not many unit tests for now (which we are trying to improve). +Location of unit tests: `**/*.test.ts` files in `src` folder and `renderer` folder. +Start them with `pnpm test-unit`. + +## Making protocol-related changes + +You can get a description of packets for the latest protocol version from <https://wiki.vg/Protocol> and for previous protocol versions from <https://wiki.vg/Protocol_version_numbers> (look for *Page* links that have *Protocol* in URL). + +Also there are [src/generatedClientPackets.ts](src/generatedClientPackets.ts) and [src/generatedServerPackets.ts](src/generatedServerPackets.ts) files that have definitions of packets that come from the server and the client respectively. These files are generated from the protocol files. Protocol, blocks info and other data go from <https://github.com/prismarineJS/minecraft-data> repository. + +## A few other notes + +- To link dependency locally e.g. flying-squid add this to `pnpm` > `overrides` of root package.json: `"flying-squid": "file:../space-squid",` (with some modules `pnpm link` also works) + +- Press `Y` to reload application into the same world (server, local world or random singleplayer world) +- To start React profiling disable `REACT_APP_PROFILING` code first. +- It's recommended to use debugger for debugging. VSCode has a great debugger built-in. If debugger is slow, you can use `--no-sources` flag that would allow browser to speedup .map file parsing. +- Some data are cached between restarts. If you see something doesn't work after upgrading dependencies, try to clear the by simply removing the `dist` folder. +- The same folder `dist` is used for both development and production builds, so be careful when deploying the project. +- Use `start-prod` script to start the project in production mode after running the `build` script to build the project. +- If CI is failing on the next branch for some reason, feel free to use the latest commit for release branch. We will update the base branch asap. Please, always make sure to allow maintainers do changes when opening PRs. + +## Tasks Categories + +(most important for now are on top). + +## 1. Client-side Logic (most important right now) + +Everything related to the client side packets. Investigate issues when something goes wrong with some server. It's much easier to work on these types of tasks when you have experience in Java with Minecraft, a deep understanding of the original client, and know how to debug it (which is not hard actually). Right now the client is easily detectable by anti-cheat plugins, and the main goal is to fix it (mostly because of wrong physics implementation). + +Priority tasks: + +- Rewrite or fix the physics logic (Botcraft or Grim can be used as a reference as well) +- Implement basic minecart / boat / horse riding +- Fix auto jump module (false triggers, performance issues) +- Investigate connection issues to some servers +- Setup a platform for automatic cron testing against the latest version of the anti-cheat plugins +- ... + +Goals: + +- Make more servers playable. Right now on hypixel-like servers (servers with minigames), only tnt run (and probably ) is fully playable. + +Notes: + +- You can see the incoming/outgoing packets in the console (F12 in Chrome) by enabling `options.debugLogNotFrequentPackets = true`. However, if you need a FULL log of all packets, you can start recording the packets by going into `Settings` > `Advanced` > `Enable Packets Replay` and then you can download the file and use it to replay the packets. +- You can use mcraft-e2e studio to send the same packets over and over again (which is useful for testing) or use the packets replayer (which is useful for debugging). + +## 2. Three.js Renderer + +Example tasks: + +- Improve / fix entity rendering +- Better update entities on specific packets +- Investigate performance issues under different conditions (instructions provided) +- Work on the playground code + +Goals: + +- Fix a lot of entity rendering issues (including position updates) +- Implement switching camera mode (first person, third person, etc) +- Animated blocks +- Armor rendering +- ... + +Note: + +- It's useful to know how to use helpers & additional cameras (e.g. setScissor) + +## 3. Server-side Logic + +Flying squid fork (space-squid). +Example tasks: + +- Add missing commands (e.g. /scoreboard) +- Basic physics (player fall damage, falling blocks & entities) +- Basic entities AI (spawning, attacking) +- Pvp +- Emit more packets on some specific events (e.g. when a player uses an item) +- Make more maps playable (e.g. fix when something is not implemented in both server and client and blocking map interaction) +- ... + +Long Term Goals: + +- Make most adventure maps playable +- Make a way to complete the game from the scratch (crafting, different dimensions, terrain generation, etc) +- Make bedwars playable! +Most of the tasks are straightforward to implement, just be sure to use a debugger ;). If you feel you are stuck, ask for help on Discord. Absolutely any tests / refactor suggestions are welcome! + +## 4. Frontend + +New React components, improve UI (including mobile support). + +## Workflow + +1. Locate the problem on the public test server & make an easily reproducible environment (you can also use local packets replay server or your custom server setup). Dm me for details on public test server / replay server +2. Debug the code, find an issue in the code, isolate the problem +3. Develop, try to fix and test. Finally we should find a way to fix it. It's ideal to have an automatic test but it's not necessary for now +3. Repeat step 1 to make sure the task is done and the problem is fixed (or the feature is implemented) + +## Updating Dependencies + +1. Use `pnpm update-git-deps` to check and update git dependencies (like mineflayer fork, prismarine packages etc). The script will: + - Show which git dependencies have updates available + - Ask if you want to update them + - Skip dependencies listed in `pnpm.updateConfig.ignoreDependencies` + +2. Update PrismarineJS dependencies to the latest version: `minecraft-data` (be sure to replace the version twice in the package.json), `mineflayer`, `minecraft-protocol`, `prismarine-block`, `prismarine-chunk`, `prismarine-item`, ... + +3. If `minecraft-protocol` patch fails, do this: + 1. Remove the patch from `patchedDependencies` in `package.json` + 2. Run `pnpm patch minecraft-protocol`, open patch directory + 3. Apply the patch manually in this directory: `patch -p1 < minecraft-protocol@<version>.patch` + 4. Run the suggested command from `pnpm patch ...` (previous step) to update the patch + +### Would be useful to have + +- cleanup folder & modules structure, cleanup playground code diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..22bcfac6 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +# ---- Build Stage ---- +FROM node:18-alpine AS build +# Without git installing the npm packages fails +RUN apk add git +WORKDIR /app +COPY . /app +# install pnpm with corepack +RUN corepack enable +# Build arguments +ARG DOWNLOAD_SOUNDS=false +ARG DISABLE_SERVICE_WORKER=false +ARG CONFIG_JSON_SOURCE=REMOTE +# TODO need flat --no-root-optional +RUN node ./scripts/dockerPrepare.mjs +RUN pnpm i +# Download sounds if flag is enabled +RUN if [ "$DOWNLOAD_SOUNDS" = "true" ] ; then node scripts/downloadSoundsMap.mjs ; fi + +# TODO for development +# EXPOSE 9090 +# VOLUME /app/src +# VOLUME /app/renderer +# ENTRYPOINT ["pnpm", "run", "run-all"] + +# only for prod +RUN DISABLE_SERVICE_WORKER=$DISABLE_SERVICE_WORKER \ + CONFIG_JSON_SOURCE=$CONFIG_JSON_SOURCE \ + pnpm run build + +# ---- Run Stage ---- +FROM node:18-alpine +RUN apk add git +WORKDIR /app +# Copy build artifacts from the build stage +COPY --from=build /app/dist /app/dist +COPY server.js /app/server.js +# Install express +RUN npm i -g pnpm@10.8.0 +RUN npm init -yp +RUN pnpm i express github:zardoy/prismarinejs-net-browserify compression cors +EXPOSE 8080 +VOLUME /app/public +ENTRYPOINT ["node", "server.js", "--prod"] diff --git a/Dockerfile.proxy b/Dockerfile.proxy new file mode 100644 index 00000000..746eef72 --- /dev/null +++ b/Dockerfile.proxy @@ -0,0 +1,11 @@ +# ---- Run Stage ---- +FROM node:18-alpine +RUN apk add git +WORKDIR /app +COPY server.js /app/server.js +# Install server dependencies +RUN npm i -g pnpm@9.0.4 +RUN npm init -yp +RUN pnpm i express github:zardoy/prismarinejs-net-browserify compression cors +EXPOSE 8080 +ENTRYPOINT ["node", "server.js"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..ee939a65 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 PrismarineJS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.MD b/README.MD new file mode 100644 index 00000000..018784e3 --- /dev/null +++ b/README.MD @@ -0,0 +1,238 @@ +# Minecraft Web Client + +![banner](./docs-assets/banner.jpg) + +Minecraft **clone** rewritten in TypeScript using the best modern web technologies. Minecraft vanilla-compatible client and integrated server packaged into a single web app. + +You can try this out at [mcraft.fun](https://mcraft.fun/), [pcm.gg](https://pcm.gg) (short link), [mcon.vercel.app](https://mcon.vercel.app/) or the GitHub pages deploy. Every commit from the default (`develop`) branch is deployed to [s.mcraft.fun](https://s.mcraft.fun/) and [s.pcm.gg](https://s.pcm.gg/) - so it's usually newer, but might be less stable. + +> For Turkey/Russia use [ru.mcraft.fun](https://ru.mcraft.fun/) (since Cloudflare is blocked) + +Don't confuse with [Eaglercraft](https://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8) which is a REAL vanilla Minecraft Java edition port to the web (but with its own limitations). Eaglercraft is a fully playable solution, meanwhile this project is aimed for *device-compatiiblity* and better performance so it feels portable, flexible and lightweight. It's also a very strong example on how to build true HTML games for the web at scale entirely with the JS ecosystem. Have fun! + +For building the project yourself / contributing, see [Development, Debugging & Contributing](#development-debugging--contributing). For reference at what and how web technologies / frameworks are used, see [TECH.md](./TECH.md) (also for comparison with Eaglercraft). + +> **Note**: You can deploy it on your own server in less than a minute using a one-liner script from [Minecraft Everywhere repo](https://github.com/zardoy/minecraft-everywhere) + +### Big Features + +- Official Mineflayer [plugin integration](https://github.com/zardoy/mcraft-fun-mineflayer-plugin)! View / Control your bot remotely. +- Open any zip world file or even folder in read-write mode! +- Connect to Java servers running in both offline (cracked) and online mode* (it's possible because of proxy servers, see below) +- Integrated JS server clone capable of opening Java world saves in any way (folders, zip, web chunks streaming, etc) +- Singleplayer mode with simple world generations! +- Works offline +- First-class touch (mobile) & controller support +- First-class keybindings configuration +- Advanced Resource pack support: Custom GUI, all textures. Server resource packs are supported with proper CORS configuration. +- Builtin JEI with recipes & descriptions for almost every item (JEI is creative inventory replacement) +- Custom protocol channel extensions (eg for custom block models in the world) +- Play with friends over internet! (P2P is powered by Peer.js discovery servers) +- ~~Google Drive support for reading / saving worlds back to the cloud~~ +- Support for custom rendering 3D engines. Modular architecture. +- even even more! + +All components that are in [Storybook](https://minimap.mcraft.fun/storybook/) are published as npm module and can be used in other projects: [`minecraft-react`](https://npmjs.com/minecraft-react) + +### Recommended Settings + +- Controls -> **Touch Controls Type** -> **Joystick** +- Controls -> **Auto Full Screen** -> **On** - To avoid ctrl+w issue +- Interface -> **Enable Minimap** -> **Always** - To enable useful minimap (why not?) +- Controls -> **Raw Input** -> **On** - This will make the controls more precise (UPD: already enabled by default) +- Interface -> **Chat Select** -> **On** - To select chat messages (UPD: already enabled by default) + +### Browser Notes + +This project is tested with BrowserStack. Special thanks to [BrowserStack](https://www.browserstack.com/) for providing testing infrastructure! + +Howerver, it's known that these browsers have issues: + +**Opera Mini**: Disable *mouse gestures* in browsre settings to avoid opening new tab on right click hold + +**Vivaldi**: Disable Controls -> *Raw Input* in game settings if experiencing issues + +### Versions Support + +Server versions 1.8 - 1.21.5 are supported. +First class versions (most of the features are tested on these versions): + +- 1.19.4 +- 1.21.4 + +Versions below 1.13 are not tested currently and may not work correctly. + +### World Loading + +Zip files and folders are supported. Just drag and drop them into the browser window. You can open folders in readonly and read-write mode. New chunks may be generated incorrectly for now. +In case of opening zip files they are stored in your ram entirely, so there is a ~300mb file limit on IOS. +Whatever offline mode you used (zip, folder, just single player), you can always export world with the `/export` command typed in the game chat. + +![docs-assets/singleplayer-future-city-1-10-2.jpg](./docs-assets/singleplayer-future-city-1-10-2.jpg) + +### Servers & Proxy + +You can play almost on any Java server, vanilla servers are fully supported. +See the [Mineflayer](https://github.com/PrismarineJS/mineflayer) repo for the list of supported versions (should support majority of versions). +There is a builtin proxy, but you can also host your one! Just clone the repo, run `pnpm i` (following CONTRIBUTING.MD) and run `pnpm prod-start`, then you can specify `http://localhost:8080` in the proxy field. Or you can deploy it to the cloud service: + +[![Deploy to Koyeb](https://www.koyeb.com/static/images/deploy/button.svg)](https://app.koyeb.com/deploy?name=minecraft-web-client&type=git&repository=zardoy%2Fminecraft-web-client&branch=next&builder=dockerfile&env%5B%5D=&ports=8080%3Bhttp%3B%2F) + +> **Note**: If you want to make **your own** Minecraft server accessible to web clients (without our proxies), you can use [mwc-proxy](https://github.com/zardoy/mwc-proxy) - a lightweight JS WebSocket proxy that runs on the same server as your Minecraft server, allowing players to connect directly via `wss://play.example.com`. `?client_mcraft` is added to the URL, so the proxy will know that it's this client. + +Proxy servers are used to connect to Minecraft servers which use TCP protocol. When you connect connect to a server with a proxy, websocket connection is created between you (browser client) and the proxy server located in Europe, then the proxy connects to the Minecraft server and sends the data to the client (you) without any packet deserialization to avoid any additional delays. That said all the Minecraft protocol packets are processed by the client, right in your browser. + +```mermaid +graph LR + A[Web App - Client] --> C[Proxy Server] + C --> B[Minecraft Server] + style A fill:#f9d,stroke:#333,stroke-width:2px + style B fill:#fc0,stroke:#333,stroke-width:2px + style C fill:#fff,stroke:#333,stroke-width:2px +``` + +So if the server is located in Europe and you are connecting from Europe, you will have ~40ms ping (~180ms with residential proxy version), however if you are in the US and connecting to the server located in US, you will have >200ms ping, which is the worst case scenario. + +Again, the proxy server is not a part of the client, it is a separate service that you can host yourself. + +### Docker Files + +- [Main Dockerfile](./Dockerfile) - for production build & offline/private usage. Includes full web-app + proxy server for connecting to Minecraft servers. +- [Proxy Dockerfile](./Dockerfile.proxy) - for proxy server only - that one you would be able to specify in the proxy field on the client (`docker build . -f Dockerfile.proxy -t minecraft-web-proxy`) + +In case of using docker, you don't have to follow preparation steps from CONTRIBUTING.MD, like installing Node.js, pnpm, etc. + +### Rendering + +#### Three.js Renderer + +- Uses WebGL2. Chunks are rendered using Geometry Buffers prepared by 4 mesher workers. +- Entities & text rendering +- Supports resource packs +- Doesn't support occlusion culling + +### Advanced Settings + +There are many many settings, that are not exposed in the UI yet. You can find or change them by opening the browser console and typing `options`. You can also change them by typing `options.<setting_name> = <value>`. + +### Console + +To open the console, press `F12`, or if you are on mobile, you can type `#dev` in the URL (browser address bar), it wont't reload the page, but you will see a button to open the console. This way you can change advanced settings and see all errors or warnings. Also this way you can access global variables (described below). + +### Development, Debugging & Contributing + +It should be easy to build/start the project locally. See [CONTRIBUTING.MD](./CONTRIBUTING.md) for more info. Also you can look at Dockerfile for reference. + +There is world renderer playground ([link](https://mcon.vercel.app/playground/)). + +However, there are many things that can be done in online production version (like debugging actual source code). Also you can access some global variables in the console and there are a few useful examples: + +- If you type `debugToggle`, press enter in console - It will enables all debug messages! Warning: this will start all packets spam. +Instead I recommend setting `options.debugLogNotFrequentPackets`. Also you can use `debugTopPackets` (with JSON.stringify) to see what packets were received/sent by name + +- `bot` - Mineflayer bot instance. See Mineflayer documentation for more. +- `world` - Three.js world instance, basically does all the rendering (part of renderer backend). +- `world.sectionObjects` - Object with all active chunk sections (geometries) in the world. Each chunk section is a Three.js mesh or group. +- `debugSceneChunks` - The same as above, but relative to current bot position (e.g. 0,0 is the current chunk). +- `debugChangedOptions` - See what options are changed. Don't change options here. +- `localServer`/`server` - Only for singleplayer mode/host. Flying Squid server instance, see it's documentation for more. +- `localServer.overworld.storageProvider.regions` - See ALL LOADED region files with all raw data. +- `localServer.levelData.LevelName = 'test'; localServer.writeLevelDat()` - Change name of the world + +- `nbt.simplify(someNbt)` - Simplifies nbt data, so it's easier to read. + +The most useful thing in devtools is the watch expression. You can add any expression there and it will be re-evaluated in real time. For example, you can add `world.getCameraPosition()` to see the camera position and so on. + +<img src="./docs-assets/watch-expr.png" alt="Watch expression" width="480"/> + +You can also drag and drop any .dat or .mca (region files) into the browser window to see it's contents in the console. + +### F3 Keybindings + +- `F3` - Toggle debug overlay +- `F3 + A` - Reload all chunks (these that are loaded from the server) +<!-- <!-- - `F3 + N` - Restart local server (basically resets the world!) --> +- `F3 + G` - Toggle chunk sections (geometries) border visibility + entities outline (aka Three.js geometry helpers) + +world chunks have a *yellow* border, hostile mobs have a *red* outline, passive mobs have a *green* outline, players have a *blue* outline. + +### Query Parameters + +Press `Y` to set query parameters to url of your current game state. + +There are some parameters you can set in the url to archive some specific behaviors: + +General: + +- **`?setting=<setting_name>:<setting_value>`** - Set and lock the setting on load. You can set multiple settings by separating them with `&` e.g. `?setting=autoParkour:true&setting=renderDistance:4` +- `?modal=<modal>` - Open specific modal on page load eg `keybindings`. Very useful on UI changes testing during dev. For path use `,` as separator. To get currently opened modal type this in the console: `activeModalStack.at(-1).reactType` +- `?replayFileUrl=<url>` - Load and start a packet replay session from a URL with a integrated server. For debugging / previewing recorded sessions. The file must be CORS enabled. + +Server specific: + +- `?ip=<server_address>` - Display connect screen to the server on load with predefined server ip. `:<port>` is optional and can be added to the ip. +- `?name=<name>` - Set the server name for saving to the server list +- `?version=<version>` - Set the version for the server +- `?proxy=<proxy_address>` - Set the proxy server address to use for the server +- `?username=<username>` - Set the username for the server +- `?lockConnect=true` - Only works then `ip` parameter is set. Disables cancel/save buttons and all inputs in the connect screen already set as parameters. Useful for integrates iframes. +- `?autoConnect=true` - Only works then `ip` and `version` parameters are set and `allowAutoConnect` is `true` in config.json! Directly connects to the specified server. Useful for integrates iframes. +- `?serversList=<list_or_url>` - `<list_or_url>` can be a list of servers in the format `ip:version,ip` or a url to a json file with the same format (array) or a txt file with line-delimited list of server IPs. +- `?addPing=<ping>` - Add a latency to both sides of the connection. Useful for testing ping issues. For example `?addPing=100` will add 200ms to your ping. + +Single player specific: + +- `?loadSave=<save_name>` - Load the save on load with the specified folder name (not title) +- `?singleplayer=1` or `?sp=1` - Create empty world on load. Nothing will be saved +- `?version=<version>` - Set the version for the singleplayer world (when used with `?singleplayer=1`) +- `?noSave=true` - Disable auto save on unload / disconnect / export whenever a world is loaded. Only manual save with `/save` command will work. +- `?serverSetting=<key>:<value>` - Set local server [options](https://github.com/zardoy/space-squid/tree/everything/src/modules.ts#L51). For example `?serverSetting=noInitialChunksSend:true` will disable initial chunks loading on the loading screen. +- `?map=<map_url>` - Load the map from ZIP. You can use any url, but it must be **CORS enabled**. +- `?mapDir=<index_file_url>` - Load the map from a file descriptor. It's recommended and the fastest way to load world but requires additional setup. The file must be in the following format: + +```json +{ + "baseUrl": "<url>", + "index": { + "level.dat": null, + "region": { + "r.-1.-1.mca": null, + "r.-1.0.mca": null, + "r.0.-1.mca": null, + "r.0.0.mca": null, + } + } +} +``` + +Note that `mapDir` also accepts base64 encoded JSON like so: +`?mapDir=data:application/json;base64,...` where `...` is the base64 encoded JSON of the index file. +In this case you must use `?mapDirBaseUrl` to specify the base URL to fetch the files from index. + +- `?mapDirBaseUrl` - See above. + +Only during development: + +- `?reconnect=true` - Reconnect to the server on page reloads. Very useful on server testing. + +<!-- - `?mapDirGuess=<base_url>` - Load the map from the provided URL and paths will be guessed with a few additional fetch requests. --> + +### Notable Things that Power this Project + +- [Mineflayer](https://github.com/PrismarineJS/mineflayer) - Handles all client-side communications with the server (including the builtin one) - forked +- [Forked Flying Squid (Space Squid)](https://github.com/zardoy/space-squid) - The builtin offline server that makes single player & P2P possible! +- [Prismarine Provider Anvil](https://github.com/PrismarineJS/prismarine-provider-anvil) - Handles world loading (region format) +- [Prismarine Physics](https://github.com/PrismarineJS/prismarine-physics) - Does all the physics calculations +- [Minecraft Protocol](https://github.com/PrismarineJS/node-minecraft-protocol) - Makes connections to servers possible +- [Peer.js](https://peerjs.com/) - P2P networking (when you open to wan) +- [Three.js](https://threejs.org/) - Helping in 3D rendering + +### Things that are not planned yet + +- Mods, plugins (basically JARs) support, shaders - since they all are related to specific game pipelines + +### Alternatives + +- [https://github.com/ClassiCube/ClassiCube](ClassiCube - Better C# Rewrite) [DEMO](https://www.classicube.net/server/play/?warned=true) +- [https://m.eaglercraft.com/](EaglerCraft) - Eaglercraft runnable on mobile (real Minecraft in the browser) +- [js-minecraft](https://github.com/LabyStudio/js-minecraft) - An insanely well done clone from the graphical side that inspired many features here diff --git a/README.NPM.MD b/README.NPM.MD new file mode 100644 index 00000000..dc2c7c72 --- /dev/null +++ b/README.NPM.MD @@ -0,0 +1,36 @@ +# Minecraft React + +Minecraft UI components for React extracted from [mcraft.fun](https://mcraft.fun) project. + +```bash +pnpm i minecraft-react +``` + +![demo](./docs-assets/npm-banner.jpeg) + +## Usage + +```jsx +import { Scoreboard } from 'minecraft-react' + +const App = () => { + return ( + <Scoreboard + open + title="Scoreboard" + items={[ + { name: 'Player 1', value: 10 }, + { name: 'Player 2', value: 20 }, + { name: 'Player 3', value: 30 }, + ]} + /> + ) +} +``` + +See [Storybook](https://mcraft.fun/storybook/) or [Storybook (Mirror link)](https://mcon.vercel.app/storybook/) for more examples and full components list. Also take a look at the full [standalone example](https://github.com/zardoy/minecraft-web-client/tree/experiments/UiStandaloneExample.tsx). + +There are two types of components: + +- Small UI components or HUD components +- Full screen components (like sign editor, worlds selector) diff --git a/TECH.md b/TECH.md new file mode 100644 index 00000000..2d15993a --- /dev/null +++ b/TECH.md @@ -0,0 +1,58 @@ +### Eaglercraft Comparison + +This project uses proxies so you can connect to almost any vanilla server. Though proxies have some limitations such as increased latency and servers will complain about using VPN (though we have a workaround for that, but ping will be much higher). +This client generally has better performance but some features reproduction might be inaccurate eg its less stable and more buggy in some cases. + +| Feature | This project | Eaglercraft | Description | +| --------------------------------- | ----------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| General | | | | +| Mobile Support (touch) | ✅(+) | ✅ | | +| Gamepad Support | ✅ | ❌ | | +| A11Y | ✅ | ❌ | We have DOM for almost all UI so your extensions and other browser features will work natively like on any other web page (but maybe it's not needed) | +| Game Features | | | | +| Servers Support (quality) | ❌(+) | ✅ | Eaglercraft is vanilla Minecraft, while this project tries to emulate original game behavior at protocol level (Mineflayer is used) | +| Servers Support (any version, ip) | ✅ | ❌ | We support almost all Minecraft versions, only important if you connect to a server where you need new content like blocks or if you play with friends. And you can connect to almost any server using proxy servers! | +| Servers Support (online mode) | ✅ | ❌ | Join to online servers like Hypixel using your Microsoft account without additional proxies | +| Singleplayer Survival Features | ❌ | ✅ | Just like Eaglercraft this project can generate and save worlds, but generator is simple and only a few survival features are supported (look here for [supported features list](https://github.com/zardoy/space-squid)) | +| Singleplayer Maps | ✅ | ✅ | We support any version, but adventure maps won't work, but simple parkour and build maps might be interesting to explore... | +| Singleplayer Maps World Streaming | ✅ | ❌ | Thanks to Browserfs, saves can be loaded to local singleplayer server using multiple ways: from local folder, server directory (not zip), dropbox or other cloud *backend* etc... | +| P2P Multiplayer | ✅ | ✅ | A way to connect to other browser running the project. But it's almost useless here since many survival features are not implemented. Maybe only to build / explore maps together... | +| Voice Chat | ❌(+) | ✅ | Eaglercraft has custom WebRTC voice chat implementation, though it could also be easily implemented there | +| Online Servers | ✅ | ❌ | We have custom implementation (including integration on proxy side) for joining to servers | +| Plugin Features | ✅ | ❌ | We have Mineflayer plugins support, like Auto Jump & Auto Parkour was added here that way | +| Direct Connection | ✅ | ✅ | We have DOM for almost all UI so your extensions and other browser features will work natively like on any other web page | +| Moding | ✅(own js mods) | ❌ | This project will support mods for singleplayer. In theory its possible to implement support for modded servers on protocol level (including all needed mods) | +| Video Recording | ❌ | ✅ | Doesn't feel needed | +| Metaverse Features | ✅(50%) | ❌ | We have videos / images support inside world, but not iframes (custom protocol channel) | +| Sounds | ✅ | ✅ | | +| Resource Packs | ✅(+extras) | ✅ | This project has very limited support for them (only textures images are loadable for now) | +| Assets Compressing & Splitting | ✅ | ❌ | We have advanced Minecraft data processing and good code chunk splitting so the web app will open much faster and use less memory | +| Graphics | | | | +| Fancy Graphics | ❌ | ✅ | While Eaglercraft has top-level shaders we don't even support lighting | +| Fast & Efficient Graphics | ❌(+) | ❌ | Feels like no one needs to have 64 rendering distance work smoothly | +| VR | ✅(-) | ❌ | Feels like not needed feature. UI is missing in this project since DOM can't be rendered in VR so Eaglercraft could be better in that aspect | +| AR | ❌ | ❌ | Would be the most useless feature | +| Minimap & Waypoints | ✅(-) | ❌ | We have buggy minimap, which can be enabled in settings and full map is opened by pressing `M` key | + +Features available to only this project: + +- CSS & JS Customization +- JS Real Time Debugging & Console Scripting (eg Devtools) + +### Tech Stack + +Bundler: Rsbuild! +UI: powered by React and css modules. Storybook helps with UI development. + +### Rare WEB Features + +There are a number of web features that are not commonly used but you might be interested in them if you decide to build your own game in the web. + +TODO + +| API | Usage & Description | +| ------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- | +| `Crypto` API | Used to make chat features work when joining online servers with authentication. | +| `requestPointerLock({ unadjustedMovement: true })` API | Required for games. Disables system mouse acceleration (important for Mac users). Aka mouse raw input | +| `navigator.keyboard.lock()` | (only in Chromium browsers) When entering fullscreen it allows to use any key combination like ctrl+w in the game | +| `navigator.keyboard.getLayoutMap()` | (only in Chromium browsers) To display the right keyboard symbol for the key keybinding on different keyboard layouts (e.g. QWERTY vs AZERTY) | diff --git a/assets/background/panorama_0.png b/assets/background/panorama_0.png new file mode 100644 index 00000000..185a3dda Binary files /dev/null and b/assets/background/panorama_0.png differ diff --git a/assets/background/panorama_1.png b/assets/background/panorama_1.png new file mode 100644 index 00000000..c5cbfd0d Binary files /dev/null and b/assets/background/panorama_1.png differ diff --git a/assets/background/panorama_2.png b/assets/background/panorama_2.png new file mode 100644 index 00000000..f8fb7f79 Binary files /dev/null and b/assets/background/panorama_2.png differ diff --git a/assets/background/panorama_3.png b/assets/background/panorama_3.png new file mode 100644 index 00000000..c029be04 Binary files /dev/null and b/assets/background/panorama_3.png differ diff --git a/assets/background/panorama_4.png b/assets/background/panorama_4.png new file mode 100644 index 00000000..bed2ae74 Binary files /dev/null and b/assets/background/panorama_4.png differ diff --git a/assets/background/panorama_5.png b/assets/background/panorama_5.png new file mode 100644 index 00000000..3e7bdec7 Binary files /dev/null and b/assets/background/panorama_5.png differ diff --git a/assets/button_click.mp3 b/assets/button_click.mp3 new file mode 100644 index 00000000..e60582fd Binary files /dev/null and b/assets/button_click.mp3 differ diff --git a/assets/config.html b/assets/config.html new file mode 100644 index 00000000..9bd2dd8e --- /dev/null +++ b/assets/config.html @@ -0,0 +1,39 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Configure client + + + +
+ + + + + +
+ + + diff --git a/assets/customTextures/readme.md b/assets/customTextures/readme.md new file mode 100644 index 00000000..e2a78c20 --- /dev/null +++ b/assets/customTextures/readme.md @@ -0,0 +1,2 @@ +here you can place custom textures for bundled files (blocks/items) e.g. blocks/stone.png +get file names from here (blocks/items) https://zardoy.github.io/mc-assets/ diff --git a/assets/debug-inputs.html b/assets/debug-inputs.html new file mode 100644 index 00000000..584fe4d7 --- /dev/null +++ b/assets/debug-inputs.html @@ -0,0 +1,237 @@ + + + + + + Web Input Debugger + + + +
+ +
+ +
+
W
+
A
+
S
+
D
+
+ +
+
Ctrl
+
+ +
+
Space
+
+ + + + diff --git a/assets/destroy_stage_0.png b/assets/destroy_stage_0.png new file mode 100644 index 00000000..f65b7ede Binary files /dev/null and b/assets/destroy_stage_0.png differ diff --git a/assets/destroy_stage_1.png b/assets/destroy_stage_1.png new file mode 100644 index 00000000..7c915961 Binary files /dev/null and b/assets/destroy_stage_1.png differ diff --git a/assets/destroy_stage_2.png b/assets/destroy_stage_2.png new file mode 100644 index 00000000..dadd6b05 Binary files /dev/null and b/assets/destroy_stage_2.png differ diff --git a/assets/destroy_stage_3.png b/assets/destroy_stage_3.png new file mode 100644 index 00000000..52a40b65 Binary files /dev/null and b/assets/destroy_stage_3.png differ diff --git a/assets/destroy_stage_4.png b/assets/destroy_stage_4.png new file mode 100644 index 00000000..e37c88a2 Binary files /dev/null and b/assets/destroy_stage_4.png differ diff --git a/assets/destroy_stage_5.png b/assets/destroy_stage_5.png new file mode 100644 index 00000000..9590d2f7 Binary files /dev/null and b/assets/destroy_stage_5.png differ diff --git a/assets/destroy_stage_6.png b/assets/destroy_stage_6.png new file mode 100644 index 00000000..fb00ade5 Binary files /dev/null and b/assets/destroy_stage_6.png differ diff --git a/assets/destroy_stage_7.png b/assets/destroy_stage_7.png new file mode 100644 index 00000000..0b40c789 Binary files /dev/null and b/assets/destroy_stage_7.png differ diff --git a/assets/destroy_stage_8.png b/assets/destroy_stage_8.png new file mode 100644 index 00000000..c0bf1dec Binary files /dev/null and b/assets/destroy_stage_8.png differ diff --git a/assets/destroy_stage_9.png b/assets/destroy_stage_9.png new file mode 100644 index 00000000..e3185f82 Binary files /dev/null and b/assets/destroy_stage_9.png differ diff --git a/assets/edition.png b/assets/edition.png new file mode 100644 index 00000000..995cdb17 Binary files /dev/null and b/assets/edition.png differ diff --git a/assets/favicon.png b/assets/favicon.png new file mode 100644 index 00000000..046cacd0 Binary files /dev/null and b/assets/favicon.png differ diff --git a/assets/generic_91.png b/assets/generic_91.png new file mode 100644 index 00000000..99e4d04a Binary files /dev/null and b/assets/generic_91.png differ diff --git a/assets/generic_92.png b/assets/generic_92.png new file mode 100644 index 00000000..299e081b Binary files /dev/null and b/assets/generic_92.png differ diff --git a/assets/generic_93.png b/assets/generic_93.png new file mode 100644 index 00000000..1b35f671 Binary files /dev/null and b/assets/generic_93.png differ diff --git a/assets/generic_94.png b/assets/generic_94.png new file mode 100644 index 00000000..19dc788d Binary files /dev/null and b/assets/generic_94.png differ diff --git a/assets/generic_95.png b/assets/generic_95.png new file mode 100644 index 00000000..2286dbfc Binary files /dev/null and b/assets/generic_95.png differ diff --git a/assets/gui.png b/assets/gui.png new file mode 100644 index 00000000..d583b6b4 Binary files /dev/null and b/assets/gui.png differ diff --git a/assets/loading-bg.jpg b/assets/loading-bg.jpg new file mode 100644 index 00000000..168c741e Binary files /dev/null and b/assets/loading-bg.jpg differ diff --git a/assets/manifest.json b/assets/manifest.json new file mode 100644 index 00000000..4310ae7f --- /dev/null +++ b/assets/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "Minecraft Web Client", + "short_name": "Minecraft Web Client", + "scope": "./", + "start_url": "./", + "icons": [ + { + "src": "favicon.png", + "sizes": "720x720" + } + ], + "background_color": "#349474", + "theme_color": "#349474", + "lang": "en-US", + "orientation": "landscape", + "display": "standalone" +} diff --git a/assets/minecraftia.woff b/assets/minecraftia.woff new file mode 100644 index 00000000..45790132 Binary files /dev/null and b/assets/minecraftia.woff differ diff --git a/assets/mojangles.ttf b/assets/mojangles.ttf new file mode 100644 index 00000000..e7b87e9f Binary files /dev/null and b/assets/mojangles.ttf differ diff --git a/assets/playground.html b/assets/playground.html new file mode 100644 index 00000000..8c394f91 --- /dev/null +++ b/assets/playground.html @@ -0,0 +1,4 @@ + + diff --git a/assets/storybook-bg.jpg b/assets/storybook-bg.jpg new file mode 100644 index 00000000..75d0156d Binary files /dev/null and b/assets/storybook-bg.jpg differ diff --git a/config.json b/config.json new file mode 100644 index 00000000..2bfa9cfe --- /dev/null +++ b/config.json @@ -0,0 +1,80 @@ +{ + "version": 1, + "defaultHost": "", + "defaultProxy": "https://proxy.mcraft.fun", + "mapsProvider": "https://maps.mcraft.fun/", + "skinTexturesProxy": "", + "peerJsServer": "", + "peerJsServerFallback": "https://p2p.mcraft.fun", + "promoteServers": [ + { + "ip": "wss://play.mcraft.fun" + }, + { + "ip": "wss://play.webmc.fun", + "name": "WebMC" + }, + { + "ip": "wss://ws.fuchsmc.net" + }, + { + "ip": "wss://play2.mcraft.fun" + }, + { + "ip": "wss://play-creative.mcraft.fun", + "description": "Might be available soon, stay tuned!" + }, + { + "ip": "kaboom.pw", + "version": "1.20.3", + "description": "Very nice a polite server. Must try for everyone!" + } + ], + "rightSideText": "A Minecraft client clone in the browser!", + "splashText": "The sunset is coming!", + "splashTextFallback": "Welcome!", + "pauseLinks": [ + [ + { + "type": "github" + }, + { + "type": "discord" + } + ] + ], + "defaultUsername": "mcrafter{0-9999}", + "mobileButtons": [ + { + "action": "general.drop", + "actionHold": "general.dropStack", + "label": "Q" + }, + { + "action": "general.selectItem", + "actionHold": "", + "label": "S" + }, + { + "action": "general.debugOverlay", + "actionHold": "general.debugOverlayHelpMenu", + "label": "F3" + }, + { + "action": "general.playersList", + "actionHold": "", + "icon": "pixelarticons:users", + "label": "TAB" + }, + { + "action": "general.chat", + "actionHold": "", + "label": "" + }, + { + "action": "ui.pauseMenu", + "actionHold": "", + "label": "" + } + ] +} diff --git a/config.mcraft-only.json b/config.mcraft-only.json new file mode 100644 index 00000000..52a3aa2c --- /dev/null +++ b/config.mcraft-only.json @@ -0,0 +1,5 @@ +{ + "alwaysReconnectButton": true, + "reportBugButtonWithReconnect": true, + "allowAutoConnect": true +} diff --git a/cypress.config.ts b/cypress.config.ts new file mode 100644 index 00000000..3bf2c720 --- /dev/null +++ b/cypress.config.ts @@ -0,0 +1,40 @@ +import { defineConfig } from 'cypress' + +const isPerformanceTest = process.env.PERFORMANCE_TEST === 'true' + +export default defineConfig({ + video: false, + chromeWebSecurity: false, + screenshotOnRunFailure: true, // Enable screenshots on test failures + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents (on, config) { + // https://medium.com/automation-with-donald/get-memory-consumption-of-web-app-with-cypress-84e2656e5a0f + on('before:browser:launch', (browser = { + name: "", + family: "chromium", + channel: "", + displayName: "", + version: "", + majorVersion: "", + path: "", + isHeaded: false, + isHeadless: false + }, launchOptions) => { + if (browser.family === 'chromium' && browser.name !== 'electron') { + // auto open devtools + launchOptions.args.push('--enable-precise-memory-info') + } + + return launchOptions + + }) + + return require('./cypress/plugins/index.js')(on, config) + }, + baseUrl: 'http://localhost:8080', + specPattern: !isPerformanceTest ? 'cypress/e2e/smoke.spec.ts' : 'cypress/e2e/rendering_performance.spec.ts', + excludeSpecPattern: ['**/__snapshots__/*', '**/__image_snapshots__/*'], + }, +}) diff --git a/cypress/.gitignore b/cypress/.gitignore new file mode 100644 index 00000000..3451417e --- /dev/null +++ b/cypress/.gitignore @@ -0,0 +1,2 @@ +screenshots +fixtures diff --git a/cypress/e2e/__image_snapshots__/superflat-world #0.png b/cypress/e2e/__image_snapshots__/superflat-world #0.png new file mode 100644 index 00000000..dcddd3ad Binary files /dev/null and b/cypress/e2e/__image_snapshots__/superflat-world #0.png differ diff --git a/cypress/e2e/__image_snapshots__/superflat-world #1.png b/cypress/e2e/__image_snapshots__/superflat-world #1.png new file mode 100644 index 00000000..763d4514 Binary files /dev/null and b/cypress/e2e/__image_snapshots__/superflat-world #1.png differ diff --git a/cypress/e2e/__image_snapshots__/superflat-world #2.png b/cypress/e2e/__image_snapshots__/superflat-world #2.png new file mode 100644 index 00000000..763d4514 Binary files /dev/null and b/cypress/e2e/__image_snapshots__/superflat-world #2.png differ diff --git a/cypress/e2e/rendering_performance.spec.ts b/cypress/e2e/rendering_performance.spec.ts new file mode 100644 index 00000000..2ca85329 --- /dev/null +++ b/cypress/e2e/rendering_performance.spec.ts @@ -0,0 +1,32 @@ +/// +import { BenchmarkAdapterInfo, getAllInfoLines } from '../../src/benchmarkAdapter' +import { cleanVisit } from './shared' + +it('Benchmark rendering performance', () => { + cleanVisit('/?openBenchmark=true&renderDistance=5') + // wait for render end event + return cy.document().then({ timeout: 180_000 }, doc => { + return new Cypress.Promise(resolve => { + cy.log('Waiting for world to load') + doc.addEventListener('cypress-world-ready', resolve) + }).then(() => { + cy.log('World loaded') + }) + }).then(() => { + cy.window().then(win => { + const adapter = win.benchmarkAdapter as BenchmarkAdapterInfo + + const messages = getAllInfoLines(adapter) + // wait for 10 seconds + cy.wait(10_000) + const messages2 = getAllInfoLines(adapter, true) + for (const message of messages) { + cy.log(message) + } + for (const message of messages2) { + cy.log(message) + } + cy.writeFile('benchmark.txt', [...messages, ...messages2].join('\n')) + }) + }) +}) diff --git a/cypress/e2e/shared.ts b/cypress/e2e/shared.ts new file mode 100644 index 00000000..47518f1b --- /dev/null +++ b/cypress/e2e/shared.ts @@ -0,0 +1,18 @@ +import { AppOptions } from '../../src/optionsStorage' + +export const cleanVisit = (url?) => { + cy.clearLocalStorage() + visit(url) + window.localStorage.options = { + chatOpacity: 0 + } +} +export const visit = (url = '/') => { + window.localStorage.cypress = 'true' + cy.visit(url) +} +export const setOptions = (options: Partial) => { + cy.window().then(win => { + Object.assign(win['options'], options) + }) +} diff --git a/cypress/e2e/smoke.spec.ts b/cypress/e2e/smoke.spec.ts new file mode 100644 index 00000000..ae110155 --- /dev/null +++ b/cypress/e2e/smoke.spec.ts @@ -0,0 +1,108 @@ +/* eslint-disable max-nested-callbacks */ +/// +import supportedVersions from '../../src/supportedVersions.mjs' +import { setOptions, cleanVisit, visit } from './shared' + +// todo use ssl + +const compareRenderedFlatWorld = () => { + // wait for render + // cy.wait(6000) + // cy.get('body').toMatchImageSnapshot({ + // name: 'superflat-world', + // }) +} + +const testWorldLoad = () => { + return cy.document().then({ timeout: 35_000 }, doc => { + return new Cypress.Promise(resolve => { + doc.addEventListener('cypress-world-ready', resolve) + }) + }).then(() => { + compareRenderedFlatWorld() + }) +} + +it('Loads & renders singleplayer', () => { + cleanVisit('/?singleplayer=1') + setOptions({ + localServerOptions: { + generation: { + name: 'superflat', + // eslint-disable-next-line unicorn/numeric-separators-style + options: { seed: 250869072 } + }, + }, + renderDistance: 2 + }) + testWorldLoad() +}) + +it.skip('Joins to local flying-squid server', () => { + visit('/?ip=localhost&version=1.16.1') + window.localStorage.version = '' + // todo replace with data-test + // cy.get('[data-test-id="servers-screen-button"]').click() + // cy.get('[data-test-id="server-ip"]').clear().focus().type('localhost') + // cy.get('[data-test-id="version"]').clear().focus().type('1.16.1') // todo needs to fix autoversion + cy.get('[data-test-id="connect-qs"]').click() // todo! cypress sometimes doesn't click + testWorldLoad() +}) + +it.skip('Joins to local latest Java vanilla server', () => { + const version = supportedVersions.at(-1)! + cy.task('startServer', [version, 25_590]).then(() => { + visit('/?ip=localhost:25590&username=bot') + cy.get('[data-test-id="connect-qs"]').click() + testWorldLoad().then(() => { + let x = 0 + let z = 0 + cy.window().then((win) => { + x = win.bot.entity.position.x + z = win.bot.entity.position.z + }) + cy.document().trigger('keydown', { code: 'KeyW' }) + cy.wait(1500).then(() => { + cy.document().trigger('keyup', { code: 'KeyW' }) + cy.window().then(async (win) => { + // eslint-disable-next-line prefer-destructuring + const bot: typeof __type_bot = win.bot + // todo use f3 stats instead + if (bot.entity.position.x === x && bot.entity.position.z === z) { + throw new Error('Player not moved') + } + + bot.chat('Hello') // todo assert + bot.chat('/gamemode creative') + // bot.on('message', () => { + void bot.creative.setInventorySlot(bot.inventory.hotbarStart, new win.PrismarineItem(1, 1, 0)) + // }) + await bot.lookAt(bot.entity.position.offset(1, 0, 1)) + }).then(() => { + cy.document().trigger('mousedown', { button: 2, isTrusted: true, force: true }) // right click + cy.document().trigger('mouseup', { button: 2, isTrusted: true, force: true }) + cy.wait(1000) + }) + }) + }) + }) +}) + +it('Loads & renders zip world', () => { + cleanVisit() + cy.get('[data-test-id="select-file-folder"]').click({ shiftKey: true }) + cy.get('input[type="file"]').selectFile('cypress/superflat.zip', { force: true }) + testWorldLoad() +}) + + +it.skip('Loads & renders world from folder', () => { + cleanVisit() + // dragndrop folder + cy.get('[data-test-id="select-file-folder"]').click() + cy.get('input[type="file"]').selectFile('server-jar/world', { + force: true, + // action: 'drag-drop', + }) + testWorldLoad() +}) diff --git a/cypress/minecraft-server.mjs b/cypress/minecraft-server.mjs new file mode 100644 index 00000000..ea7bbcd1 --- /dev/null +++ b/cypress/minecraft-server.mjs @@ -0,0 +1,26 @@ +//@ts-check +import mcServer from 'flying-squid' +import defaultOptions from 'flying-squid/config/default-settings.json' with { type: 'json' } + +/** @type {Options} */ +const serverOptions = { + ...defaultOptions, + 'online-mode': false, + 'logging': false, + 'gameMode': 0, + 'difficulty': 0, + 'worldFolder': undefined, + // todo set sid, disable entities auto-spawn + 'generation': { + 'name': 'superflat', + options: {} + // 'options': { + // 'worldHeight': 80 + // } + }, + 'modpe': false, + 'view-distance': 4, + 'everybody-op': true, + 'version': '1.16.1' +} +const server = mcServer.createMCServer(serverOptions) diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js new file mode 100644 index 00000000..e55f5d26 --- /dev/null +++ b/cypress/plugins/index.js @@ -0,0 +1,33 @@ +//@ts-check +const { cypressEsbuildPreprocessor } = require('cypress-esbuild-preprocessor') +const { initPlugin } = require('cypress-plugin-snapshots/plugin') +const polyfill = require('esbuild-plugin-polyfill-node') +const { startMinecraftServer } = require('./startServer') + +module.exports = (on, config) => { + initPlugin(on, config) + on('file:preprocessor', cypressEsbuildPreprocessor({ + esbuildOptions: { + sourcemap: true, + plugins: [ + polyfill.polyfillNode({ + polyfills: { + crypto: true, + }, + }) + ], + }, + })) + on('task', { + log(message) { + console.log(message) + return null + }, + }) + on('task', { + async startServer([version, port]) { + return startMinecraftServer(version, port) + } + }) + return config +} diff --git a/cypress/plugins/ops.json b/cypress/plugins/ops.json new file mode 100644 index 00000000..ade5aaa5 --- /dev/null +++ b/cypress/plugins/ops.json @@ -0,0 +1,8 @@ +[ + { + "uuid": "67128b5b-2e6b-3ad1-baa0-1b937b03e5c5", + "name": "bot", + "level": 4, + "bypassesPlayerLimit": false + } +] diff --git a/cypress/plugins/server.properties b/cypress/plugins/server.properties new file mode 100644 index 00000000..5873a1aa --- /dev/null +++ b/cypress/plugins/server.properties @@ -0,0 +1,61 @@ +#Minecraft server properties +allow-flight=false +allow-nether=true +broadcast-console-to-ops=true +broadcast-rcon-to-ops=true +difficulty=peaceful +enable-command-block=false +enable-jmx-monitoring=false +enable-query=false +enable-rcon=false +enable-status=true +enforce-secure-profile=true +enforce-whitelist=false +entity-broadcast-range-percentage=100 +force-gamemode=false +function-permission-level=2 +gamemode=survival +generate-structures=true +generator-settings={} +hardcore=false +hide-online-players=false +initial-disabled-packs= +initial-enabled-packs=vanilla +level-name=world +level-seed= +level-type=flat +log-ips=true +max-build-height=256 +max-chained-neighbor-updates=1000000 +max-players=20 +max-tick-time=60000 +max-world-size=29999984 +motd=A Minecraft Server +network-compression-threshold=256 +online-mode=false +op-permission-level=4 +player-idle-timeout=0 +prevent-proxy-connections=false +pvp=true +query.port=25565 +rate-limit=0 +rcon.password= +rcon.port=25575 +require-resource-pack=false +resource-pack= +resource-pack-id= +resource-pack-prompt= +resource-pack-sha1= +server-ip= +server-port=25565 +simulation-distance=10 +snooper-enabled=true +spawn-animals=true +spawn-monsters=true +spawn-npcs=true +spawn-protection=16 +sync-chunk-writes=true +text-filtering-config= +use-native-transport=true +view-distance=10 +white-list=false diff --git a/cypress/plugins/startServer.ts b/cypress/plugins/startServer.ts new file mode 100644 index 00000000..ecf0d210 --- /dev/null +++ b/cypress/plugins/startServer.ts @@ -0,0 +1,45 @@ +import { ChildProcess, spawn } from 'child_process' +import * as fs from 'fs' +import * as path from 'path' +import { promisify } from 'util' +import { downloadServer } from 'minecraft-wrap' +import * as waitOn from 'wait-on' + +let prevProcess: ChildProcess | null = null +export const startMinecraftServer = async (version: string, port: number) => { + if (prevProcess) return null + const jar = `./server-jar/${version}.jar` + + const start = () => { + // if (prevProcess) { + // prevProcess.kill() + // } + + prevProcess = spawn('java', ['-jar', path.basename(jar), 'nogui', '--port', `${port}`], { + stdio: 'inherit', + cwd: path.dirname(jar), + }) + } + + let coldStart = false + if (fs.existsSync(jar)) { + start() + } else { + coldStart = true + promisify(downloadServer)(version, jar).then(() => { + // add eula.txt + fs.writeFileSync(path.join(path.dirname(jar), 'eula.txt'), 'eula=true') + // copy cypress/plugins/server.properties + fs.copyFileSync(path.join(__dirname, 'server.properties'), path.join(path.dirname(jar), 'server.properties')) + // copy ops.json + fs.copyFileSync(path.join(__dirname, 'ops.json'), path.join(path.dirname(jar), 'ops.json')) + start() + }) + } + + return new Promise((res) => { + waitOn({ resources: [`tcp:localhost:${port}`] }, () => { + setTimeout(() => res(null), coldStart ? 6500 : 2000) // todo retry instead of timeout + }) + }) +} diff --git a/cypress/superflat.zip b/cypress/superflat.zip new file mode 100644 index 00000000..10fc9f46 Binary files /dev/null and b/cypress/superflat.zip differ diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js new file mode 100644 index 00000000..bef856f5 --- /dev/null +++ b/cypress/support/e2e.js @@ -0,0 +1,2 @@ +import 'cypress-plugin-snapshots/commands' +Cypress.Commands.overwrite('log', (_subject, message) => cy.task('log', message)) diff --git a/docs-assets/banner.jpg b/docs-assets/banner.jpg new file mode 100644 index 00000000..270a6863 Binary files /dev/null and b/docs-assets/banner.jpg differ diff --git a/docs-assets/handled-packets.md b/docs-assets/handled-packets.md new file mode 100644 index 00000000..497ec5ec --- /dev/null +++ b/docs-assets/handled-packets.md @@ -0,0 +1,169 @@ +# Handled Packets + +## Server -> Client + +❌ statistics +❌ advancements +❌ face_player +❌ nbt_query_response +❌ chat_suggestions +❌ trade_list +❌ vehicle_move +❌ open_book +❌ craft_recipe_response +❌ end_combat_event +❌ enter_combat_event +❌ unlock_recipes +❌ camera +❌ update_view_position +❌ update_view_distance +❌ entity_sound_effect +❌ stop_sound +❌ feature_flags +❌ select_advancement_tab +❌ declare_recipes +❌ tags +❌ acknowledge_player_digging +❌ initialize_world_border +❌ world_border_center +❌ world_border_lerp_size +❌ world_border_size +❌ world_border_warning_delay +❌ world_border_warning_reach +❌ simulation_distance +❌ chunk_biomes +❌ hurt_animation +✅ damage_event +✅ spawn_entity +✅ spawn_entity_experience_orb +✅ named_entity_spawn +✅ animation +✅ block_break_animation +✅ tile_entity_data +✅ block_action +✅ block_change +✅ boss_bar +✅ difficulty +✅ tab_complete +✅ declare_commands +✅ multi_block_change +✅ close_window +✅ open_window +✅ window_items +✅ craft_progress_bar +✅ set_slot +✅ set_cooldown +✅ custom_payload +✅ hide_message +✅ kick_disconnect +✅ profileless_chat +✅ entity_status +✅ explosion +✅ unload_chunk +✅ game_state_change +✅ open_horse_window +✅ keep_alive +✅ map_chunk +✅ world_event +✅ world_particles +✅ update_light +✅ login +✅ map +✅ rel_entity_move +✅ entity_move_look +✅ entity_look +✅ open_sign_entity +✅ abilities +✅ player_chat +✅ death_combat_event +✅ player_remove +✅ player_info +✅ position +✅ entity_destroy +✅ remove_entity_effect +✅ resource_pack_send +✅ respawn +✅ entity_head_rotation +✅ held_item_slot +✅ scoreboard_display_objective +✅ entity_metadata +✅ attach_entity +✅ entity_velocity +✅ entity_equipment +✅ experience +✅ update_health +✅ scoreboard_objective +✅ set_passengers +✅ teams +✅ scoreboard_score +✅ spawn_position +✅ update_time +✅ sound_effect +✅ system_chat +✅ playerlist_header +✅ collect +✅ entity_teleport +✅ entity_update_attributes +✅ entity_effect +✅ server_data +✅ clear_titles +✅ action_bar +✅ ping +✅ set_title_subtitle +✅ set_title_text +✅ set_title_time +✅ packet + +## Client -> Server + +❌ query_block_nbt +❌ set_difficulty +❌ query_entity_nbt +❌ pick_item +❌ set_beacon_effect +❌ update_command_block_minecart +❌ update_structure_block +❌ generate_structure +❌ lock_difficulty +❌ craft_recipe_request +❌ displayed_recipe +❌ recipe_book +❌ update_jigsaw_block +❌ spectate +❌ advancement_tab +✅ teleport_confirm +✅ chat_command +✅ chat_message +✅ message_acknowledgement +✅ edit_book +✅ name_item +✅ select_trade +✅ update_command_block +✅ tab_complete +✅ client_command +✅ settings +✅ enchant_item +✅ window_click +✅ close_window +✅ custom_payload +✅ use_entity +✅ keep_alive +✅ position +✅ position_look +✅ look +✅ flying +✅ vehicle_move +✅ steer_boat +✅ abilities +✅ block_dig +✅ entity_action +✅ steer_vehicle +✅ resource_pack_receive +✅ held_item_slot +✅ set_creative_slot +✅ update_sign +✅ arm_animation +✅ block_place +✅ use_item +✅ pong +✅ chat_session_update diff --git a/docs-assets/npm-banner.jpeg b/docs-assets/npm-banner.jpeg new file mode 100644 index 00000000..95de07b8 Binary files /dev/null and b/docs-assets/npm-banner.jpeg differ diff --git a/docs-assets/singleplayer-future-city-1-10-2.jpg b/docs-assets/singleplayer-future-city-1-10-2.jpg new file mode 100644 index 00000000..e5be2ada Binary files /dev/null and b/docs-assets/singleplayer-future-city-1-10-2.jpg differ diff --git a/docs-assets/watch-expr.png b/docs-assets/watch-expr.png new file mode 100644 index 00000000..a21c07a9 Binary files /dev/null and b/docs-assets/watch-expr.png differ diff --git a/experiments/UiStandaloneExample.tsx b/experiments/UiStandaloneExample.tsx new file mode 100644 index 00000000..80f68e8d --- /dev/null +++ b/experiments/UiStandaloneExample.tsx @@ -0,0 +1,71 @@ +import React, { useState } from 'react' +import { createRoot } from 'react-dom/client' +import { + Button, + Slider, + ArmorBar, + BreathBar, + Chat, + HealthBar, + PlayerListOverlay, + Scoreboard, + MessageFormattedString, + XPBar, + FoodBar +} from '../dist-npm' + +const ExampleDemo = () => { + const [sliderValue, setSliderValue] = useState(0) + + return ( +
+ + setSliderValue(value)} /> + + { + console.log('typed', message) + // close + }} + /> + + + + + "§bRed" displays as + + +
+ ) +} + +createRoot(document.body as Element).render() diff --git a/experiments/decode.html b/experiments/decode.html new file mode 100644 index 00000000..fd55e622 --- /dev/null +++ b/experiments/decode.html @@ -0,0 +1 @@ + diff --git a/experiments/decode.ts b/experiments/decode.ts new file mode 100644 index 00000000..6d0f876d --- /dev/null +++ b/experiments/decode.ts @@ -0,0 +1,26 @@ +// Include the pako library +import pako from 'pako'; +import compressedJsRaw from './compressed.js?raw' + +function decompressFromBase64(input) { + // Decode the Base64 string + const binaryString = atob(input); + const len = binaryString.length; + const bytes = new Uint8Array(len); + + // Convert the binary string to a byte array + for (let i = 0; i < len; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + + // Decompress the byte array + const decompressedData = pako.inflate(bytes, { to: 'string' }); + + return decompressedData; +} + +// Use the function +console.time('decompress'); +const decompressedData = decompressFromBase64(compressedJsRaw); +console.timeEnd('decompress') +console.log(decompressedData) diff --git a/experiments/ios-safe-area-bottom-bug.html b/experiments/ios-safe-area-bottom-bug.html new file mode 100644 index 00000000..53d867f5 --- /dev/null +++ b/experiments/ios-safe-area-bottom-bug.html @@ -0,0 +1,15 @@ + +
+ bottom: env(safe-area-inset-bottom) +
diff --git a/experiments/pointers.html b/experiments/pointers.html new file mode 100644 index 00000000..1d2d15dc --- /dev/null +++ b/experiments/pointers.html @@ -0,0 +1,39 @@ + + + + + + Document + + +
+ + + diff --git a/experiments/state.html b/experiments/state.html new file mode 100644 index 00000000..7a5282b7 --- /dev/null +++ b/experiments/state.html @@ -0,0 +1 @@ + diff --git a/experiments/state.ts b/experiments/state.ts new file mode 100644 index 00000000..b01523fc --- /dev/null +++ b/experiments/state.ts @@ -0,0 +1,37 @@ +import { SmoothSwitcher } from '../renderer/viewer/lib/smoothSwitcher' + +const div = document.createElement('div') +div.style.width = '100px' +div.style.height = '100px' +div.style.backgroundColor = 'red' +document.body.appendChild(div) + +const pos = {x: 0, y: 0} + +const positionSwitcher = new SmoothSwitcher(() => pos, (key, value) => { + pos[key] = value +}) +globalThis.positionSwitcher = positionSwitcher + +document.body.addEventListener('keydown', e => { + if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') { + const to = { + x: e.code === 'ArrowLeft' ? -100 : 100 + } + console.log(pos, to) + positionSwitcher.transitionTo(to, e.code === 'ArrowLeft' ? 'Left' : 'Right', () => { + console.log('Switched to ', e.code === 'ArrowLeft' ? 'Left' : 'Right') + }) + } + if (e.code === 'Space') { + pos.x = 200 + } +}) + +const render = () => { + positionSwitcher.update() + div.style.transform = `translate(${pos.x}px, ${pos.y}px)` + requestAnimationFrame(render) +} + +render() diff --git a/experiments/three-item.html b/experiments/three-item.html new file mode 100644 index 00000000..70155c50 --- /dev/null +++ b/experiments/three-item.html @@ -0,0 +1,13 @@ + + + + Minecraft Item Viewer + + + + + + diff --git a/experiments/three-item.ts b/experiments/three-item.ts new file mode 100644 index 00000000..b9d492fe --- /dev/null +++ b/experiments/three-item.ts @@ -0,0 +1,108 @@ +import * as THREE from 'three' +import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls' +import itemsAtlas from 'mc-assets/dist/itemsAtlasLegacy.png' +import { createItemMeshFromCanvas, createItemMesh } from '../renderer/viewer/three/itemMesh' + +// Create scene, camera and renderer +const scene = new THREE.Scene() +const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000) +const renderer = new THREE.WebGLRenderer({ antialias: true }) +renderer.setSize(window.innerWidth, window.innerHeight) +document.body.appendChild(renderer.domElement) + +// Setup camera and controls +camera.position.set(0, 0, 3) +const controls = new OrbitControls(camera, renderer.domElement) +controls.enableDamping = true + +// Background and lights +scene.background = new THREE.Color(0x333333) +const ambientLight = new THREE.AmbientLight(0xffffff, 0.7) +scene.add(ambientLight) + +// Animation loop +function animate () { + requestAnimationFrame(animate) + controls.update() + renderer.render(scene, camera) +} + +async function setupItemMesh () { + try { + const loader = new THREE.TextureLoader() + const atlasTexture = await loader.loadAsync(itemsAtlas) + + // Pixel-art configuration + atlasTexture.magFilter = THREE.NearestFilter + atlasTexture.minFilter = THREE.NearestFilter + atlasTexture.generateMipmaps = false + atlasTexture.wrapS = atlasTexture.wrapT = THREE.ClampToEdgeWrapping + + // Extract the tile at x=2, y=0 (16x16) + const tileSize = 16 + const tileX = 2 + const tileY = 0 + + const canvas = document.createElement('canvas') + canvas.width = tileSize + canvas.height = tileSize + const ctx = canvas.getContext('2d')! + + ctx.imageSmoothingEnabled = false + ctx.drawImage( + atlasTexture.image, + tileX * tileSize, + tileY * tileSize, + tileSize, + tileSize, + 0, + 0, + tileSize, + tileSize + ) + + // Test both approaches - working manual extraction: + const meshOld = createItemMeshFromCanvas(canvas, { depth: 0.1 }) + meshOld.position.x = -1 + meshOld.rotation.x = -Math.PI / 12 + meshOld.rotation.y = Math.PI / 12 + scene.add(meshOld) + + // And new unified function: + const atlasWidth = atlasTexture.image.width + const atlasHeight = atlasTexture.image.height + const u = (tileX * tileSize) / atlasWidth + const v = (tileY * tileSize) / atlasHeight + const sizeX = tileSize / atlasWidth + const sizeY = tileSize / atlasHeight + + console.log('Debug texture coords:', {u, v, sizeX, sizeY, atlasWidth, atlasHeight}) + + const resultNew = createItemMesh(atlasTexture, { + u, v, sizeX, sizeY + }, { + faceCamera: false, + use3D: true, + depth: 0.1 + }) + + resultNew.mesh.position.x = 1 + resultNew.mesh.rotation.x = -Math.PI / 12 + resultNew.mesh.rotation.y = Math.PI / 12 + scene.add(resultNew.mesh) + + animate() + } catch (err) { + console.error('Failed to create item mesh:', err) + } +} + +// Handle window resize +window.addEventListener('resize', () => { + camera.aspect = window.innerWidth / window.innerHeight + camera.updateProjectionMatrix() + renderer.setSize(window.innerWidth, window.innerHeight) +}) + +// Start +setupItemMesh() diff --git a/experiments/three-labels.html b/experiments/three-labels.html new file mode 100644 index 00000000..2b25bc23 --- /dev/null +++ b/experiments/three-labels.html @@ -0,0 +1,5 @@ + + diff --git a/experiments/three-labels.ts b/experiments/three-labels.ts new file mode 100644 index 00000000..b69dc95b --- /dev/null +++ b/experiments/three-labels.ts @@ -0,0 +1,67 @@ +import * as THREE from 'three' +import { FirstPersonControls } from 'three/addons/controls/FirstPersonControls.js' +import { createWaypointSprite, WAYPOINT_CONFIG } from '../renderer/viewer/three/waypointSprite' + +// Create scene, camera and renderer +const scene = new THREE.Scene() +const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000) +const renderer = new THREE.WebGLRenderer({ antialias: true }) +renderer.setSize(window.innerWidth, window.innerHeight) +document.body.appendChild(renderer.domElement) + +// Add FirstPersonControls +const controls = new FirstPersonControls(camera, renderer.domElement) +controls.lookSpeed = 0.1 +controls.movementSpeed = 10 +controls.lookVertical = true +controls.constrainVertical = true +controls.verticalMin = 0.1 +controls.verticalMax = Math.PI - 0.1 + +// Position camera +camera.position.y = 1.6 // Typical eye height +camera.lookAt(0, 1.6, -1) + +// Create a helper grid and axes +const grid = new THREE.GridHelper(20, 20) +scene.add(grid) +const axes = new THREE.AxesHelper(5) +scene.add(axes) + +// Create waypoint sprite via utility +const waypoint = createWaypointSprite({ + position: new THREE.Vector3(0, 0, -5), + color: 0xff0000, + label: 'Target', +}) +scene.add(waypoint.group) + +// Use built-in offscreen arrow from utils +waypoint.enableOffscreenArrow(true) +waypoint.setArrowParent(scene) + +// Animation loop +function animate() { + requestAnimationFrame(animate) + + const delta = Math.min(clock.getDelta(), 0.1) + controls.update(delta) + + // Unified camera update (size, distance text, arrow, visibility) + const sizeVec = renderer.getSize(new THREE.Vector2()) + waypoint.updateForCamera(camera.position, camera, sizeVec.width, sizeVec.height) + + renderer.render(scene, camera) +} + +// Handle window resize +window.addEventListener('resize', () => { + camera.aspect = window.innerWidth / window.innerHeight + camera.updateProjectionMatrix() + renderer.setSize(window.innerWidth, window.innerHeight) +}) + +// Add clock for controls +const clock = new THREE.Clock() + +animate() diff --git a/experiments/three.html b/experiments/three.html new file mode 100644 index 00000000..8765081b --- /dev/null +++ b/experiments/three.html @@ -0,0 +1 @@ + diff --git a/experiments/three.ts b/experiments/three.ts new file mode 100644 index 00000000..21142b5f --- /dev/null +++ b/experiments/three.ts @@ -0,0 +1,60 @@ +import * as THREE from 'three' + +// Create scene, camera and renderer +const scene = new THREE.Scene() +const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000) +const renderer = new THREE.WebGLRenderer() +renderer.setSize(window.innerWidth, window.innerHeight) +document.body.appendChild(renderer.domElement) + +// Position camera +camera.position.z = 5 + +// Create a canvas with some content +const canvas = document.createElement('canvas') +canvas.width = 256 +canvas.height = 256 +const ctx = canvas.getContext('2d') + +scene.background = new THREE.Color(0x444444) + +// Draw something on the canvas +ctx.fillStyle = '#444444' +// ctx.fillRect(0, 0, 256, 256) +ctx.fillStyle = 'red' +ctx.font = '48px Arial' +ctx.textAlign = 'center' +ctx.textBaseline = 'middle' +ctx.fillText('Hello!', 128, 128) + +// Create bitmap and texture +async function createTexturedBox() { + const canvas2 = new OffscreenCanvas(256, 256) + const ctx2 = canvas2.getContext('2d')! + ctx2.drawImage(canvas, 0, 0) + const texture = new THREE.Texture(canvas2) + texture.magFilter = THREE.NearestFilter + texture.minFilter = THREE.NearestFilter + texture.needsUpdate = true + texture.flipY = false + + // Create box with texture + const geometry = new THREE.BoxGeometry(2, 2, 2) + const material = new THREE.MeshBasicMaterial({ + map: texture, + side: THREE.DoubleSide, + premultipliedAlpha: false, + }) + const cube = new THREE.Mesh(geometry, material) + scene.add(cube) +} + +// Create the textured box +createTexturedBox() + +// Animation loop +function animate() { + requestAnimationFrame(animate) + renderer.render(scene, camera) +} +animate() diff --git a/experiments/vite.config.ts b/experiments/vite.config.ts new file mode 100644 index 00000000..e0a30bef --- /dev/null +++ b/experiments/vite.config.ts @@ -0,0 +1,5 @@ +import { defineConfig } from 'vite'; + +export default defineConfig({ + root: 'experiments', +}) diff --git a/index.html b/index.html new file mode 100644 index 00000000..b2fa3dbd --- /dev/null +++ b/index.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + Minecraft Web Client + + + + + + + + + + + + +
+
+ + + diff --git a/package.json b/package.json new file mode 100644 index 00000000..ff673726 --- /dev/null +++ b/package.json @@ -0,0 +1,242 @@ +{ + "name": "minecraft-web-client", + "version": "0.0.0-dev", + "description": "A minecraft client running in a browser", + "scripts": { + "dev-rsbuild": "rsbuild dev", + "dev-proxy": "node server.js", + "start": "run-p dev-proxy dev-rsbuild watch-mesher", + "start2": "run-p dev-rsbuild watch-mesher", + "start-metrics": "ENABLE_METRICS=true rsbuild dev", + "build": "pnpm build-other-workers && rsbuild build", + "build-analyze": "BUNDLE_ANALYZE=true rsbuild build && pnpm build-other-workers", + "build-single-file": "SINGLE_FILE_BUILD=true rsbuild build", + "prepare-project": "tsx scripts/genShims.ts && tsx scripts/makeOptimizedMcData.mjs && tsx scripts/genLargeDataAliases.ts", + "check-build": "pnpm prepare-project && tsc && pnpm build", + "test:cypress": "cypress run", + "test:benchmark": "PERFORMANCE_TEST=true cypress run", + "test:cypress:open": "cypress open", + "test-unit": "vitest", + "test:e2e": "start-test http-get://localhost:8080 test:cypress", + "prod-start": "node server.js --prod", + "test-mc-server": "tsx cypress/minecraft-server.mjs", + "lint": "eslint \"{src,cypress,renderer}/**/*.{ts,js,jsx,tsx}\"", + "lint-fix": "pnpm lint --fix", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build && node scripts/build.js moveStorybookFiles", + "start-experiments": "vite --config experiments/vite.config.ts --host", + "watch-other-workers": "echo NOT IMPLEMENTED", + "build-other-workers": "echo NOT IMPLEMENTED", + "build-mesher": "node renderer/buildMesherWorker.mjs", + "watch-mesher": "pnpm build-mesher -w", + "run-playground": "run-p watch-mesher watch-other-workers watch-playground", + "run-all": "run-p start run-playground", + "build-playground": "rsbuild build --config renderer/rsbuild.config.ts", + "watch-playground": "rsbuild dev --config renderer/rsbuild.config.ts", + "update-git-deps": "tsx scripts/updateGitDeps.ts", + "request-data": "tsx scripts/requestData.ts" + }, + "keywords": [ + "prismarine", + "web", + "client" + ], + "release": { + "attachReleaseFiles": "{self-host.zip,minecraft.html}" + }, + "publish": { + "preset": { + "publishOnlyIfChanged": true, + "runBuild": false + } + }, + "license": "MIT", + "dependencies": { + "@dimaka/interface": "0.0.3-alpha.0", + "@floating-ui/react": "^0.26.1", + "@monaco-editor/react": "^4.7.0", + "@nxg-org/mineflayer-auto-jump": "^0.7.18", + "@nxg-org/mineflayer-tracker": "1.3.0", + "@react-oauth/google": "^0.12.1", + "@stylistic/eslint-plugin": "^2.6.1", + "@types/gapi": "^0.0.47", + "@types/react": "^18.2.20", + "@types/react-dom": "^18.2.7", + "@types/wicg-file-system-access": "^2023.10.2", + "@xmcl/text-component": "^2.1.3", + "@zardoy/react-util": "^0.2.4", + "@zardoy/utils": "^0.0.11", + "adm-zip": "^0.5.12", + "browserfs": "github:zardoy/browserfs#build", + "change-case": "^5.1.2", + "classnames": "^2.5.1", + "compression": "^1.7.4", + "cors": "^2.8.5", + "debug": "^4.3.4", + "deepslate": "^0.23.5", + "diff-match-patch": "^1.0.5", + "eruda": "^3.0.1", + "esbuild": "^0.19.3", + "esbuild-plugin-polyfill-node": "^0.3.0", + "express": "^4.18.2", + "filesize": "^10.0.12", + "flying-squid": "npm:@zardoy/flying-squid@^0.0.104", + "framer-motion": "^12.9.2", + "fs-extra": "^11.1.1", + "google-drive-browserfs": "github:zardoy/browserfs#google-drive", + "jszip": "^3.10.1", + "lodash-es": "^4.17.21", + "mcraft-fun-mineflayer": "^0.1.23", + "minecraft-data": "3.98.0", + "minecraft-protocol": "github:PrismarineJS/node-minecraft-protocol#master", + "mineflayer-item-map-downloader": "github:zardoy/mineflayer-item-map-downloader", + "mojangson": "^2.0.4", + "net-browserify": "github:zardoy/prismarinejs-net-browserify", + "node-gzip": "^1.1.2", + "peerjs": "^1.5.0", + "pixelarticons": "^1.8.1", + "pretty-bytes": "^6.1.1", + "prismarine-provider-anvil": "github:zardoy/prismarine-provider-anvil#everything", + "prosemirror-example-setup": "^1.2.2", + "prosemirror-markdown": "^1.12.0", + "prosemirror-menu": "^1.2.4", + "prosemirror-state": "^1.4.3", + "prosemirror-view": "^1.33.1", + "qrcode.react": "^3.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-select": "^5.8.0", + "react-zoom-pan-pinch": "3.4.4", + "remark": "^15.0.1", + "sanitize-filename": "^1.6.3", + "skinview3d": "^3.0.1", + "source-map-js": "^1.0.2", + "stats-gl": "^1.0.5", + "stats.js": "^0.17.0", + "tabbable": "^6.2.0", + "title-case": "3.x", + "ua-parser-js": "^1.0.37", + "use-typed-event-listener": "^4.0.2", + "valtio": "^1.11.1", + "vec3": "^0.1.7", + "wait-on": "^7.2.0", + "workbox-build": "^7.0.0" + }, + "devDependencies": { + "@rsbuild/core": "1.3.5", + "@rsbuild/plugin-node-polyfill": "1.3.0", + "@rsbuild/plugin-react": "1.2.0", + "@rsbuild/plugin-type-check": "1.2.1", + "@rsbuild/plugin-typed-css-modules": "1.0.2", + "@storybook/addon-essentials": "^7.4.6", + "@storybook/addon-links": "^7.4.6", + "@storybook/blocks": "^7.4.6", + "@storybook/react": "^7.4.6", + "@storybook/react-vite": "^7.4.6", + "@types/diff-match-patch": "^1.0.36", + "@types/lodash-es": "^4.17.9", + "@types/stats.js": "^0.17.1", + "@types/three": "0.154.0", + "@types/ua-parser-js": "^0.7.39", + "@types/wait-on": "^5.3.4", + "@xmcl/installer": "^5.1.0", + "assert": "^2.0.0", + "browserify-zlib": "^0.2.0", + "buffer": "^6.0.3", + "constants-browserify": "^1.0.0", + "contro-max": "^0.1.9", + "crypto-browserify": "^3.12.0", + "cypress-esbuild-preprocessor": "^1.0.2", + "eslint": "^8.50.0", + "eslint-config-zardoy": "^0.2.17", + "events": "^3.3.0", + "gzip-size": "^7.0.0", + "http-browserify": "^1.7.0", + "http-server": "^14.1.1", + "https-browserify": "^1.0.0", + "mc-assets": "^0.2.62", + "minecraft-inventory-gui": "github:zardoy/minecraft-inventory-gui#next", + "mineflayer": "github:zardoy/mineflayer#gen-the-master", + "mineflayer-mouse": "^0.1.21", + "npm-run-all": "^4.1.5", + "os-browserify": "^0.3.0", + "path-browserify": "^1.0.1", + "path-exists-cli": "^2.0.0", + "process": "github:PrismarineJS/node-process", + "renderer": "link:renderer", + "rimraf": "^5.0.1", + "storybook": "^7.4.6", + "stream-browserify": "^3.0.0", + "three": "0.154.0", + "timers-browserify": "^2.0.12", + "typescript": "5.5.4", + "vitest": "^0.34.6", + "yaml": "^2.3.2" + }, + "optionalDependencies": { + "cypress": "^10.11.0", + "cypress-plugin-snapshots": "^1.4.4", + "sharp": "^0.33.5", + "systeminformation": "^5.21.22" + }, + "browserslist": { + "production": [ + "iOS >= 14", + "Android >= 13", + "Chrome >= 103", + "not dead", + "not ie <= 11", + "not op_mini all", + "> 0.5%" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "pnpm": { + "overrides": { + "mineflayer": "github:zardoy/mineflayer#gen-the-master", + "@nxg-org/mineflayer-physics-util": "1.8.10", + "buffer": "^6.0.3", + "vec3": "0.1.10", + "three": "0.154.0", + "diamond-square": "github:zardoy/diamond-square", + "prismarine-block": "github:zardoy/prismarine-block#next-era", + "prismarine-world": "github:zardoy/prismarine-world#next-era", + "minecraft-data": "3.98.0", + "prismarine-provider-anvil": "github:zardoy/prismarine-provider-anvil#everything", + "prismarine-physics": "github:zardoy/prismarine-physics", + "minecraft-protocol": "github:PrismarineJS/node-minecraft-protocol#master", + "react": "^18.2.0", + "prismarine-chunk": "github:zardoy/prismarine-chunk#master", + "prismarine-item": "latest" + }, + "updateConfig": { + "ignoreDependencies": [ + "browserfs", + "google-drive-browserfs" + ] + }, + "patchedDependencies": { + "pixelarticons@1.8.1": "patches/pixelarticons@1.8.1.patch", + "mineflayer-item-map-downloader@1.2.0": "patches/mineflayer-item-map-downloader@1.2.0.patch", + "minecraft-protocol": "patches/minecraft-protocol.patch" + }, + "ignoredBuiltDependencies": [ + "canvas", + "core-js", + "gl" + ], + "onlyBuiltDependencies": [ + "sharp", + "cypress", + "esbuild", + "fsevents" + ], + "ignorePatchFailures": false, + "allowUnusedPatches": false + }, + "packageManager": "pnpm@10.8.0+sha512.0e82714d1b5b43c74610193cb20734897c1d00de89d0e18420aebc5977fa13d780a9cb05734624e81ebd81cc876cd464794850641c48b9544326b5622ca29971" +} diff --git a/package.npm.json b/package.npm.json new file mode 100644 index 00000000..4853780f --- /dev/null +++ b/package.npm.json @@ -0,0 +1,42 @@ +{ + "name": "minecraft-react", + "description": "A Minecraft-like React UI library", + "keywords": [ + "minecraft", + "minecraft style", + "minecraft ui", + "minecraft components", + "minecraft react", + "minecraft library", + "minecraft web", + "minecraft browser" + ], + "license": "MIT", + "sideEffects": false, + "files": [ + "**" + ], + "exports": { + ".": { + "default": "./dist/react/npmReactComponents.js", + "types": "./dist/react/npmReactComponents.d.ts" + }, + "./*": { + "default": "./dist/react/*", + "types": "./dist/react/*" + }, + "./dist": { + "default": "./dist/*", + "types": "./dist/*" + } + }, + "module": "./dist/react/npmReactComponents.js", + "types": "./dist/react/npmReactComponents.d.ts", + "repository": "zardoy/minecraft-web-client", + "version": "0.0.0-dev", + "dependencies": {}, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } +} diff --git a/patches/minecraft-protocol.patch b/patches/minecraft-protocol.patch new file mode 100644 index 00000000..e29f87d9 --- /dev/null +++ b/patches/minecraft-protocol.patch @@ -0,0 +1,138 @@ +diff --git a/src/client/chat.js b/src/client/chat.js +index 0021870994fc59a82f0ac8aba0a65a8be43ef2f4..a53fceb843105ea2a1d88722b3fc7c3b43cb102a 100644 +--- a/src/client/chat.js ++++ b/src/client/chat.js +@@ -116,7 +116,7 @@ module.exports = function (client, options) { + for (const player of packet.data) { + if (player.chatSession) { + client._players[player.uuid] = { +- publicKey: crypto.createPublicKey({ key: player.chatSession.publicKey.keyBytes, format: 'der', type: 'spki' }), ++ // publicKey: crypto.createPublicKey({ key: player.chatSession.publicKey.keyBytes, format: 'der', type: 'spki' }), + publicKeyDER: player.chatSession.publicKey.keyBytes, + sessionUuid: player.chatSession.uuid + } +@@ -126,7 +126,7 @@ module.exports = function (client, options) { + + if (player.crypto) { + client._players[player.uuid] = { +- publicKey: crypto.createPublicKey({ key: player.crypto.publicKey, format: 'der', type: 'spki' }), ++ // publicKey: crypto.createPublicKey({ key: player.crypto.publicKey, format: 'der', type: 'spki' }), + publicKeyDER: player.crypto.publicKey, + signature: player.crypto.signature, + displayName: player.displayName || player.name +@@ -196,7 +196,7 @@ module.exports = function (client, options) { + if (mcData.supportFeature('useChatSessions')) { + const tsDelta = BigInt(Date.now()) - packet.timestamp + const expired = !packet.timestamp || tsDelta > messageExpireTime || tsDelta < 0 +- const verified = !packet.unsignedChatContent && updateAndValidateSession(packet.senderUuid, packet.plainMessage, packet.signature, packet.index, packet.previousMessages, packet.salt, packet.timestamp) && !expired ++ const verified = false && !packet.unsignedChatContent && updateAndValidateSession(packet.senderUuid, packet.plainMessage, packet.signature, packet.index, packet.previousMessages, packet.salt, packet.timestamp) && !expired + if (verified) client._signatureCache.push(packet.signature) + client.emit('playerChat', { + globalIndex: packet.globalIndex, +@@ -362,7 +362,7 @@ module.exports = function (client, options) { + } + } + +- client._signedChat = (message, options = {}) => { ++ client._signedChat = async (message, options = {}) => { + options.timestamp = options.timestamp || BigInt(Date.now()) + options.salt = options.salt || 1n + +@@ -407,7 +407,7 @@ module.exports = function (client, options) { + message, + timestamp: options.timestamp, + salt: options.salt, +- signature: (client.profileKeys && client._session) ? client.signMessage(message, options.timestamp, options.salt, undefined, acknowledgements) : undefined, ++ signature: (client.profileKeys && client._session) ? await client.signMessage(message, options.timestamp, options.salt, undefined, acknowledgements) : undefined, + offset: client._lastSeenMessages.pending, + checksum: computeChatChecksum(client._lastSeenMessages), // 1.21.5+ + acknowledged +@@ -422,7 +422,7 @@ module.exports = function (client, options) { + message, + timestamp: options.timestamp, + salt: options.salt, +- signature: client.profileKeys ? client.signMessage(message, options.timestamp, options.salt, options.preview) : Buffer.alloc(0), ++ signature: client.profileKeys ? await client.signMessage(message, options.timestamp, options.salt, options.preview) : Buffer.alloc(0), + signedPreview: options.didPreview, + previousMessages: client._lastSeenMessages.map((e) => ({ + messageSender: e.sender, +diff --git a/src/client/encrypt.js b/src/client/encrypt.js +index 63cc2bd9615100bd2fd63dfe14c094aa6b8cd1c9..36df57d1196af9761d920fa285ac48f85410eaef 100644 +--- a/src/client/encrypt.js ++++ b/src/client/encrypt.js +@@ -25,7 +25,11 @@ module.exports = function (client, options) { + if (packet.serverId !== '-') { + debug('This server appears to be an online server and you are providing no password, the authentication will probably fail') + } +- sendEncryptionKeyResponse() ++ client.end('This server appears to be an online server and you are providing no authentication. Try authenticating first.') ++ // sendEncryptionKeyResponse() ++ // client.once('set_compression', () => { ++ // clearTimeout(loginTimeout) ++ // }) + } + + function onJoinServerResponse (err) { +diff --git a/src/client/pluginChannels.js b/src/client/pluginChannels.js +index 671eb452f31e6b5fcd57d715f1009d010160c65f..7f69f511c8fb97d431ec5125c851b49be8e2ab76 100644 +--- a/src/client/pluginChannels.js ++++ b/src/client/pluginChannels.js +@@ -57,7 +57,7 @@ module.exports = function (client, options) { + try { + packet.data = proto.parsePacketBuffer(channel, packet.data).data + } catch (error) { +- client.emit('error', error) ++ client.emit('error', error, { customPayload: packet }) + return + } + } +diff --git a/src/client.js b/src/client.js +index e369e77d055ba919e8f9da7b8e8b5dc879c74cf4..54bb9e6644388e9b6bd42b3012951875989cdf0c 100644 +--- a/src/client.js ++++ b/src/client.js +@@ -111,7 +111,13 @@ class Client extends EventEmitter { + this._hasBundlePacket = false + } + } else { +- emitPacket(parsed) ++ try { ++ emitPacket(parsed) ++ } catch (err) { ++ console.log('Client incorrectly handled packet ' + parsed.metadata.name) ++ console.error(err) ++ // todo investigate why it doesn't close the stream even if unhandled there ++ } + } + }) + } +@@ -169,7 +175,10 @@ class Client extends EventEmitter { + } + + const onFatalError = (err) => { +- this.emit('error', err) ++ // todo find out what is trying to write after client disconnect ++ if(err.code !== 'ECONNABORTED') { ++ this.emit('error', err) ++ } + endSocket() + } + +@@ -198,6 +207,10 @@ class Client extends EventEmitter { + serializer -> framer -> socket -> splitter -> deserializer */ + if (this.serializer) { + this.serializer.end() ++ setTimeout(() => { ++ this.socket?.end() ++ this.socket?.emit('end') ++ }, 2000) // allow the serializer to finish writing + } else { + if (this.socket) this.socket.end() + } +@@ -243,6 +256,7 @@ class Client extends EventEmitter { + debug('writing packet ' + this.state + '.' + name) + debug(params) + } ++ this.emit('writePacket', name, params) + this.serializer.write({ name, params }) + } + diff --git a/patches/mineflayer-item-map-downloader@1.2.0.patch b/patches/mineflayer-item-map-downloader@1.2.0.patch new file mode 100644 index 00000000..97813cc1 --- /dev/null +++ b/patches/mineflayer-item-map-downloader@1.2.0.patch @@ -0,0 +1,16 @@ +diff --git a/package.json b/package.json +index 2a7aff75a9f1c7fe4eebb657002e58f4581dad0e..cd3490983353336efeb13f24f0af69c6c1d16444 100644 +--- a/package.json ++++ b/package.json +@@ -9,10 +9,7 @@ + "keywords": [], + "author": "Ic3Tank", + "license": "ISC", +- "dependencies": { +- "mineflayer": "^4.3.0", +- "sharp": "^0.30.6" +- }, ++ "dependencies": {}, + "devDependencies": { + "mineflayer-item-map-downloader": "file:./" + } diff --git a/patches/pixelarticons@1.8.1.patch b/patches/pixelarticons@1.8.1.patch new file mode 100644 index 00000000..b65b6f2b --- /dev/null +++ b/patches/pixelarticons@1.8.1.patch @@ -0,0 +1,28 @@ +diff --git a/fonts/pixelart-icons-font.css b/fonts/pixelart-icons-font.css +index 3b2ebe839370d96bf93ef5ca94a827f07e49378d..4f8d76be2ca6e4ddc43c68d0a6f0f69979165ab4 100644 +--- a/fonts/pixelart-icons-font.css ++++ b/fonts/pixelart-icons-font.css +@@ -1,16 +1,13 @@ + @font-face { + font-family: "pixelart-icons-font"; +- src: url('pixelart-icons-font.eot?t=1711815892278'); /* IE9*/ +- src: url('pixelart-icons-font.eot?t=1711815892278#iefix') format('embedded-opentype'), /* IE6-IE8 */ ++ src: + url("pixelart-icons-font.woff2?t=1711815892278") format("woff2"), + url("pixelart-icons-font.woff?t=1711815892278") format("woff"), +- url('pixelart-icons-font.ttf?t=1711815892278') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ +- url('pixelart-icons-font.svg?t=1711815892278#pixelart-icons-font') format('svg'); /* iOS 4.1- */ ++ url('pixelart-icons-font.ttf?t=1711815892278') format('truetype'); /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ + } + + [class^="pixelart-icons-font-"], [class*=" pixelart-icons-font-"] { + font-family: 'pixelart-icons-font' !important; +- font-size:24px; + font-style:normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +@@ -503,4 +500,3 @@ + .pixelart-icons-font-zap:before { content: "\ebe4"; } + .pixelart-icons-font-zoom-in:before { content: "\ebe5"; } + .pixelart-icons-font-zoom-out:before { content: "\ebe6"; } +- diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 00000000..5bcd74a0 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,20809 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +overrides: + mineflayer: github:zardoy/mineflayer#gen-the-master + '@nxg-org/mineflayer-physics-util': 1.8.10 + buffer: ^6.0.3 + vec3: 0.1.10 + three: 0.154.0 + diamond-square: github:zardoy/diamond-square + prismarine-block: github:zardoy/prismarine-block#next-era + prismarine-world: github:zardoy/prismarine-world#next-era + minecraft-data: 3.98.0 + prismarine-provider-anvil: github:zardoy/prismarine-provider-anvil#everything + prismarine-physics: github:zardoy/prismarine-physics + minecraft-protocol: github:PrismarineJS/node-minecraft-protocol#master + react: ^18.2.0 + prismarine-chunk: github:zardoy/prismarine-chunk#master + prismarine-item: latest + +patchedDependencies: + minecraft-protocol: + hash: 4ebdae314c68d01ce7879445c0b8bde5f90373abba8b66ed00d42e7a5f542f8b + path: patches/minecraft-protocol.patch + mineflayer-item-map-downloader@1.2.0: + hash: a731ebbace2d8790c973ab3a5ba33494a6e9658533a9710dd8ba36f86db061ad + path: patches/mineflayer-item-map-downloader@1.2.0.patch + pixelarticons@1.8.1: + hash: 533230072bc402f425c86abd3d0356fe087b14cab2a254d93f419b083f2d8dfa + path: patches/pixelarticons@1.8.1.patch + +importers: + + .: + dependencies: + '@dimaka/interface': + specifier: 0.0.3-alpha.0 + version: 0.0.3-alpha.0(@babel/core@7.26.9)(@popperjs/core@2.11.8)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/react': + specifier: ^0.26.1 + version: 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@monaco-editor/react': + specifier: ^4.7.0 + version: 4.7.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@nxg-org/mineflayer-auto-jump': + specifier: ^0.7.18 + version: 0.7.18 + '@nxg-org/mineflayer-tracker': + specifier: 1.3.0 + version: 1.3.0(encoding@0.1.13) + '@react-oauth/google': + specifier: ^0.12.1 + version: 0.12.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@stylistic/eslint-plugin': + specifier: ^2.6.1 + version: 2.13.0(eslint@8.57.1)(typescript@5.5.4) + '@types/gapi': + specifier: ^0.0.47 + version: 0.0.47 + '@types/react': + specifier: ^18.2.20 + version: 18.3.18 + '@types/react-dom': + specifier: ^18.2.7 + version: 18.3.5(@types/react@18.3.18) + '@types/wicg-file-system-access': + specifier: ^2023.10.2 + version: 2023.10.5 + '@xmcl/text-component': + specifier: ^2.1.3 + version: 2.1.3 + '@zardoy/react-util': + specifier: ^0.2.4 + version: 0.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@zardoy/utils': + specifier: ^0.0.11 + version: 0.0.11 + adm-zip: + specifier: ^0.5.12 + version: 0.5.16 + browserfs: + specifier: github:zardoy/browserfs#build + version: https://codeload.github.com/zardoy/browserfs/tar.gz/e60ca69e74888e057a96a468afe1d62347d3f56f + change-case: + specifier: ^5.1.2 + version: 5.4.4 + classnames: + specifier: ^2.5.1 + version: 2.5.1 + compression: + specifier: ^1.7.4 + version: 1.8.0 + cors: + specifier: ^2.8.5 + version: 2.8.5 + debug: + specifier: ^4.3.4 + version: 4.4.0(supports-color@8.1.1) + deepslate: + specifier: ^0.23.5 + version: 0.23.5 + diff-match-patch: + specifier: ^1.0.5 + version: 1.0.5 + eruda: + specifier: ^3.0.1 + version: 3.4.1 + esbuild: + specifier: ^0.19.3 + version: 0.19.12 + esbuild-plugin-polyfill-node: + specifier: ^0.3.0 + version: 0.3.0(esbuild@0.19.12) + express: + specifier: ^4.18.2 + version: 4.21.2 + filesize: + specifier: ^10.0.12 + version: 10.1.6 + flying-squid: + specifier: npm:@zardoy/flying-squid@^0.0.104 + version: '@zardoy/flying-squid@0.0.104(encoding@0.1.13)' + framer-motion: + specifier: ^12.9.2 + version: 12.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + fs-extra: + specifier: ^11.1.1 + version: 11.3.0 + google-drive-browserfs: + specifier: github:zardoy/browserfs#google-drive + version: browserfs@https://codeload.github.com/zardoy/browserfs/tar.gz/ab58ae8ef00e3a31db01909e365e6cb5188436e0 + jszip: + specifier: ^3.10.1 + version: 3.10.1 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + mcraft-fun-mineflayer: + specifier: ^0.1.23 + version: 0.1.23(encoding@0.1.13)(mineflayer@https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659(encoding@0.1.13)) + minecraft-data: + specifier: 3.98.0 + version: 3.98.0 + minecraft-protocol: + specifier: github:PrismarineJS/node-minecraft-protocol#master + version: https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9(patch_hash=4ebdae314c68d01ce7879445c0b8bde5f90373abba8b66ed00d42e7a5f542f8b)(encoding@0.1.13) + mineflayer-item-map-downloader: + specifier: github:zardoy/mineflayer-item-map-downloader + version: https://codeload.github.com/zardoy/mineflayer-item-map-downloader/tar.gz/a8d210ecdcf78dd082fa149a96e1612cc9747824(patch_hash=a731ebbace2d8790c973ab3a5ba33494a6e9658533a9710dd8ba36f86db061ad)(encoding@0.1.13) + mojangson: + specifier: ^2.0.4 + version: 2.0.4 + net-browserify: + specifier: github:zardoy/prismarinejs-net-browserify + version: https://codeload.github.com/zardoy/prismarinejs-net-browserify/tar.gz/e754999ffdea67853bc9b10553b5e9908b40f618 + node-gzip: + specifier: ^1.1.2 + version: 1.1.2 + peerjs: + specifier: ^1.5.0 + version: 1.5.4 + pixelarticons: + specifier: ^1.8.1 + version: 1.8.1(patch_hash=533230072bc402f425c86abd3d0356fe087b14cab2a254d93f419b083f2d8dfa) + pretty-bytes: + specifier: ^6.1.1 + version: 6.1.1 + prismarine-provider-anvil: + specifier: github:zardoy/prismarine-provider-anvil#everything + version: https://codeload.github.com/zardoy/prismarine-provider-anvil/tar.gz/1d548fac63fe977c8281f0a9a522b37e4d92d0b7(minecraft-data@3.98.0) + prosemirror-example-setup: + specifier: ^1.2.2 + version: 1.2.3 + prosemirror-markdown: + specifier: ^1.12.0 + version: 1.13.1 + prosemirror-menu: + specifier: ^1.2.4 + version: 1.2.4 + prosemirror-state: + specifier: ^1.4.3 + version: 1.4.3 + prosemirror-view: + specifier: ^1.33.1 + version: 1.38.1 + qrcode.react: + specifier: ^3.1.0 + version: 3.2.0(react@18.3.1) + react: + specifier: ^18.2.0 + version: 18.3.1 + react-dom: + specifier: ^18.2.0 + version: 18.3.1(react@18.3.1) + react-select: + specifier: ^5.8.0 + version: 5.10.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-zoom-pan-pinch: + specifier: 3.4.4 + version: 3.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + remark: + specifier: ^15.0.1 + version: 15.0.1 + sanitize-filename: + specifier: ^1.6.3 + version: 1.6.3 + skinview3d: + specifier: ^3.0.1 + version: 3.1.0 + source-map-js: + specifier: ^1.0.2 + version: 1.2.1 + stats-gl: + specifier: ^1.0.5 + version: 1.0.7 + stats.js: + specifier: ^0.17.0 + version: 0.17.0 + tabbable: + specifier: ^6.2.0 + version: 6.2.0 + title-case: + specifier: 3.x + version: 3.0.3 + ua-parser-js: + specifier: ^1.0.37 + version: 1.0.40 + use-typed-event-listener: + specifier: ^4.0.2 + version: 4.0.2(react@18.3.1)(typescript@5.5.4) + valtio: + specifier: ^1.11.1 + version: 1.13.2(@types/react@18.3.18)(react@18.3.1) + vec3: + specifier: 0.1.10 + version: 0.1.10 + wait-on: + specifier: ^7.2.0 + version: 7.2.0(debug@4.4.0) + workbox-build: + specifier: ^7.0.0 + version: 7.3.0(@types/babel__core@7.20.5) + devDependencies: + '@rsbuild/core': + specifier: 1.3.5 + version: 1.3.5 + '@rsbuild/plugin-node-polyfill': + specifier: 1.3.0 + version: 1.3.0(@rsbuild/core@1.3.5) + '@rsbuild/plugin-react': + specifier: 1.2.0 + version: 1.2.0(@rsbuild/core@1.3.5) + '@rsbuild/plugin-type-check': + specifier: 1.2.1 + version: 1.2.1(@rsbuild/core@1.3.5)(@rspack/core@1.3.3(@swc/helpers@0.5.15))(typescript@5.5.4) + '@rsbuild/plugin-typed-css-modules': + specifier: 1.0.2 + version: 1.0.2(@rsbuild/core@1.3.5) + '@storybook/addon-essentials': + specifier: ^7.4.6 + version: 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-links': + specifier: ^7.4.6 + version: 7.6.20(react@18.3.1) + '@storybook/blocks': + specifier: ^7.4.6 + version: 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/react': + specifier: ^7.4.6 + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@storybook/react-vite': + specifier: ^7.4.6 + version: 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@2.79.2)(typescript@5.5.4)(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@types/diff-match-patch': + specifier: ^1.0.36 + version: 1.0.36 + '@types/lodash-es': + specifier: ^4.17.9 + version: 4.17.12 + '@types/stats.js': + specifier: ^0.17.1 + version: 0.17.3 + '@types/three': + specifier: 0.154.0 + version: 0.154.0 + '@types/ua-parser-js': + specifier: ^0.7.39 + version: 0.7.39 + '@types/wait-on': + specifier: ^5.3.4 + version: 5.3.4 + '@xmcl/installer': + specifier: ^5.1.0 + version: 5.4.0 + assert: + specifier: ^2.0.0 + version: 2.1.0 + browserify-zlib: + specifier: ^0.2.0 + version: 0.2.0 + buffer: + specifier: ^6.0.3 + version: 6.0.3 + constants-browserify: + specifier: ^1.0.0 + version: 1.0.0 + contro-max: + specifier: ^0.1.9 + version: 0.1.9(typescript@5.5.4) + crypto-browserify: + specifier: ^3.12.0 + version: 3.12.1 + cypress-esbuild-preprocessor: + specifier: ^1.0.2 + version: 1.0.2 + eslint: + specifier: ^8.50.0 + version: 8.57.1 + eslint-config-zardoy: + specifier: ^0.2.17 + version: 0.2.17(eslint-plugin-react-hooks@5.2.0(eslint@8.57.1))(eslint-plugin-react@7.37.4(eslint@8.57.1))(eslint@8.57.1)(typescript@5.5.4) + events: + specifier: ^3.3.0 + version: 3.3.0 + gzip-size: + specifier: ^7.0.0 + version: 7.0.0 + http-browserify: + specifier: ^1.7.0 + version: 1.7.0 + http-server: + specifier: ^14.1.1 + version: 14.1.1(debug@4.4.0) + https-browserify: + specifier: ^1.0.0 + version: 1.0.0 + mc-assets: + specifier: ^0.2.62 + version: 0.2.62 + minecraft-inventory-gui: + specifier: github:zardoy/minecraft-inventory-gui#next + version: https://codeload.github.com/zardoy/minecraft-inventory-gui/tar.gz/89c33d396f3fde4804c71f4be3c203ade1833b41(@types/react@18.3.18)(react@18.3.1) + mineflayer: + specifier: github:zardoy/mineflayer#gen-the-master + version: https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659(encoding@0.1.13) + mineflayer-mouse: + specifier: ^0.1.21 + version: 0.1.21 + npm-run-all: + specifier: ^4.1.5 + version: 4.1.5 + os-browserify: + specifier: ^0.3.0 + version: 0.3.0 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + path-exists-cli: + specifier: ^2.0.0 + version: 2.0.0 + process: + specifier: github:PrismarineJS/node-process + version: https://codeload.github.com/PrismarineJS/node-process/tar.gz/380d0b4f4c86f1b65b216c311bf00431f314e88e + renderer: + specifier: link:renderer + version: link:renderer + rimraf: + specifier: ^5.0.1 + version: 5.0.10 + storybook: + specifier: ^7.4.6 + version: 7.6.20(encoding@0.1.13) + stream-browserify: + specifier: ^3.0.0 + version: 3.0.0 + three: + specifier: 0.154.0 + version: 0.154.0 + timers-browserify: + specifier: ^2.0.12 + version: 2.0.12 + typescript: + specifier: 5.5.4 + version: 5.5.4 + vitest: + specifier: ^0.34.6 + version: 0.34.6(terser@5.39.0) + yaml: + specifier: ^2.3.2 + version: 2.7.0 + optionalDependencies: + cypress: + specifier: ^10.11.0 + version: 10.11.0 + cypress-plugin-snapshots: + specifier: ^1.4.4 + version: 1.4.4(cypress@10.11.0)(debug@4.4.0) + sharp: + specifier: ^0.33.5 + version: 0.33.5 + systeminformation: + specifier: ^5.21.22 + version: 5.25.11 + + renderer: + dependencies: + '@tweenjs/tween.js': + specifier: ^20.0.3 + version: 20.0.3 + assert: + specifier: ^2.0.0 + version: 2.1.0 + buffer: + specifier: ^6.0.3 + version: 6.0.3 + filesize: + specifier: ^10.0.12 + version: 10.1.6 + fs-extra: + specifier: ^11.0.0 + version: 11.3.0 + lil-gui: + specifier: ^0.18.2 + version: 0.18.2 + minecraft-wrap: + specifier: ^1.3.0 + version: 1.6.0(encoding@0.1.13) + minecrafthawkeye: + specifier: ^1.3.6 + version: 1.3.9 + prismarine-block: + specifier: github:zardoy/prismarine-block#next-era + version: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-chunk: + specifier: github:zardoy/prismarine-chunk#master + version: https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f(minecraft-data@3.98.0) + prismarine-schematic: + specifier: ^1.2.0 + version: 1.2.3 + process: + specifier: ^0.11.10 + version: 0.11.10 + renderer: + specifier: link:./ + version: 'link:' + socket.io: + specifier: ^4.0.0 + version: 4.8.1 + socket.io-client: + specifier: ^4.0.0 + version: 4.8.1 + three-stdlib: + specifier: ^2.26.11 + version: 2.35.14(three@0.154.0) + three.meshline: + specifier: ^1.3.0 + version: 1.4.0 + tsx: + specifier: ^4.7.0 + version: 4.19.3 + vec3: + specifier: 0.1.10 + version: 0.1.10 + devDependencies: + live-server: + specifier: ^1.2.2 + version: 1.2.2 + optionalDependencies: + canvas: + specifier: ^2.11.2 + version: 2.11.2(encoding@0.1.13) + node-canvas-webgl: + specifier: ^0.3.0 + version: 0.3.0(encoding@0.1.13) + + renderer/viewer/sign-renderer: + dependencies: + vite: + specifier: ^4.4.9 + version: 4.5.9(@types/node@22.13.9)(terser@5.39.0) + +packages: + + '@ampproject/remapping@2.3.0': + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} + + '@apideck/better-ajv-errors@0.3.6': + resolution: {integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==} + engines: {node: '>=10'} + peerDependencies: + ajv: '>=8' + + '@aw-web-design/x-default-browser@1.4.126': + resolution: {integrity: sha512-Xk1sIhyNC/esHGGVjL/niHLowM0csl/kFO5uawBy4IrWwy0o1G8LGt3jP6nmWGz+USxeeqbihAmp/oVZju6wug==} + hasBin: true + + '@azure/msal-common@14.16.0': + resolution: {integrity: sha512-1KOZj9IpcDSwpNiQNjt0jDYZpQvNZay7QAEi/5DLubay40iGYtLzya/jbjRPLyOTZhEKyL1MzPuw2HqBCjceYA==} + engines: {node: '>=0.8.0'} + + '@azure/msal-node@2.16.2': + resolution: {integrity: sha512-An7l1hEr0w1HMMh1LU+rtDtqL7/jw74ORlc9Wnh06v7TU/xpG39/Zdr1ZJu3QpjUfKJ+E0/OXMW8DRSWTlh7qQ==} + engines: {node: '>=16'} + + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + + '@babel/compat-data@7.26.8': + resolution: {integrity: sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==} + engines: {node: '>=6.9.0'} + + '@babel/core@7.26.9': + resolution: {integrity: sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.26.9': + resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} + engines: {node: '>=6.9.0'} + + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-create-class-features-plugin@7.26.9': + resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-create-regexp-features-plugin@7.26.3': + resolution: {integrity: sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-define-polyfill-provider@0.6.3': + resolution: {integrity: sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-remap-async-to-generator@7.25.9': + resolution: {integrity: sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-wrap-function@7.25.9': + resolution: {integrity: sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==} + engines: {node: '>=6.9.0'} + + '@babel/helpers@7.26.9': + resolution: {integrity: sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.26.9': + resolution: {integrity: sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9': + resolution: {integrity: sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9': + resolution: {integrity: sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9': + resolution: {integrity: sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9': + resolution: {integrity: sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.13.0 + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9': + resolution: {integrity: sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-flow@7.26.0': + resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-assertions@7.26.0': + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-import-attributes@7.26.0': + resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-typescript@7.25.9': + resolution: {integrity: sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6': + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-arrow-functions@7.25.9': + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-generator-functions@7.26.8': + resolution: {integrity: sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-async-to-generator@7.25.9': + resolution: {integrity: sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoped-functions@7.26.5': + resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-block-scoping@7.25.9': + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-properties@7.25.9': + resolution: {integrity: sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-class-static-block@7.26.0': + resolution: {integrity: sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.12.0 + + '@babel/plugin-transform-classes@7.25.9': + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-computed-properties@7.25.9': + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-destructuring@7.25.9': + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-dotall-regex@7.25.9': + resolution: {integrity: sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-keys@7.25.9': + resolution: {integrity: sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-dynamic-import@7.25.9': + resolution: {integrity: sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-exponentiation-operator@7.26.3': + resolution: {integrity: sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-export-namespace-from@7.25.9': + resolution: {integrity: sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-flow-strip-types@7.26.5': + resolution: {integrity: sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-for-of@7.26.9': + resolution: {integrity: sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-json-strings@7.25.9': + resolution: {integrity: sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-logical-assignment-operators@7.25.9': + resolution: {integrity: sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-member-expression-literals@7.25.9': + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-amd@7.25.9': + resolution: {integrity: sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-commonjs@7.26.3': + resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-systemjs@7.25.9': + resolution: {integrity: sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-modules-umd@7.25.9': + resolution: {integrity: sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9': + resolution: {integrity: sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-new-target@7.25.9': + resolution: {integrity: sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6': + resolution: {integrity: sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-numeric-separator@7.25.9': + resolution: {integrity: sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-rest-spread@7.25.9': + resolution: {integrity: sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-object-super@7.25.9': + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-catch-binding@7.25.9': + resolution: {integrity: sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-optional-chaining@7.25.9': + resolution: {integrity: sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-parameters@7.25.9': + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-methods@7.25.9': + resolution: {integrity: sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-private-property-in-object@7.25.9': + resolution: {integrity: sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-property-literals@7.25.9': + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-self@7.25.9': + resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-react-jsx-source@7.25.9': + resolution: {integrity: sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regenerator@7.25.9': + resolution: {integrity: sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-regexp-modifiers@7.26.0': + resolution: {integrity: sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/plugin-transform-reserved-words@7.25.9': + resolution: {integrity: sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-shorthand-properties@7.25.9': + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-spread@7.25.9': + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-sticky-regex@7.25.9': + resolution: {integrity: sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-template-literals@7.26.8': + resolution: {integrity: sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typeof-symbol@7.26.7': + resolution: {integrity: sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-typescript@7.26.8': + resolution: {integrity: sha512-bME5J9AC8ChwA7aEPJ6zym3w7aObZULHhbNLU0bKUhKsAkylkzUdq+0kdymh9rzi8nlNFl2bmldFBCKNJBUpuw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-escapes@7.25.9': + resolution: {integrity: sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-property-regex@7.25.9': + resolution: {integrity: sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-regex@7.25.9': + resolution: {integrity: sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/plugin-transform-unicode-sets-regex@7.25.9': + resolution: {integrity: sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + + '@babel/preset-env@7.26.9': + resolution: {integrity: sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-flow@7.25.9': + resolution: {integrity: sha512-EASHsAhE+SSlEzJ4bzfusnXSHiU+JfAYzj+jbw2vgQKgq5HrUr8qs+vgtiEL5dOH6sEweI+PNt2D7AqrDSHyqQ==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/preset-modules@0.1.6-no-external-plugins': + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + peerDependencies: + '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 + + '@babel/preset-typescript@7.26.0': + resolution: {integrity: sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/register@7.25.9': + resolution: {integrity: sha512-8D43jXtGsYmEeDvm4MWHYUpWf8iiXgWYx3fW7E7Wb7Oe6FWqJPl5K6TuFW0dOwNZzEE5rjlaSJYH9JjrUKJszA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + + '@babel/runtime@7.26.9': + resolution: {integrity: sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==} + engines: {node: '>=6.9.0'} + + '@babel/template@7.26.9': + resolution: {integrity: sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.26.9': + resolution: {integrity: sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.26.9': + resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==} + engines: {node: '>=6.9.0'} + + '@base2/pretty-print-object@1.0.1': + resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} + + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + + '@cypress/request@2.88.12': + resolution: {integrity: sha512-tOn+0mDZxASFM+cuAP9szGUGPI1HwWVSvdzm7V4cCsPdFTx6qMj29CwaQmRAMIEhORIUBFBsYROYJcveK4uOjA==} + engines: {node: '>= 6'} + + '@cypress/xvfb@1.2.4': + resolution: {integrity: sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==} + + '@dimaka/interface@0.0.3-alpha.0': + resolution: {integrity: sha512-BzRUaLk+jhC1uvcix4SXRGhw7k39pldlvwtRT0NGFsuQt1uMV9vOhGMzm3rLorVXQ7vAmqcZk3Hy8oYlXKQoDw==} + peerDependencies: + react: ^18.2.0 + + '@discoveryjs/json-ext@0.5.7': + resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} + engines: {node: '>=10.0.0'} + + '@emnapi/runtime@1.3.1': + resolution: {integrity: sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==} + + '@emotion/babel-plugin@11.13.5': + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + + '@emotion/cache@11.14.0': + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} + + '@emotion/css@11.5.0': + resolution: {integrity: sha512-mqjz/3aqR9rp40M+pvwdKYWxlQK4Nj3cnNjo3Tx6SM14dSsEn7q/4W2/I7PlgG+mb27iITHugXuBIHH/QwUBVQ==} + peerDependencies: + '@babel/core': ^7.0.0 + peerDependenciesMeta: + '@babel/core': + optional: true + + '@emotion/hash@0.9.2': + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + + '@emotion/memoize@0.9.0': + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + + '@emotion/react@11.14.0': + resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@emotion/serialize@1.3.3': + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + + '@emotion/sheet@1.4.0': + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + + '@emotion/unitless@0.10.0': + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0': + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + peerDependencies: + react: ^18.2.0 + + '@emotion/utils@1.4.2': + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + + '@emotion/weak-memoize@0.4.0': + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + + '@esbuild/aix-ppc64@0.19.12': + resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/aix-ppc64@0.25.0': + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.18.20': + resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.19.12': + resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm64@0.25.0': + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.18.20': + resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.19.12': + resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-arm@0.25.0': + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.18.20': + resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.19.12': + resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/android-x64@0.25.0': + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.18.20': + resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.19.12': + resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-arm64@0.25.0': + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.18.20': + resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.19.12': + resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.0': + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.18.20': + resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.19.12': + resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-arm64@0.25.0': + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.18.20': + resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.19.12': + resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.0': + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.18.20': + resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.19.12': + resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm64@0.25.0': + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.18.20': + resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.19.12': + resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-arm@0.25.0': + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.18.20': + resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.19.12': + resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-ia32@0.25.0': + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.18.20': + resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.19.12': + resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-loong64@0.25.0': + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.18.20': + resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.19.12': + resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-mips64el@0.25.0': + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.18.20': + resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.19.12': + resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-ppc64@0.25.0': + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.18.20': + resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.19.12': + resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.0': + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.18.20': + resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.19.12': + resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-s390x@0.25.0': + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.18.20': + resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.19.12': + resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/linux-x64@0.25.0': + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.0': + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.18.20': + resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.19.12': + resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.0': + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.0': + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.18.20': + resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.19.12': + resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.0': + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.18.20': + resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.19.12': + resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/sunos-x64@0.25.0': + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.18.20': + resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.19.12': + resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-arm64@0.25.0': + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.18.20': + resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.19.12': + resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-ia32@0.25.0': + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.18.20': + resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.19.12': + resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@esbuild/win32-x64@0.25.0': + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@fal-works/esbuild-plugin-global-externals@2.1.2': + resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} + + '@fastify/busboy@2.1.1': + resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} + engines: {node: '>=14'} + + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: ^18.2.0 + react-dom: '>=16.8.0' + + '@floating-ui/react@0.26.28': + resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} + peerDependencies: + react: ^18.2.0 + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + + '@gar/promisify@1.1.3': + resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} + + '@hapi/hoek@9.3.0': + resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} + + '@hapi/topo@5.1.0': + resolution: {integrity: sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@img/sharp-darwin-arm64@0.33.5': + resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [darwin] + + '@img/sharp-darwin-x64@0.33.5': + resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-darwin-arm64@1.0.4': + resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} + cpu: [arm64] + os: [darwin] + + '@img/sharp-libvips-darwin-x64@1.0.4': + resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} + cpu: [x64] + os: [darwin] + + '@img/sharp-libvips-linux-arm64@1.0.4': + resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linux-arm@1.0.5': + resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} + cpu: [arm] + os: [linux] + + '@img/sharp-libvips-linux-s390x@1.0.4': + resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} + cpu: [s390x] + os: [linux] + + '@img/sharp-libvips-linux-x64@1.0.4': + resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} + cpu: [x64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} + cpu: [arm64] + os: [linux] + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} + cpu: [x64] + os: [linux] + + '@img/sharp-linux-arm64@0.33.5': + resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linux-arm@0.33.5': + resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm] + os: [linux] + + '@img/sharp-linux-s390x@0.33.5': + resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [s390x] + os: [linux] + + '@img/sharp-linux-x64@0.33.5': + resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-linuxmusl-arm64@0.33.5': + resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [arm64] + os: [linux] + + '@img/sharp-linuxmusl-x64@0.33.5': + resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [linux] + + '@img/sharp-wasm32@0.33.5': + resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [wasm32] + + '@img/sharp-win32-ia32@0.33.5': + resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [ia32] + os: [win32] + + '@img/sharp-win32-x64@0.33.5': + resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + cpu: [x64] + os: [win32] + + '@isaacs/cliui@8.0.2': + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + + '@istanbuljs/load-nyc-config@1.1.0': + resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} + engines: {node: '>=8'} + + '@istanbuljs/schema@0.1.3': + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jimp/bmp@0.10.3': + resolution: {integrity: sha512-keMOc5woiDmONXsB/6aXLR4Z5Q+v8lFq3EY2rcj2FmstbDMhRuGbmcBxlEgOqfRjwvtf/wOtJ3Of37oAWtVfLg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/core@0.10.3': + resolution: {integrity: sha512-Gd5IpL3U2bFIO57Fh/OA3HCpWm4uW/pU01E75rI03BXfTdz3T+J7TwvyG1XaqsQ7/DSlS99GXtLQPlfFIe28UA==} + + '@jimp/custom@0.10.3': + resolution: {integrity: sha512-nZmSI+jwTi5IRyNLbKSXQovoeqsw+D0Jn0SxW08wYQvdkiWA8bTlDQFgQ7HVwCAKBm8oKkDB/ZEo9qvHJ+1gAQ==} + + '@jimp/gif@0.10.3': + resolution: {integrity: sha512-vjlRodSfz1CrUvvrnUuD/DsLK1GHB/yDZXHthVdZu23zYJIW7/WrIiD1IgQ5wOMV7NocfrvPn2iqUfBP81/WWA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/jpeg@0.10.3': + resolution: {integrity: sha512-AAANwgUZOt6f6P7LZxY9lyJ9xclqutYJlsxt3JbriXUGJgrrFAIkcKcqv1nObgmQASSAQKYaMV9KdHjMlWFKlQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-blit@0.10.3': + resolution: {integrity: sha512-5zlKlCfx4JWw9qUVC7GI4DzXyxDWyFvgZLaoGFoT00mlXlN75SarlDwc9iZ/2e2kp4bJWxz3cGgG4G/WXrbg3Q==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-blur@0.10.3': + resolution: {integrity: sha512-cTOK3rjh1Yjh23jSfA6EHCHjsPJDEGLC8K2y9gM7dnTUK1y9NNmkFS23uHpyjgsWFIoH9oRh2SpEs3INjCpZhQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-circle@0.10.3': + resolution: {integrity: sha512-51GAPIVelqAcfuUpaM5JWJ0iWl4vEjNXB7p4P7SX5udugK5bxXUjO6KA2qgWmdpHuCKtoNgkzWU9fNSuYp7tCA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-color@0.10.3': + resolution: {integrity: sha512-RgeHUElmlTH7vpI4WyQrz6u59spiKfVQbsG/XUzfWGamFSixa24ZDwX/yV/Ts+eNaz7pZeIuv533qmKPvw2ujg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-contain@0.10.3': + resolution: {integrity: sha512-bYJKW9dqzcB0Ihc6u7jSyKa3juStzbLs2LFr6fu8TzA2WkMS/R8h+ddkiO36+F9ILTWHP0CIA3HFe5OdOGcigw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + + '@jimp/plugin-cover@0.10.3': + resolution: {integrity: sha512-pOxu0cM0BRPzdV468n4dMocJXoMbTnARDY/EpC3ZW15SpMuc/dr1KhWQHgoQX5kVW1Wt8zgqREAJJCQ5KuPKDA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + '@jimp/plugin-scale': '>=0.3.5' + + '@jimp/plugin-crop@0.10.3': + resolution: {integrity: sha512-nB7HgOjjl9PgdHr076xZ3Sr6qHYzeBYBs9qvs3tfEEUeYMNnvzgCCGtUl6eMakazZFCMk3mhKmcB9zQuHFOvkg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-displace@0.10.3': + resolution: {integrity: sha512-8t3fVKCH5IVqI4lewe4lFFjpxxr69SQCz5/tlpDLQZsrNScNJivHdQ09zljTrVTCSgeCqQJIKgH2Q7Sk/pAZ0w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-dither@0.10.3': + resolution: {integrity: sha512-JCX/oNSnEg1kGQ8ffZ66bEgQOLCY3Rn+lrd6v1jjLy/mn9YVZTMsxLtGCXpiCDC2wG/KTmi4862ysmP9do9dAQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-fisheye@0.10.3': + resolution: {integrity: sha512-RRZb1wqe+xdocGcFtj2xHU7sF7xmEZmIa6BmrfSchjyA2b32TGPWKnP3qyj7p6LWEsXn+19hRYbjfyzyebPElQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-flip@0.10.3': + resolution: {integrity: sha512-0epbi8XEzp0wmSjoW9IB0iMu0yNF17aZOxLdURCN3Zr+8nWPs5VNIMqSVa1Y62GSyiMDpVpKF/ITiXre+EqrPg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-rotate': '>=0.3.5' + + '@jimp/plugin-gaussian@0.10.3': + resolution: {integrity: sha512-25eHlFbHUDnMMGpgRBBeQ2AMI4wsqCg46sue0KklI+c2BaZ+dGXmJA5uT8RTOrt64/K9Wz5E+2n7eBnny4dfpQ==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-invert@0.10.3': + resolution: {integrity: sha512-effYSApWY/FbtlzqsKXlTLkgloKUiHBKjkQnqh5RL4oQxh/33j6aX+HFdDyQKtsXb8CMd4xd7wyiD2YYabTa0g==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-mask@0.10.3': + resolution: {integrity: sha512-twrg8q8TIhM9Z6Jcu9/5f+OCAPaECb0eKrrbbIajJqJ3bCUlj5zbfgIhiQIzjPJ6KjpnFPSqHQfHkU1Vvk/nVw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-normalize@0.10.3': + resolution: {integrity: sha512-xkb5eZI/mMlbwKkDN79+1/t/+DBo8bBXZUMsT4gkFgMRKNRZ6NQPxlv1d3QpRzlocsl6UMxrHnhgnXdLAcgrXw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-print@0.10.3': + resolution: {integrity: sha512-wjRiI6yjXsAgMe6kVjizP+RgleUCLkH256dskjoNvJzmzbEfO7xQw9g6M02VET+emnbY0CO83IkrGm2q43VRyg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + + '@jimp/plugin-resize@0.10.3': + resolution: {integrity: sha512-rf8YmEB1d7Sg+g4LpqF0Mp+dfXfb6JFJkwlAIWPUOR7lGsPWALavEwTW91c0etEdnp0+JB9AFpy6zqq7Lwkq6w==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/plugin-rotate@0.10.3': + resolution: {integrity: sha512-YXLlRjm18fkW9MOHUaVAxWjvgZM851ofOipytz5FyKp4KZWDLk+dZK1JNmVmK7MyVmAzZ5jsgSLhIgj+GgN0Eg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blit': '>=0.3.5' + '@jimp/plugin-crop': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + + '@jimp/plugin-scale@0.10.3': + resolution: {integrity: sha512-5DXD7x7WVcX1gUgnlFXQa8F+Q3ThRYwJm+aesgrYvDOY+xzRoRSdQvhmdd4JEEue3lyX44DvBSgCIHPtGcEPaw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + + '@jimp/plugin-shadow@0.10.3': + resolution: {integrity: sha512-/nkFXpt2zVcdP4ETdkAUL0fSzyrC5ZFxdcphbYBodqD7fXNqChS/Un1eD4xCXWEpW8cnG9dixZgQgStjywH0Mg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-blur': '>=0.3.5' + '@jimp/plugin-resize': '>=0.3.5' + + '@jimp/plugin-threshold@0.10.3': + resolution: {integrity: sha512-Dzh0Yq2wXP2SOnxcbbiyA4LJ2luwrdf1MghNIt9H+NX7B+IWw/N8qA2GuSm9n4BPGSLluuhdAWJqHcTiREriVA==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + '@jimp/plugin-color': '>=0.8.0' + '@jimp/plugin-resize': '>=0.8.0' + + '@jimp/plugins@0.10.3': + resolution: {integrity: sha512-jTT3/7hOScf0EIKiAXmxwayHhryhc1wWuIe3FrchjDjr9wgIGNN2a7XwCgPl3fML17DXK1x8EzDneCdh261bkw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/png@0.10.3': + resolution: {integrity: sha512-YKqk/dkl+nGZxSYIDQrqhmaP8tC3IK8H7dFPnnzFVvbhDnyYunqBZZO3SaZUKTichClRw8k/CjBhbc+hifSGWg==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/tiff@0.10.3': + resolution: {integrity: sha512-7EsJzZ5Y/EtinkBGuwX3Bi4S+zgbKouxjt9c82VJTRJOQgLWsE/RHqcyRCOQBhHAZ9QexYmDz34medfLKdoX0g==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/types@0.10.3': + resolution: {integrity: sha512-XGmBakiHZqseSWr/puGN+CHzx0IKBSpsKlmEmsNV96HKDiP6eu8NSnwdGCEq2mmIHe0JNcg1hqg59hpwtQ7Tiw==} + peerDependencies: + '@jimp/custom': '>=0.3.5' + + '@jimp/utils@0.10.3': + resolution: {integrity: sha512-VcSlQhkil4ReYmg1KkN+WqHyYfZ2XfZxDsKAHSfST1GEz/RQHxKZbX+KhFKtKflnL0F4e6DlNQj3vznMNXCR2w==} + + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0': + resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} + peerDependencies: + typescript: '>= 4.3.x' + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} + engines: {node: '>=6.0.0'} + + '@jridgewell/resolve-uri@3.1.2': + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + + '@jridgewell/set-array@1.2.1': + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} + engines: {node: '>=6.0.0'} + + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + + '@jridgewell/sourcemap-codec@1.5.0': + resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} + + '@jridgewell/trace-mapping@0.3.25': + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} + + '@jsonjoy.com/base64@1.1.2': + resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/json-pack@1.2.0': + resolution: {integrity: sha512-io1zEbbYcElht3tdlqEOFxZ0dMTYrHz9iMf0gqn1pPjZFTCgM5R4R5IMA20Chb2UPYYsxjzs8CgZ7Nb5n2K2rA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jsonjoy.com/util@1.5.0': + resolution: {integrity: sha512-ojoNsrIuPI9g6o8UxhraZQSyF2ByJanAY4cTFbc8Mf2AXEF4aQRGY1dJxyJpuyav8r9FGflEt/Ff3u5Nt6YMPA==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + '@jspm/core@2.1.0': + resolution: {integrity: sha512-3sRl+pkyFY/kLmHl0cgHiFp2xEqErA8N3ECjMs7serSUBmoJ70lBa0PG5t0IM6WJgdZNyyI0R8YFfi5wM8+mzg==} + + '@juggle/resize-observer@3.3.1': + resolution: {integrity: sha512-zMM9Ds+SawiUkakS7y94Ymqx+S0ORzpG3frZirN3l+UlXUmSUR7hF4wxCVqW+ei94JzV5kt0uXBcoOEAuiydrw==} + + '@juggle/resize-observer@3.4.0': + resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} + + '@mapbox/node-pre-gyp@1.0.11': + resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==} + hasBin: true + + '@mdx-js/react@2.3.0': + resolution: {integrity: sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g==} + peerDependencies: + react: ^18.2.0 + + '@module-federation/error-codes@0.11.2': + resolution: {integrity: sha512-ik1Qnn0I+WyEdprTck9WGlH41vGsVdUg8cfO+ZM02qOb2cZm5Vu3SlxGAobj6g7uAj0g8yINnd7h7Dci40BxQA==} + + '@module-federation/runtime-core@0.11.2': + resolution: {integrity: sha512-dia5kKybi6MFU0s5PgglJwN27k7n9Sf69Cy5xZ4BWaP0qlaXTsxHKO0PECHNt2Pt8jDdyU29sQ4DwAQfxpnXJQ==} + + '@module-federation/runtime-tools@0.11.2': + resolution: {integrity: sha512-4MJTGAxVq6vxQRkTtTlH7Mm9AVqgn0X9kdu+7RsL7T/qU+jeYsbrntN2CWG3GVVA8r5JddXyTI1iJ0VXQZLV1w==} + + '@module-federation/runtime@0.11.2': + resolution: {integrity: sha512-Ya9u/L6z2LvhgpqxuKCB7LcigIIRf1BbaxAZIH7mzbq/A7rZtTP7v+73E433jvgiAlbAfPSZkeoYGele6hfRwA==} + + '@module-federation/sdk@0.11.2': + resolution: {integrity: sha512-SBFe5xOamluT900J4AGBx+2/kCH/JbfqXoUwPSAC6PRzb8Y7LB0posnOGzmqYsLZXT37vp3d6AmJDsVoajDqxw==} + + '@module-federation/webpack-bundler-runtime@0.11.2': + resolution: {integrity: sha512-WdwIE6QF+MKs/PdVu0cKPETF743JB9PZ62/qf7Uo3gU4fjsUMc37RnbJZ/qB60EaHHfjwp1v6NnhZw1r4eVsnw==} + + '@monaco-editor/loader@1.5.0': + resolution: {integrity: sha512-hKoGSM+7aAc7eRTRjpqAZucPmoNOC4UUbknb/VNoTkEIkCPhqV8LfbsgM1webRM7S/z21eHEx9Fkwx8Z/C/+Xw==} + + '@monaco-editor/react@4.7.0': + resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==} + peerDependencies: + monaco-editor: '>= 0.25.0 < 1' + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + '@msgpack/msgpack@2.8.0': + resolution: {integrity: sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ==} + engines: {node: '>= 10'} + + '@ndelangen/get-tarball@3.0.9': + resolution: {integrity: sha512-9JKTEik4vq+yGosHYhZ1tiH/3WpUS0Nh0kej4Agndhox8pAdWhEx5knFVRcb/ya9knCRCs1rPxNrSXTDdfVqpA==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@npmcli/fs@2.1.2': + resolution: {integrity: sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + '@npmcli/move-file@2.0.1': + resolution: {integrity: sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This functionality has been moved to @npmcli/fs + + '@nxg-org/mineflayer-auto-jump@0.7.18': + resolution: {integrity: sha512-O/nRCyWrRwFpcCXXSJhmt844c4a8KhkK4OJPAOKSc63tExIIQU/sipHgjgpy0B+gVDjSmLMPYXe71CN0W327Wg==} + + '@nxg-org/mineflayer-physics-util@1.8.10': + resolution: {integrity: sha512-JGIJEPauVmqoBFQ0I8ZtbaYo3mKn2N00srnDrWkCEt1qozyZWie4sYR0khjjwYubFCljMoWtoEA0+DLsHZLNFg==} + + '@nxg-org/mineflayer-tracker@1.3.0': + resolution: {integrity: sha512-HINrv51l2aZ/lDrcL77gSWDvf3Z3trd6kdiifXitCMDNdBT0FpWnXq9bi5Fr7yPpFGQ3fqGUIq5DQYYY84E9IA==} + + '@nxg-org/mineflayer-trajectories@1.2.0': + resolution: {integrity: sha512-yTDHn96fyWLKwdHdOGIrnt8nss4SJmxXwJn101o7aNI4sgdnUmwaX4FoNbmrEa9eZn6IwxaXIxDf+fJmKj9RIw==} + + '@nxg-org/mineflayer-util-plugin@1.8.4': + resolution: {integrity: sha512-hPaCZxU0Aq+gUSi/l6x7n32hUG6bnDugAMoQXD2dFE/gyNkmRSpmgH5+Y6G41w3H8P3Nl++upGCOlaxvZ7RuoA==} + + '@pkgjs/parseargs@0.11.0': + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + + '@popperjs/core@2.11.8': + resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + + '@radix-ui/number@1.0.1': + resolution: {integrity: sha512-T5gIdVO2mmPW3NNhjNgEP3cqMXjXL9UbO0BzWcXfvdBs+BohbQxvd/K5hSVKmn9/lbTdsQVKbUcP5WLCwvUbBg==} + + '@radix-ui/primitive@1.0.1': + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} + + '@radix-ui/primitive@1.1.1': + resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + + '@radix-ui/react-arrow@1.0.3': + resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.0.3': + resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-collection@1.1.2': + resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-compose-refs@1.0.1': + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.0.1': + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-direction@1.0.1': + resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-direction@1.1.0': + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-dismissable-layer@1.0.4': + resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-focus-guards@1.0.1': + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-focus-scope@1.0.3': + resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-id@1.0.1': + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-popper@1.1.2': + resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.0.3': + resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@1.0.3': + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.0.2': + resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.2': + resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@1.2.2': + resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-separator@1.1.2': + resolution: {integrity: sha512-oZfHcaAp2Y6KFBX6I5P1u7CQoy4lheCGiYj+pGFrHy8E/VNRb5E39TkTr3JrV520csPBTZjkuKFdEsjS5EUNKQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.0.2': + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.1.2': + resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-toggle-group@1.1.2': + resolution: {integrity: sha512-JBm6s6aVG/nwuY5eadhU2zDi/IwYS0sDM5ZWb4nymv/hn3hZdkw+gENn0LP4iY1yCd7+bgJaCwueMYJIU3vk4A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toggle@1.1.2': + resolution: {integrity: sha512-lntKchNWx3aCHuWKiDY+8WudiegQvBpDRAYL8dKLRvKEH8VOpl0XX6SSU/bUBqIRJbcTy4+MW06Wv8vgp10rzQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-toolbar@1.1.2': + resolution: {integrity: sha512-wT20eQ7ScFk+kBMDmHp+lMk18cgxhu35b2Bn5deUcPxiVwfn5vuZgi7NGcHu8ocdkinahmp4FaSZysKDyRVPWQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.0.1': + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.0.1': + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.0.3': + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.0.1': + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.0.1': + resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.0.1': + resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.0.1': + resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.0.3': + resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^18.2.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.0.1': + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + + '@react-oauth/google@0.12.1': + resolution: {integrity: sha512-qagsy22t+7UdkYAiT5ZhfM4StXi9PPNvw0zuwNmabrWyMKddczMtBIOARflbaIj+wHiQjnMAsZmzsUYuXeyoSg==} + peerDependencies: + react: ^18.2.0 + react-dom: '>=16.8.0' + + '@rollup/plugin-babel@5.3.1': + resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} + engines: {node: '>= 10.0.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@types/babel__core': ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + '@types/babel__core': + optional: true + + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@2.4.2': + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@3.1.0': + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0 + + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.34.9': + resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.34.9': + resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.34.9': + resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.34.9': + resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.34.9': + resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.34.9': + resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.34.9': + resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.34.9': + resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.34.9': + resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.34.9': + resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.34.9': + resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.34.9': + resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.34.9': + resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.34.9': + resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.34.9': + resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.34.9': + resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.34.9': + resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.34.9': + resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.34.9': + resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==} + cpu: [x64] + os: [win32] + + '@rsbuild/core@1.3.5': + resolution: {integrity: sha512-Fn6nJ4YvLO2UtFcoSPxgJoiUdS0Iix7X1BsyZ+DCj3SGpVCxp3Td9x58F5uhcRraMZFPB91wvcS/OabYwT3N2w==} + engines: {node: '>=16.7.0'} + hasBin: true + + '@rsbuild/plugin-node-polyfill@1.3.0': + resolution: {integrity: sha512-KvckyUg9wq3F1Iv/y4+mlcnO/E7vDklvMY7kF6CxnUYImroQVw/EDS0zDezkPvcm7aKTH5b0Jaa0iIcTNFzhVw==} + peerDependencies: + '@rsbuild/core': 1.x + peerDependenciesMeta: + '@rsbuild/core': + optional: true + + '@rsbuild/plugin-react@1.2.0': + resolution: {integrity: sha512-TXd0cvcLPF7OrO215vlGSyRXD6Fc3KQWhFuXFKOtRYp+C1Vc9oeW0GopUIStv2pI2/xtv2XX8GOAdJsnsc6lkA==} + peerDependencies: + '@rsbuild/core': 1.x + + '@rsbuild/plugin-type-check@1.2.1': + resolution: {integrity: sha512-PtbjeMqDQy8IiPDTuaj8ZmvR42b0AsRq6RUF6wxa8dDsOzD0Dl1GcvemVGCto+/Dh8frLUmnlWF+T8riBw5rtA==} + peerDependencies: + '@rsbuild/core': 1.x + peerDependenciesMeta: + '@rsbuild/core': + optional: true + + '@rsbuild/plugin-typed-css-modules@1.0.2': + resolution: {integrity: sha512-QX376pBXWeBrZBvYLP2HGGrHiWA5O0SDHwRoBNto5BqYDXhi6y+Eol2Hb/cY+h2ARKZVanMfUiJRABULOJ/FCQ==} + peerDependencies: + '@rsbuild/core': 1.x || ^1.0.1-beta.0 + peerDependenciesMeta: + '@rsbuild/core': + optional: true + + '@rspack/binding-darwin-arm64@1.3.3': + resolution: {integrity: sha512-vbzEdpRCZl5+HXWsVjzSDqB9ZVIlqldV+udHp4YDD8qiwdQznVaBZke0eMzZ7kaInqRPsZ+UHQuVk6JaH/JkMQ==} + cpu: [arm64] + os: [darwin] + + '@rspack/binding-darwin-x64@1.3.3': + resolution: {integrity: sha512-OXtY2s4nlYtUXkeJt8TQKKNIcN7PI8yDq0nqI75OfJoS4u1ZmRXJ8IMeSALLo8I+xD2RAF79tf7yhM/Y/AaiKQ==} + cpu: [x64] + os: [darwin] + + '@rspack/binding-linux-arm64-gnu@1.3.3': + resolution: {integrity: sha512-Lluq3RLYzyCMdXr/HyALKEPGsr+196x8Ccuy5AmIRosOdWuwtSiomSRH1Ka8REUFNHfYy5y9SzfmIZo/E0QEmg==} + cpu: [arm64] + os: [linux] + + '@rspack/binding-linux-arm64-musl@1.3.3': + resolution: {integrity: sha512-PIsicXWjOqzmoOutUqxpMNkCoKo+8/wxDyKxHFeu+5WIAxVFphe2d3H5qvEjc2MasWSdRmAVn9XiuIj2LIXFzA==} + cpu: [arm64] + os: [linux] + + '@rspack/binding-linux-x64-gnu@1.3.3': + resolution: {integrity: sha512-BtksK73ZFdny2T/wU1x0kxBF4ruYUUArZDyeGfpO+vd/1nNYqzzdhGvOksKmtdvsO38ETr2gZ9+XZyr1vpy9uQ==} + cpu: [x64] + os: [linux] + + '@rspack/binding-linux-x64-musl@1.3.3': + resolution: {integrity: sha512-jx86CxkTmyBz/eHDqZp1mCqBwY+UTEtaPlPoWFyGkJUR5ey6nQnxS+fhG34Rqz63chW+q/afwpGNGyALYdgc8g==} + cpu: [x64] + os: [linux] + + '@rspack/binding-win32-arm64-msvc@1.3.3': + resolution: {integrity: sha512-uXAdDzajFToVrH3fCNVDP/uKQ9i5FQjJc2aYxsnhS9Su/CZB+UQsOecbq6MnIN2s0B9GBKBG8QdQEtS3RtC6Hg==} + cpu: [arm64] + os: [win32] + + '@rspack/binding-win32-ia32-msvc@1.3.3': + resolution: {integrity: sha512-VBE6XsJ3IiAlozAywAIxAZ1Aqc2QVnEwBo0gP9998KkwL7wxB6Bg/OJnPbH3Q0ZaNWAQViC99rPC+5hSIdeSxw==} + cpu: [ia32] + os: [win32] + + '@rspack/binding-win32-x64-msvc@1.3.3': + resolution: {integrity: sha512-rOsNz4/DFgSENjEh0t9kFn89feuXK14/9wbmmFlT8VMpYOCcj4tKcAHjWg+Nzzj4FL+NSOC/81SrUF9J+C2R7w==} + cpu: [x64] + os: [win32] + + '@rspack/binding@1.3.3': + resolution: {integrity: sha512-zdwJ801tyC8k+Gu5RjNoc7bEtX0MgJzzVv9qpaMwcAUfUfwZgCzXPTqcGMDoNI+Z47Fw59/2fKCmgZhZn60AgA==} + + '@rspack/core@1.3.3': + resolution: {integrity: sha512-+mXVlFcYr0tWezZfJ/gR0fj8njRc7pzEMtTFa2NO5cfsNAKPF/SXm4rb55kfa63r0b3U3N7f2nKrJG9wyG7zMQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@rspack/tracing': ^1.x + '@swc/helpers': '>=0.5.1' + peerDependenciesMeta: + '@rspack/tracing': + optional: true + '@swc/helpers': + optional: true + + '@rspack/lite-tapable@1.0.1': + resolution: {integrity: sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==} + engines: {node: '>=16.0.0'} + + '@rspack/plugin-react-refresh@1.2.0': + resolution: {integrity: sha512-DTsbtggCfsiXE5QQtYMS8rKfEF8GIjwPDbgIT6Kg8BlAjpJY4jT5IisyhfIi7YOT3d5RIvu60iFB6Kr9sSMsnA==} + peerDependencies: + react-refresh: '>=0.10.0 <1.0.0' + webpack-hot-middleware: 2.x + peerDependenciesMeta: + webpack-hot-middleware: + optional: true + + '@rushstack/eslint-patch@1.10.5': + resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==} + + '@sideway/address@4.1.5': + resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==} + + '@sideway/formula@3.0.1': + resolution: {integrity: sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==} + + '@sideway/pinpoint@2.0.0': + resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} + + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@storybook/addon-actions@7.6.20': + resolution: {integrity: sha512-c/GkEQ2U9BC/Ew/IMdh+zvsh4N6y6n7Zsn2GIhJgcu9YEAa5aF2a9/pNgEGBMOABH959XE8DAOMERw/5qiLR8g==} + + '@storybook/addon-backgrounds@7.6.20': + resolution: {integrity: sha512-a7ukoaXT42vpKsMxkseIeO3GqL0Zst2IxpCTq5dSlXiADrcemSF/8/oNpNW9C4L6F1Zdt+WDtECXslEm017FvQ==} + + '@storybook/addon-controls@7.6.20': + resolution: {integrity: sha512-06ZT5Ce1sZW52B0s6XuokwjkKO9GqHlTUHvuflvd8wifxKlCmRvNUxjBvwh+ccGJ49ZS73LbMSLFgtmBEkCxbg==} + + '@storybook/addon-docs@7.6.20': + resolution: {integrity: sha512-XNfYRhbxH5JP7B9Lh4W06PtMefNXkfpV39Gaoih5HuqngV3eoSL4RikZYOMkvxRGQ738xc6axySU3+JKcP1OZg==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/addon-essentials@7.6.20': + resolution: {integrity: sha512-hCupSOiJDeOxJKZSgH0x5Mb2Xqii6mps21g5hpxac1XjhQtmGflShxi/xOHhK3sNqrbgTSbScfpUP3hUlZO/2Q==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/addon-highlight@7.6.20': + resolution: {integrity: sha512-7/x7xFdFyqCki5Dm3uBePldUs9l98/WxJ7rTHQuYqlX7kASwyN5iXPzuhmMRUhlMm/6G6xXtLabIpzwf1sFurA==} + + '@storybook/addon-links@7.6.20': + resolution: {integrity: sha512-iomSnBD90CA4MinesYiJkFX2kb3P1Psd/a1Y0ghlFEsHD4uMId9iT6sx2s16DYMja0SlPkrbWYnGukqaCjZpRw==} + peerDependencies: + react: ^18.2.0 + peerDependenciesMeta: + react: + optional: true + + '@storybook/addon-measure@7.6.20': + resolution: {integrity: sha512-i2Iq08bGfI7gZbG6Lb8uF/L287tnaGUR+2KFEmdBjH6+kgjWLiwfpanoPQpy4drm23ar0gUjX+L3Ri03VI5/Xg==} + + '@storybook/addon-outline@7.6.20': + resolution: {integrity: sha512-TdsIQZf/TcDsGoZ1XpO+9nBc4OKqcMIzY4SrI8Wj9dzyFLQ37s08gnZr9POci8AEv62NTUOVavsxcafllkzqDQ==} + + '@storybook/addon-toolbars@7.6.20': + resolution: {integrity: sha512-5Btg4i8ffWTDHsU72cqxC8nIv9N3E3ObJAc6k0llrmPBG/ybh3jxmRfs8fNm44LlEXaZ5qrK/petsXX3UbpIFg==} + + '@storybook/addon-viewport@7.6.20': + resolution: {integrity: sha512-i8mIw8BjLWAVHEQsOTE6UPuEGQvJDpsu1XZnOCkpfTfPMz73m+3td/PmLG7mMT2wPnLu9IZncKLCKTAZRbt/YQ==} + + '@storybook/blocks@7.6.20': + resolution: {integrity: sha512-xADKGEOJWkG0UD5jbY4mBXRlmj2C+CIupDL0/hpzvLvwobxBMFPKZIkcZIMvGvVnI/Ui+tJxQxLSuJ5QsPthUw==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/builder-manager@7.6.20': + resolution: {integrity: sha512-e2GzpjLaw6CM/XSmc4qJRzBF8GOoOyotyu3JrSPTYOt4RD8kjUsK4QlismQM1DQRu8i39aIexxmRbiJyD74xzQ==} + + '@storybook/builder-vite@7.6.20': + resolution: {integrity: sha512-q3vf8heE7EaVYTWlm768ewaJ9lh6v/KfoPPeHxXxzSstg4ByP9kg4E1mrfAo/l6broE9E9zo3/Q4gsM/G/rw8Q==} + peerDependencies: + '@preact/preset-vite': '*' + typescript: '>= 4.3.x' + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + vite-plugin-glimmerx: '*' + peerDependenciesMeta: + '@preact/preset-vite': + optional: true + typescript: + optional: true + vite-plugin-glimmerx: + optional: true + + '@storybook/channels@7.6.20': + resolution: {integrity: sha512-4hkgPSH6bJclB2OvLnkZOGZW1WptJs09mhQ6j6qLjgBZzL/ZdD6priWSd7iXrmPiN5TzUobkG4P4Dp7FjkiO7A==} + + '@storybook/cli@7.6.20': + resolution: {integrity: sha512-ZlP+BJyqg7HlnXf7ypjG2CKMI/KVOn03jFIiClItE/jQfgR6kRFgtjRU7uajh427HHfjv9DRiur8nBzuO7vapA==} + hasBin: true + + '@storybook/client-logger@7.6.20': + resolution: {integrity: sha512-NwG0VIJQCmKrSaN5GBDFyQgTAHLNishUPLW1NrzqTDNAhfZUoef64rPQlinbopa0H4OXmlB+QxbQIb3ubeXmSQ==} + + '@storybook/codemod@7.6.20': + resolution: {integrity: sha512-8vmSsksO4XukNw0TmqylPmk7PxnfNfE21YsxFa7mnEBmEKQcZCQsNil4ZgWfG0IzdhTfhglAN4r++Ew0WE+PYA==} + + '@storybook/components@7.6.20': + resolution: {integrity: sha512-0d8u4m558R+W5V+rseF/+e9JnMciADLXTpsILrG+TBhwECk0MctIWW18bkqkujdCm8kDZr5U2iM/5kS1Noy7Ug==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/core-client@7.6.20': + resolution: {integrity: sha512-upQuQQinLmlOPKcT8yqXNtwIucZ4E4qegYZXH5HXRWoLAL6GQtW7sUVSIuFogdki8OXRncr/dz8OA+5yQyYS4w==} + + '@storybook/core-common@7.6.20': + resolution: {integrity: sha512-8H1zPWPjcmeD4HbDm4FDD0WLsfAKGVr566IZ4hG+h3iWVW57II9JW9MLBtiR2LPSd8u7o0kw64lwRGmtCO1qAw==} + + '@storybook/core-events@7.6.20': + resolution: {integrity: sha512-tlVDuVbDiNkvPDFAu+0ou3xBBYbx9zUURQz4G9fAq0ScgBOs/bpzcRrFb4mLpemUViBAd47tfZKdH4MAX45KVQ==} + + '@storybook/core-server@7.6.20': + resolution: {integrity: sha512-qC5BdbqqwMLTdCwMKZ1Hbc3+3AaxHYWLiJaXL9e8s8nJw89xV8c8l30QpbJOGvcDmsgY6UTtXYaJ96OsTr7MrA==} + + '@storybook/csf-plugin@7.6.20': + resolution: {integrity: sha512-dzBzq0dN+8WLDp6NxYS4G7BCe8+vDeDRBRjHmM0xb0uJ6xgQViL8SDplYVSGnk3bXE/1WmtvyRzQyTffBnaj9Q==} + + '@storybook/csf-tools@7.6.20': + resolution: {integrity: sha512-rwcwzCsAYh/m/WYcxBiEtLpIW5OH1ingxNdF/rK9mtGWhJxXRDV8acPkFrF8rtFWIVKoOCXu5USJYmc3f2gdYQ==} + + '@storybook/csf@0.1.13': + resolution: {integrity: sha512-7xOOwCLGB3ebM87eemep89MYRFTko+D8qE7EdAAq74lgdqRR5cOUtYWJLjO2dLtP94nqoOdHJo6MdLLKzg412Q==} + + '@storybook/docs-mdx@0.1.0': + resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} + + '@storybook/docs-tools@7.6.20': + resolution: {integrity: sha512-Bw2CcCKQ5xGLQgtexQsI1EGT6y5epoFzOINi0FSTGJ9Wm738nRp5LH3dLk1GZLlywIXcYwOEThb2pM+pZeRQxQ==} + + '@storybook/global@5.0.0': + resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + + '@storybook/manager-api@7.6.20': + resolution: {integrity: sha512-gOB3m8hO3gBs9cBoN57T7jU0wNKDh+hi06gLcyd2awARQlAlywnLnr3s1WH5knih6Aq+OpvGBRVKkGLOkaouCQ==} + + '@storybook/manager@7.6.20': + resolution: {integrity: sha512-0Cf6WN0t7yEG2DR29tN5j+i7H/TH5EfPppg9h9/KiQSoFHk+6KLoy2p5do94acFU+Ro4+zzxvdCGbcYGKuArpg==} + + '@storybook/mdx2-csf@1.1.0': + resolution: {integrity: sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==} + + '@storybook/node-logger@7.6.20': + resolution: {integrity: sha512-l2i4qF1bscJkOplNffcRTsgQWYR7J51ewmizj5YrTM8BK6rslWT1RntgVJWB1RgPqvx6VsCz1gyP3yW1oKxvYw==} + + '@storybook/postinstall@7.6.20': + resolution: {integrity: sha512-AN4WPeNma2xC2/K/wP3I/GMbBUyeSGD3+86ZFFJFO1QmE/Zea6E+1aVlTd1iKHQUcNkZ9bZTrqkhPGVYx10pIw==} + + '@storybook/preview-api@7.6.20': + resolution: {integrity: sha512-3ic2m9LDZEPwZk02wIhNc3n3rNvbi7VDKn52hDXfAxnL5EYm7yDICAkaWcVaTfblru2zn0EDJt7ROpthscTW5w==} + + '@storybook/preview@7.6.20': + resolution: {integrity: sha512-cxYlZ5uKbCYMHoFpgleZqqGWEnqHrk5m5fT8bYSsDsdQ+X5wPcwI/V+v8dxYAdQcMphZVIlTjo6Dno9WG8qmVA==} + + '@storybook/react-dom-shim@7.6.20': + resolution: {integrity: sha512-SRvPDr9VWcS24ByQOVmbfZ655y5LvjXRlsF1I6Pr9YZybLfYbu3L5IicfEHT4A8lMdghzgbPFVQaJez46DTrkg==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/react-vite@7.6.20': + resolution: {integrity: sha512-uKuBFyGPZxpfR8vpDU/2OE9v7iTaxwL7ldd7k1swYd1rTSAPacTnEHSMl1R5AjUhkdI7gRmGN9q7qiVfK2XJCA==} + engines: {node: '>=16'} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + vite: ^3.0.0 || ^4.0.0 || ^5.0.0 + + '@storybook/react@7.6.20': + resolution: {integrity: sha512-i5tKNgUbTNwlqBWGwPveDhh9ktlS0wGtd97A1ZgKZc3vckLizunlAFc7PRC1O/CMq5PTyxbuUb4RvRD2jWKwDA==} + engines: {node: '>=16.0.0'} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@storybook/router@7.6.20': + resolution: {integrity: sha512-mCzsWe6GrH47Xb1++foL98Zdek7uM5GhaSlrI7blWVohGa0qIUYbfJngqR4ZsrXmJeeEvqowobh+jlxg3IJh+w==} + + '@storybook/telemetry@7.6.20': + resolution: {integrity: sha512-dmAOCWmOscYN6aMbhCMmszQjoycg7tUPRVy2kTaWg6qX10wtMrvEtBV29W4eMvqdsoRj5kcvoNbzRdYcWBUOHQ==} + + '@storybook/theming@7.6.20': + resolution: {integrity: sha512-iT1pXHkSkd35JsCte6Qbanmprx5flkqtSHC6Gi6Umqoxlg9IjiLPmpHbaIXzoC06DSW93hPj5Zbi1lPlTvRC7Q==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + + '@storybook/types@7.6.20': + resolution: {integrity: sha512-GncdY3x0LpbhmUAAJwXYtJDUQEwfF175gsjH0/fxPkxPoV7Sef9TM41jQLJW/5+6TnZoCZP/+aJZTJtq3ni23Q==} + + '@stylistic/eslint-plugin@2.13.0': + resolution: {integrity: sha512-RnO1SaiCFHn666wNz2QfZEFxvmiNRqhzaMXHXxXXKt+MEP7aajlPxUSMIQpKAaJfverpovEYqjBOXDq6dDcaOQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: '>=8.40.0' + + '@surma/rollup-plugin-off-main-thread@2.2.3': + resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} + + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@tootallnate/once@2.0.0': + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} + + '@tweenjs/tween.js@18.6.4': + resolution: {integrity: sha512-lB9lMjuqjtuJrx7/kOkqQBtllspPIN+96OvTCeJ2j5FEzinoAXTdAMFnDAQT1KVPRlnYfBrqxtqP66vDM40xxQ==} + + '@tweenjs/tween.js@20.0.3': + resolution: {integrity: sha512-SYUe1UgY5HM05EB4+0B4arq2IPjvyzKXoklXKxSYrc2IFxGm1cBrqg5XbiB5uwbs0xY5j+rj986NAJMM0KZaUw==} + + '@types/babel__core@7.20.5': + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + + '@types/babel__generator@7.6.8': + resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} + + '@types/babel__template@7.4.4': + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + + '@types/babel__traverse@7.20.6': + resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} + + '@types/body-parser@1.19.5': + resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} + + '@types/chai-subset@1.3.6': + resolution: {integrity: sha512-m8lERkkQj+uek18hXOZuec3W/fCRTrU4hrnXjH3qhHy96ytuPaPiWGgu7sJb7tZxZonO75vYAjCvpe/e4VUwRw==} + peerDependencies: + '@types/chai': <5.2.0 + + '@types/chai@4.3.20': + resolution: {integrity: sha512-/pC9HAB5I/xMlc5FP77qjCnI16ChlJfW0tGa0IUcFn38VJrTV6DeZ60NU5KZBtaOZqjdpwTWohz5HU1RrhiYxQ==} + + '@types/connect@3.4.38': + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + + '@types/cors@2.8.17': + resolution: {integrity: sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==} + + '@types/cross-spawn@6.0.6': + resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} + + '@types/debug@4.1.12': + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + + '@types/detect-port@1.3.5': + resolution: {integrity: sha512-Rf3/lB9WkDfIL9eEKaSYKc+1L/rNVYBjThk22JTqQw0YozXarX8YljFAz+HCoC6h4B4KwCMsBPZHaFezwT4BNA==} + + '@types/diff-match-patch@1.0.36': + resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==} + + '@types/doctrine@0.0.3': + resolution: {integrity: sha512-w5jZ0ee+HaPOaX25X2/2oGR/7rgAQSYII7X7pp0m9KgBfMP7uKfMfTvcpl5Dj+eDBbpxKGiqE+flqDr6XTd2RA==} + + '@types/doctrine@0.0.9': + resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} + + '@types/draco3d@1.4.10': + resolution: {integrity: sha512-AX22jp8Y7wwaBgAixaSvkoG4M/+PlAcm3Qs4OW8yT9DM4xUpWKeFhLueTAyZF39pviAdcDdeJoACapiAceqNcw==} + + '@types/ejs@3.1.5': + resolution: {integrity: sha512-nv+GSx77ZtXiJzwKdsASqi+YQ5Z7vwHsTP0JY2SiQgjGckkBRKZnk8nIM+7oUZ1VCtuTz0+By4qVR7fqzp/Dfg==} + + '@types/emscripten@1.40.0': + resolution: {integrity: sha512-MD2JJ25S4tnjnhjWyalMS6K6p0h+zQV6+Ylm+aGbiS8tSn/aHLSGNzBgduj6FB4zH0ax2GRMGYi/8G1uOxhXWA==} + + '@types/escodegen@0.0.6': + resolution: {integrity: sha512-AjwI4MvWx3HAOaZqYsjKWyEObT9lcVV0Y0V8nXo6cXzN8ZiMxVhf6F3d/UNvXVGKrEzL/Dluc5p+y9GkzlTWig==} + + '@types/estree@0.0.39': + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + + '@types/estree@0.0.51': + resolution: {integrity: sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==} + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/express-serve-static-core@4.19.6': + resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + + '@types/express@4.17.21': + resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + + '@types/find-cache-dir@3.2.1': + resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} + + '@types/gapi@0.0.47': + resolution: {integrity: sha512-/ZsLuq6BffMgbKMtZyDZ8vwQvTyKhKQ1G2K6VyWCgtHHhfSSXbk4+4JwImZiTjWNXfI2q1ZStAwFFHSkNoTkHA==} + + '@types/glob@7.2.0': + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + + '@types/graceful-fs@4.1.9': + resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/http-errors@2.0.4': + resolution: {integrity: sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==} + + '@types/istanbul-lib-coverage@2.0.6': + resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==} + + '@types/istanbul-lib-report@3.0.3': + resolution: {integrity: sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==} + + '@types/istanbul-reports@3.0.4': + resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} + + '@types/js-cookie@2.2.7': + resolution: {integrity: sha512-aLkWa0C0vO5b4Sr798E26QgOkss68Un0bLjs7u9qxzPT5CG+8DuNTffWES58YzJs3hrVAOs1wonycqEBqNJubA==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/json5@0.0.29': + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} + + '@types/linkify-it@5.0.0': + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash@4.17.16': + resolution: {integrity: sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==} + + '@types/markdown-it@14.1.2': + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + + '@types/mdast@4.0.4': + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + + '@types/mdurl@2.0.0': + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + + '@types/mdx@2.0.13': + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + + '@types/mime-types@2.1.4': + resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} + + '@types/mime@1.3.5': + resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} + + '@types/minimatch@5.1.2': + resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} + + '@types/minimist@1.2.5': + resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} + + '@types/ms@2.1.0': + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + + '@types/node-fetch@2.6.12': + resolution: {integrity: sha512-8nneRWKCg3rMtF69nLQJnOYUcbafYeFSjqkw3jCRLsqkWFlHaoQrr5mXmofFGOx3DKn7UfmBMyov8ySvLRVldA==} + + '@types/node-rsa@1.1.4': + resolution: {integrity: sha512-dB0ECel6JpMnq5ULvpUTunx3yNm8e/dIkv8Zu9p2c8me70xIRUUG3q+qXRwcSf9rN3oqamv4116iHy90dJGRpA==} + + '@types/node@14.18.63': + resolution: {integrity: sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==} + + '@types/node@18.19.79': + resolution: {integrity: sha512-90K8Oayimbctc5zTPHPfZloc/lGVs7f3phUAAMcTgEPtg8kKquGZDERC8K4vkBYkQQh48msiYUslYtxTWvqcAg==} + + '@types/node@22.13.9': + resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} + + '@types/normalize-package-data@2.4.4': + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + + '@types/offscreencanvas@2019.7.3': + resolution: {integrity: sha512-ieXiYmgSRXUDeOntE1InxjWyvEelZGP63M+cGuquuRLuIKKT1osnkXjxev9B7d1nXSug5vpunx+gNlbVxMlC9A==} + + '@types/parse-json@4.0.2': + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + + '@types/pretty-hrtime@1.0.3': + resolution: {integrity: sha512-nj39q0wAIdhwn7DGUyT9irmsKK1tV0bd5WFEhgpqNTMFZ8cE+jieuTphCW0tfdm47S2zVT5mr09B28b1chmQMA==} + + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} + + '@types/qs@6.9.18': + resolution: {integrity: sha512-kK7dgTYDyGqS+e2Q4aK9X3D7q234CIZ1Bv0q/7Z5IwRDoADNU81xXJK/YVyLbLTZCoIwUoDoffFeF+p/eIklAA==} + + '@types/range-parser@1.2.7': + resolution: {integrity: sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==} + + '@types/rbush@3.0.4': + resolution: {integrity: sha512-knSt9cCW8jj1ZSFcFeBZaX++OucmfPxxHiRwTahZfJlnQsek7O0bazTJHWD2RVj9LEoejUYF2de3/stf+QXcXw==} + + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 + + '@types/react-transition-group@4.4.12': + resolution: {integrity: sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==} + peerDependencies: + '@types/react': '*' + + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} + + '@types/readable-stream@4.0.18': + resolution: {integrity: sha512-21jK/1j+Wg+7jVw1xnSwy/2Q1VgVjWuFssbYGTREPUBeZ+rqVFl2udq0IkxzPC0ZhOzVceUbyIACFZKLqKEBlA==} + + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} + + '@types/resolve@1.20.6': + resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + + '@types/sat@0.0.31': + resolution: {integrity: sha512-P4SVw79XheP1p92useDVpLYYOUQ6lpw2L7IdQz4dD23DZ8DiC1STgPOh72hjR5IZJBPQbzlICAbmjCKbwyYuxg==} + + '@types/semver@7.5.8': + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} + + '@types/send@0.17.4': + resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} + + '@types/serve-static@1.15.7': + resolution: {integrity: sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==} + + '@types/sinonjs__fake-timers@8.1.1': + resolution: {integrity: sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==} + + '@types/sizzle@2.3.9': + resolution: {integrity: sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==} + + '@types/stats.js@0.17.3': + resolution: {integrity: sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==} + + '@types/three@0.154.0': + resolution: {integrity: sha512-IioqpGhch6FdLDh4zazRn3rXHj6Vn2nVOziJdXVbJFi9CaI65LtP9qqUtpzbsHK2Ezlox8NtsLNHSw3AQzucjA==} + + '@types/three@0.156.0': + resolution: {integrity: sha512-733bXDSRdlrxqOmQuOmfC1UBRuJ2pREPk8sWnx9MtIJEVDQMx8U0NQO5MVVaOrjzDPyLI+cFPim2X/ss9v0+LQ==} + + '@types/trusted-types@2.0.7': + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + + '@types/ua-parser-js@0.7.39': + resolution: {integrity: sha512-P/oDfpofrdtF5xw433SPALpdSchtJmY7nsJItf8h3KXqOslkbySh8zq4dSWXH2oTjRvJ5PczVEoCZPow6GicLg==} + + '@types/unist@2.0.11': + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + + '@types/unist@3.0.3': + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + + '@types/uuid@9.0.8': + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + + '@types/wait-on@5.3.4': + resolution: {integrity: sha512-EBsPjFMrFlMbbUFf9D1Fp+PAB2TwmUn7a3YtHyD9RLuTIk1jDd8SxXVAoez2Ciy+8Jsceo2MYEYZzJ/DvorOKw==} + + '@types/webxr@0.5.21': + resolution: {integrity: sha512-geZIAtLzjGmgY2JUi6VxXdCrTb99A7yP49lxLr2Nm/uIK0PkkxcEi4OGhoGDO4pxCf3JwGz2GiJL2Ej4K2bKaA==} + + '@types/wicg-file-system-access@2023.10.5': + resolution: {integrity: sha512-e9kZO9kCdLqT2h9Tw38oGv9UNzBBWaR1MzuAavxPcsV/7FJ3tWbU6RI3uB+yKIDPGLkGVbplS52ub0AcRLvrhA==} + + '@types/yargs-parser@21.0.3': + resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==} + + '@types/yargs@17.0.33': + resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + '@typescript-eslint/eslint-plugin@6.1.0': + resolution: {integrity: sha512-qg7Bm5TyP/I7iilGyp6DRqqkt8na00lI6HbjWZObgk3FFSzH5ypRwAHXJhJkwiRtTcfn+xYQIMOR5kJgpo6upw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.1.0': + resolution: {integrity: sha512-AxjgxDn27hgPpe2rQe19k0tXw84YCOsjDJ2r61cIebq1t+AIxbgiXKvD4999Wk49GVaAcdJ/d49FYel+Pp3jjw==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/scope-manager@8.26.0': + resolution: {integrity: sha512-E0ntLvsfPqnPwng8b8y4OGuzh/iIOm2z8U3S9zic2TeMLW61u5IH2Q1wu0oSTkfrSzwbDJIB/Lm8O3//8BWMPA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@6.1.0': + resolution: {integrity: sha512-kFXBx6QWS1ZZ5Ni89TyT1X9Ag6RXVIVhqDs0vZE/jUeWlBv/ixq2diua6G7ece6+fXw3TvNRxP77/5mOMusx2w==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.1.0': + resolution: {integrity: sha512-+Gfd5NHCpDoHDOaU/yIF3WWRI2PcBRKKpP91ZcVbL0t5tQpqYWBs3z/GGhvU+EV1D0262g9XCnyqQh19prU0JQ==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/types@8.26.0': + resolution: {integrity: sha512-89B1eP3tnpr9A8L6PZlSjBvnJhWXtYfZhECqlBl1D9Lme9mHO6iWlsprBtVenQvY1HMhax1mWOjhtL3fh/u+pA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@6.1.0': + resolution: {integrity: sha512-nUKAPWOaP/tQjU1IQw9sOPCDavs/iU5iYLiY/6u7gxS7oKQoi4aUxXS1nrrVGTyBBaGesjkcwwHkbkiD5eBvcg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/typescript-estree@8.26.0': + resolution: {integrity: sha512-tiJ1Hvy/V/oMVRTbEOIeemA2XoylimlDQ03CgPPNaHYZbpsc78Hmngnt+WXZfJX1pjQ711V7g0H7cSJThGYfPQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/utils@6.1.0': + resolution: {integrity: sha512-wp652EogZlKmQoMS5hAvWqRKplXvkuOnNzZSE0PVvsKjpexd/XznRVHAtrfHFYmqaJz0DFkjlDsGYC9OXw+OhQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/utils@8.26.0': + resolution: {integrity: sha512-2L2tU3FVwhvU14LndnQCA2frYC8JnPDVKyQtWFPf8IYFMt/ykEN1bPolNhNbCVgOmdzTlWdusCTKA/9nKrf8Ig==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.9.0' + + '@typescript-eslint/visitor-keys@6.1.0': + resolution: {integrity: sha512-yQeh+EXhquh119Eis4k0kYhj9vmFzNpbhM3LftWQVwqVjipCkwHBQOZutcYW+JVkjtTG9k8nrZU1UoNedPDd1A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/visitor-keys@8.26.0': + resolution: {integrity: sha512-2z8JQJWAzPdDd51dRQ/oqIJxe99/hoLIqmf8RMCAJQtYDc535W/Jt2+RTP4bP0aKeBG1F65yjIZuczOXCmbWwg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@vitejs/plugin-react@3.1.0': + resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.1.0-beta.0 + + '@vitest/expect@0.34.6': + resolution: {integrity: sha512-QUzKpUQRc1qC7qdGo7rMK3AkETI7w18gTCUrsNnyjjJKYiuUB9+TQK3QnR1unhCnWRC0AbKv2omLGQDF/mIjOw==} + + '@vitest/runner@0.34.6': + resolution: {integrity: sha512-1CUQgtJSLF47NnhN+F9X2ycxUP0kLHQ/JWvNHbeBfwW8CzEGgeskzNnHDyv1ieKTltuR6sdIHV+nmR6kPxQqzQ==} + + '@vitest/snapshot@0.34.6': + resolution: {integrity: sha512-B3OZqYn6k4VaN011D+ve+AA4whM4QkcwcrwaKwAbyyvS/NB1hCWjFIBQxAQQSQir9/RtyAAGuq+4RJmbn2dH4w==} + + '@vitest/spy@0.34.6': + resolution: {integrity: sha512-xaCvneSaeBw/cz8ySmF7ZwGvL0lBjfvqc1LpQ/vcdHEvpLn3Ff1vAvjw+CoGn0802l++5L/pxb7whwcWAw+DUQ==} + + '@vitest/utils@0.34.6': + resolution: {integrity: sha512-IG5aDD8S6zlvloDsnzHw0Ut5xczlF+kv2BOTo+iXfPr54Yhi5qbVOgGB1hZaVq4iJ4C/MZ2J0y15IlsV/ZcI0A==} + + '@xboxreplay/errors@0.1.0': + resolution: {integrity: sha512-Tgz1d/OIPDWPeyOvuL5+aai5VCcqObhPnlI3skQuf80GVF3k1I0lPCnGC+8Cm5PV9aLBT5m8qPcJoIUQ2U4y9g==} + + '@xboxreplay/xboxlive-auth@3.3.3': + resolution: {integrity: sha512-j0AU8pW10LM8O68CTZ5QHnvOjSsnPICy0oQcP7zyM7eWkDQ/InkiQiirQKsPn1XRYDl4ccNu0WM582s3UKwcBg==} + + '@xmcl/asm@1.0.1': + resolution: {integrity: sha512-7vCVgm1E1IZ2cujiitFk9550Vgu2XAOn1ff90di638fMmTK0XkFMXKsSR/nGZmYKt+XiTMI/0B3TvreqbVjOug==} + engines: {node: '>=16'} + + '@xmcl/core@2.13.0': + resolution: {integrity: sha512-1BslEWUr234zZZTq9Q3QDm8APReYx7phy6PY5fodiztwblYbgipsd89vfx+Qvjc1xWpGtjei0AvxubUDeMFTgA==} + engines: {node: '>=16.0'} + + '@xmcl/file-transfer@1.0.6': + resolution: {integrity: sha512-WVnCTyHTqUUIMsqgGnkmQqov9/qxKWWBj+wjn6pMotpCJHu3gKkLqVoD76IQeTgUBIoh5sGgGbYMZmpRlqCGzw==} + engines: {node: '>=16.0'} + + '@xmcl/forge-site-parser@2.0.9': + resolution: {integrity: sha512-OHKG2KYE+F6TSeOQmymuGoqEifxbJb3w3X/hmxMNeqtewiYukJldPmKO559ZFnZnOuMQEnr+X0dMbTQwWs5dFg==} + engines: {node: '>=16'} + + '@xmcl/installer@5.4.0': + resolution: {integrity: sha512-Y4UK6WWogDdgvcAUQnUPoJidlkuVQP5dSV5QueJhKeEJAA3lmGklwV8Dp8z0/92ITQ45OBsB7g08qV3eec4G6w==} + engines: {node: '>=16.0'} + + '@xmcl/task@4.1.0': + resolution: {integrity: sha512-5Gqo/gltcenXTvRUz3H1Q2tNw9wWbOjeOVd9TeRNtBAOaKmdTD7iMhOIbdei71BSZ9FkVEhcUjO+PL+y+WNHoQ==} + + '@xmcl/text-component@2.1.3': + resolution: {integrity: sha512-LdUZgC5+8F23J2ZkZi7aZb87QBNfxwJqhUyts8YBQYwxQPwei20TOBm2hr69euoAeDo7NDfbLXssD4mUvsAS0Q==} + engines: {node: '>=16'} + + '@xmcl/unzip@2.1.2': + resolution: {integrity: sha512-Lm/eg/e0/p+sfj/RT2QDpsBAf39DZqQ3+XvX1JXZPb64wnjwOf8CGU1WPv6BseEcJ5CMOpm0s2NyrEQD04y0UQ==} + engines: {node: '>=16'} + peerDependencies: + yauzl: ^2.10.0 + + '@xobotyi/scrollbar-width@1.9.5': + resolution: {integrity: sha512-N8tkAACJx2ww8vFMneJmaAgmjAG1tnVBZJRLRcx061tmsLRZHSEZSLuGWnwPtunsSLvSqXQ2wfp7Mgqg1I+2dQ==} + + '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15': + resolution: {integrity: sha512-kYzDJO5CA9sy+on/s2aIW0411AklfCi8Ck/4QDivOqsMKpStZA2SsR+X27VTggGwpStWaLrjJcDcdDMowtG8MA==} + engines: {node: '>=14.15.0'} + peerDependencies: + esbuild: '>=0.10.0' + + '@yarnpkg/fslib@2.10.3': + resolution: {integrity: sha512-41H+Ga78xT9sHvWLlFOZLIhtU6mTGZ20pZ29EiZa97vnxdohJD2AF42rCoAoWfqUz486xY6fhjMH+DYEM9r14A==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + + '@yarnpkg/libzip@2.3.0': + resolution: {integrity: sha512-6xm38yGVIa6mKm/DUCF2zFFJhERh/QWp1ufm4cNUvxsONBmfPg8uZ9pZBdOmF6qFGr/HlT6ABBkCSx/dlEtvWg==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + + '@zardoy/flying-squid@0.0.104': + resolution: {integrity: sha512-jGhQ7fn7o8UN+mUwZbt9674D37YLuBi+Au4TwKcopCA6huIQdHTFNl2e+0ZSTI5mnhN+NpyVoR3vmtH6L58vHQ==} + engines: {node: '>=8'} + hasBin: true + + '@zardoy/flying-squid@0.0.49': + resolution: {integrity: sha512-Kt4wr5/R+44tcLU9gjuNG2an9weWeKEpIoKXfsgJN2GGQqdnbd5nBpxfGDdgZ9aMdFugsVW8BsyPZNhj9vbMXA==} + engines: {node: '>=8'} + hasBin: true + + '@zardoy/maxrects-packer@2.7.4': + resolution: {integrity: sha512-ZIDcSdtSg6EhKFxGYWCcTnA/0YVbpixBL+psUS6ncw4IvdDF5hWauMU3XeCfYwrT/88QFgAq/Pafxt+P9OJyoQ==} + + '@zardoy/react-util@0.2.7': + resolution: {integrity: sha512-LJOml3y8wa5OxvNgDKMceP7kaFHkw2nX9y/RQGMv2sijTEnc4gCd3yNtc4fibu1PFWZlupb6UvsNe45o7UwElg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + '@nextui-org/react': ^2.4.6 + react: ^18.2.0 + react-dom: '>=18.0.0' + peerDependenciesMeta: + '@nextui-org/react': + optional: true + + '@zardoy/utils@0.0.11': + resolution: {integrity: sha512-d6xBnSFCOa98HcL52xSBflJKjKpxfRhtr1eVexy89YujeCHSQhUMmSz9h07xyrulfW60k9tSeYH5reuqoh4l4w==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + Base64@0.2.1: + resolution: {integrity: sha512-reGEWshDmTDQDsCec/HduOO9Wyj6yMOupMfhIf3ugN1TDlK2NQW4DDJSqNNtp380SNcvRfXtO8HSCQot0d0SMw==} + + abbrev@1.1.1: + resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} + + abort-controller@3.0.0: + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} + + accepts@1.3.8: + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn-walk@7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + + acorn-walk@8.3.4: + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} + + acorn@7.4.1: + resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} + engines: {node: '>=0.4.0'} + hasBin: true + + acorn@8.14.1: + resolution: {integrity: sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==} + engines: {node: '>=0.4.0'} + hasBin: true + + address@1.2.2: + resolution: {integrity: sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==} + engines: {node: '>= 10.0.0'} + + adm-zip@0.5.16: + resolution: {integrity: sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==} + engines: {node: '>=12.0'} + + aes-js@3.1.2: + resolution: {integrity: sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==} + + after@0.8.2: + resolution: {integrity: sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==} + + agent-base@5.1.1: + resolution: {integrity: sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==} + engines: {node: '>= 6.0.0'} + + agent-base@6.0.2: + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} + + agentkeepalive@4.6.0: + resolution: {integrity: sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==} + engines: {node: '>= 8.0.0'} + + aggregate-error@3.1.0: + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + + animejs@3.2.1: + resolution: {integrity: sha512-sWno3ugFryK5nhiDm/2BKeFCpZv7vzerWUcUPyAZLDhMek3+S/p418ldZJbJXo5ZUOpfm2kP2XRO4NJcULMy9A==} + + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + + ansi-escapes@4.3.2: + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} + engines: {node: '>=12'} + + ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + ansi-styles@5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + + ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + + any-base@1.1.0: + resolution: {integrity: sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==} + + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + + anymatch@2.0.0: + resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + apache-crypt@1.2.6: + resolution: {integrity: sha512-072WetlM4blL8PREJVeY+WHiUh1R5VNt2HfceGS8aKqttPHcmqE5pkKuXPz/ULmJOFkc8Hw3kfKl6vy7Qka6DA==} + engines: {node: '>=8'} + + apache-md5@1.1.8: + resolution: {integrity: sha512-FCAJojipPn0bXjuEpjOOOMN8FZDkxfWWp4JGN9mifU2IhxvKyXZYqpzPHdnTSUpmPDy+tsslB6Z1g+Vg6nVbYA==} + engines: {node: '>=8'} + + app-root-dir@1.0.2: + resolution: {integrity: sha512-jlpIfsOoNoafl92Sz//64uQHGSyMrD2vYG5d8o2a4qGvyNCvXur7bzIsWtAC/6flI2RYAp3kv8rsfBtaLm7w0g==} + + aproba@2.0.0: + resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} + + arch@2.2.0: + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + + are-we-there-yet@2.0.0: + resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + are-we-there-yet@3.0.1: + resolution: {integrity: sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + argparse@1.0.10: + resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + + arr-diff@4.0.0: + resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} + engines: {node: '>=0.10.0'} + + arr-flatten@1.1.0: + resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==} + engines: {node: '>=0.10.0'} + + arr-union@3.1.0: + resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==} + engines: {node: '>=0.10.0'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} + + array-flatten@1.1.1: + resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} + engines: {node: '>= 0.4'} + + array-includes@3.1.9: + resolution: {integrity: sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==} + engines: {node: '>= 0.4'} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + array-unique@0.3.2: + resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==} + engines: {node: '>=0.10.0'} + + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} + engines: {node: '>= 0.4'} + + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} + engines: {node: '>= 0.4'} + + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} + + arraybuffer.slice@0.0.7: + resolution: {integrity: sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==} + + arrify@1.0.1: + resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} + engines: {node: '>=0.10.0'} + + asn1.js@4.10.1: + resolution: {integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==} + + asn1@0.2.3: + resolution: {integrity: sha512-6i37w/+EhlWlGUJff3T/Q8u1RGmP5wgbiwYnOnbOqvtrPxT63/sYFyP9RcpxtxGymtfA075IvmOnL7ycNOWl3w==} + + asn1@0.2.6: + resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} + + assert-plus@1.0.0: + resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==} + engines: {node: '>=0.8'} + + assert@2.1.0: + resolution: {integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==} + + assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + + assign-symbols@1.0.0: + resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==} + engines: {node: '>=0.10.0'} + + ast-types@0.16.1: + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} + + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + + async-each@1.0.6: + resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==} + + async-function@1.0.0: + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} + + async-limiter@1.0.1: + resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} + + async@2.6.4: + resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + at-least-node@1.0.0: + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} + + atob@2.1.2: + resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==} + engines: {node: '>= 4.5.0'} + hasBin: true + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + aws-sign2@0.7.0: + resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==} + + aws4@1.13.2: + resolution: {integrity: sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==} + + axios@0.21.4: + resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} + + axios@1.8.2: + resolution: {integrity: sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==} + + babel-core@7.0.0-bridge.0: + resolution: {integrity: sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==} + peerDependencies: + '@babel/core': ^7.0.0-0 + + babel-plugin-istanbul@6.1.1: + resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} + engines: {node: '>=8'} + + babel-plugin-macros@3.1.0: + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} + + babel-plugin-polyfill-corejs2@0.4.12: + resolution: {integrity: sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-corejs3@0.11.1: + resolution: {integrity: sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + babel-plugin-polyfill-regenerator@0.6.3: + resolution: {integrity: sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==} + peerDependencies: + '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 + + backo2@1.0.2: + resolution: {integrity: sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==} + + bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + base64-arraybuffer@0.1.4: + resolution: {integrity: sha512-a1eIFi4R9ySrbiMuyTGx5e92uRH5tQY6kArNcFaKBUleIoLjdjBg7Zxm3Mqm3Kmkf27HLR/1fnxX9q8GQ7Iavg==} + engines: {node: '>= 0.6.0'} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + base64id@2.0.0: + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} + + base@0.11.2: + resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==} + engines: {node: '>=0.10.0'} + + basic-auth@2.0.1: + resolution: {integrity: sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==} + engines: {node: '>= 0.8'} + + batch@0.6.1: + resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} + + bcrypt-pbkdf@1.0.2: + resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==} + + bcryptjs@2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==} + + better-opn@3.0.2: + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} + + big-integer@1.6.52: + resolution: {integrity: sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==} + engines: {node: '>=0.6'} + + binary-extensions@1.13.1: + resolution: {integrity: sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==} + engines: {node: '>=0.10.0'} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + bindings@1.5.0: + resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==} + + bit-twiddle@1.0.2: + resolution: {integrity: sha512-B9UhK0DKFZhoTFcfvAzhqsjStvGJp9vYWf3+6SNTtdSQnvIgfkHbgHrg/e4+TH71N2GDu8tpmCVoyfrL1d7ntA==} + + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + + blob-util@2.0.2: + resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} + + blob@0.0.5: + resolution: {integrity: sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==} + + bluebird@3.7.2: + resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} + + bmp-js@0.1.0: + resolution: {integrity: sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==} + + bn.js@4.12.1: + resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + body-parser@1.20.3: + resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + bplist-parser@0.2.0: + resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==} + engines: {node: '>= 5.10.0'} + + brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + + brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + + braces@2.3.2: + resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==} + engines: {node: '>=0.10.0'} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + browser-assert@1.2.1: + resolution: {integrity: sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ==} + + browserfs@https://codeload.github.com/zardoy/browserfs/tar.gz/ab58ae8ef00e3a31db01909e365e6cb5188436e0: + resolution: {tarball: https://codeload.github.com/zardoy/browserfs/tar.gz/ab58ae8ef00e3a31db01909e365e6cb5188436e0} + version: 2.0.0 + engines: {node: '>= 18'} + + browserfs@https://codeload.github.com/zardoy/browserfs/tar.gz/e60ca69e74888e057a96a468afe1d62347d3f56f: + resolution: {tarball: https://codeload.github.com/zardoy/browserfs/tar.gz/e60ca69e74888e057a96a468afe1d62347d3f56f} + version: 2.0.0-zardoy + + browserify-aes@1.2.0: + resolution: {integrity: sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==} + + browserify-cipher@1.0.1: + resolution: {integrity: sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==} + + browserify-des@1.0.2: + resolution: {integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==} + + browserify-rsa@4.1.1: + resolution: {integrity: sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==} + engines: {node: '>= 0.10'} + + browserify-sign@4.2.3: + resolution: {integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==} + engines: {node: '>= 0.12'} + + browserify-zlib@0.1.4: + resolution: {integrity: sha512-19OEpq7vWgsH6WkvkBJQDFvJS1uPcbFOQ4v9CU839dO+ZZXUZO6XpE6hNCqvlIIj+4fZvRiJ6DsAQ382GwiyTQ==} + + browserify-zlib@0.2.0: + resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==} + + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + + bser@2.1.1: + resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + buffer-equal-constant-time@1.0.1: + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + + buffer-equal@0.0.1: + resolution: {integrity: sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==} + engines: {node: '>=0.4.0'} + + buffer-equal@1.0.1: + resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==} + engines: {node: '>=0.4'} + + buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + + buffer-xor@1.0.3: + resolution: {integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + + builtin-status-codes@3.0.0: + resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==} + + bytes@3.1.2: + resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} + engines: {node: '>= 0.8'} + + cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + + cacache@16.1.3: + resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + cache-base@1.0.1: + resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==} + engines: {node: '>=0.10.0'} + + cachedir@2.4.0: + resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} + engines: {node: '>=6'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + camel-case@4.1.2: + resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==} + + camelcase-keys@7.0.2: + resolution: {integrity: sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==} + engines: {node: '>=12'} + + camelcase@5.3.1: + resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} + engines: {node: '>=6'} + + camelcase@6.3.0: + resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} + engines: {node: '>=10'} + + caniuse-lite@1.0.30001713: + resolution: {integrity: sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==} + + canvas@2.11.2: + resolution: {integrity: sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==} + engines: {node: '>=6'} + + capital-case@1.0.4: + resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} + + caseless@0.12.0: + resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} + + centra@2.7.0: + resolution: {integrity: sha512-PbFMgMSrmgx6uxCdm57RUos9Tc3fclMvhLSATYN39XsDV29B89zZ3KA89jmY0vwSGazyU+uerqwa6t+KaodPcg==} + + chai@4.5.0: + resolution: {integrity: sha512-RITGBfijLkBddZvnn8jdqoTypxvqbOLYQkGGxXzeFjVHvudaPw0HNFD9x928/eUwYWd2dPCugVqspGALTZZQKw==} + engines: {node: '>=4'} + + chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chalk@5.4.1: + resolution: {integrity: sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + + change-case@4.1.2: + resolution: {integrity: sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==} + + change-case@5.4.4: + resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + + character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + + charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + + check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + + check-more-types@2.24.0: + resolution: {integrity: sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==} + engines: {node: '>= 0.8.0'} + + chokidar@2.1.8: + resolution: {integrity: sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + + chownr@2.0.0: + resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} + engines: {node: '>=10'} + + ci-info@3.9.0: + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} + + cipher-base@1.0.6: + resolution: {integrity: sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==} + engines: {node: '>= 0.10'} + + citty@0.1.6: + resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} + + class-utils@0.3.6: + resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==} + engines: {node: '>=0.10.0'} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + + clean-stack@2.2.0: + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} + + cli-cursor@3.1.0: + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} + + cli-spinners@2.9.2: + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + cli-truncate@2.1.0: + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} + + cliui@8.0.1: + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} + + clone-deep@4.0.1: + resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==} + engines: {node: '>=6'} + + clone@1.0.4: + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} + + clsx@1.1.1: + resolution: {integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==} + engines: {node: '>=6'} + + collection-visit@1.0.0: + resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==} + engines: {node: '>=0.10.0'} + + color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color-support@1.1.3: + resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} + hasBin: true + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + + commander@5.1.0: + resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} + engines: {node: '>= 6'} + + commander@6.2.1: + resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==} + engines: {node: '>= 6'} + + common-tags@1.8.2: + resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==} + engines: {node: '>=4.0.0'} + + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + + component-bind@1.0.0: + resolution: {integrity: sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==} + + component-emitter@1.2.1: + resolution: {integrity: sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==} + + component-emitter@1.3.1: + resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} + + component-inherit@0.0.3: + resolution: {integrity: sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==} + + compressible@2.0.18: + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} + + compression@1.8.0: + resolution: {integrity: sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==} + engines: {node: '>= 0.8.0'} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + concat-stream@1.6.2: + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} + + confbox@0.1.8: + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + + confusing-browser-globals@1.0.11: + resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} + + connect@3.7.0: + resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==} + engines: {node: '>= 0.10.0'} + + consola@3.4.0: + resolution: {integrity: sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA==} + engines: {node: ^14.18.0 || >=16.10.0} + + console-browserify@1.2.0: + resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==} + + console-control-strings@1.1.0: + resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==} + + constant-case@3.0.4: + resolution: {integrity: sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==} + + constants-browserify@1.0.0: + resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==} + + content-disposition@0.5.4: + resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==} + engines: {node: '>= 0.6'} + + content-type@1.0.5: + resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} + engines: {node: '>= 0.6'} + + contro-max@0.1.9: + resolution: {integrity: sha512-zH9FB60EzhHKublD92d11QuarYRTdYci5rvDgwDr5XXwUqae5mr6IgzXGcr78T2odnO/Aeqmrf32RDwJIl5GfQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + convert-source-map@1.9.0: + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + + cookie-signature@1.0.6: + resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + + cookie@0.7.1: + resolution: {integrity: sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==} + engines: {node: '>= 0.6'} + + cookie@0.7.2: + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} + + copy-descriptor@0.1.1: + resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==} + engines: {node: '>=0.10.0'} + + copy-to-clipboard@3.3.3: + resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==} + + core-js-compat@3.41.0: + resolution: {integrity: sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A==} + + core-js@3.41.0: + resolution: {integrity: sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==} + + core-util-is@1.0.2: + resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + + cors@2.8.5: + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} + + corser@2.0.1: + resolution: {integrity: sha512-utCYNzRSQIZNPIcGZdQc92UVJYAhtGAteCFg0yRaFm8f0P+CPtyGyHXJcGXnffjCybUCEx3FQ2G7U3/o9eIkVQ==} + engines: {node: '>= 0.4.0'} + + cosmiconfig@7.1.0: + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} + + create-ecdh@4.0.4: + resolution: {integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==} + + create-hash@1.2.0: + resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==} + + create-hmac@1.1.7: + resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==} + + crelt@1.0.6: + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + + cross-spawn@6.0.6: + resolution: {integrity: sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==} + engines: {node: '>=4.8'} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + + crypto-browserify@3.12.1: + resolution: {integrity: sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==} + engines: {node: '>= 0.10'} + + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + + css-in-js-utils@3.1.0: + resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} + + css-select@5.1.0: + resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} + + css-tree@1.1.3: + resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} + engines: {node: '>=8.0.0'} + + css-what@6.1.0: + resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} + engines: {node: '>= 6'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + cypress-esbuild-preprocessor@1.0.2: + resolution: {integrity: sha512-JsFnm6fBQt/OEzstknJ1KLMTuUERUaG0ZB9fk0KdNUlZqxaVEoQ9/pFvKmqRfzUe2y00cWD++ptccQA4tNAAlQ==} + + cypress-plugin-snapshots@1.4.4: + resolution: {integrity: sha512-rijq3RTEZNtxQA4KCUwjXinmE1Ww+z6cQW0B14iodFM/HlX5LN16XT/2QS3X1nUXRKt0QdTrAC5MQfMUrjBkSQ==} + engines: {node: '>=8.2.1'} + peerDependencies: + cypress: ^4.5.0 + + cypress@10.11.0: + resolution: {integrity: sha512-lsaE7dprw5DoXM00skni6W5ElVVLGAdRUUdZjX2dYsGjbY/QnpzWZ95Zom1mkGg0hAaO/QVTZoFVS7Jgr/GUPA==} + engines: {node: '>=12.0.0'} + hasBin: true + + dashdash@1.14.1: + resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} + engines: {node: '>=0.10'} + + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} + + dayjs@1.11.13: + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + + debounce@1.2.1: + resolution: {integrity: sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==} + + debug@2.6.9: + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.1.0: + resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.1.1: + resolution: {integrity: sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==} + deprecated: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + debug@4.4.1: + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decamelize-keys@1.1.1: + resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==} + engines: {node: '>=0.10.0'} + + decamelize@1.2.0: + resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} + engines: {node: '>=0.10.0'} + + decamelize@5.0.1: + resolution: {integrity: sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==} + engines: {node: '>=10'} + + decode-named-character-reference@1.1.0: + resolution: {integrity: sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==} + + decode-uri-component@0.2.2: + resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} + engines: {node: '>=0.10'} + + decompress-response@4.2.1: + resolution: {integrity: sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==} + engines: {node: '>=8'} + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + deep-eql@4.1.4: + resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + engines: {node: '>=6'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + deepslate@0.23.5: + resolution: {integrity: sha512-FjBBbuPUI1Y/dXtUc4WiCJSA7s7yRAXepD7qWRF6wX5m/q7AVRauMEShu8lphRvqCtJyxcYFZmISwX5OOH/tWw==} + + default-browser-id@3.0.0: + resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==} + engines: {node: '>=12'} + + defaults@1.0.4: + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + define-property@0.2.5: + resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==} + engines: {node: '>=0.10.0'} + + define-property@1.0.0: + resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==} + engines: {node: '>=0.10.0'} + + define-property@2.0.2: + resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==} + engines: {node: '>=0.10.0'} + + defu@6.1.4: + resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} + + del@6.1.1: + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + delegates@1.0.0: + resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} + + depd@1.1.2: + resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==} + engines: {node: '>= 0.6'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + + derive-valtio@0.1.0: + resolution: {integrity: sha512-OCg2UsLbXK7GmmpzMXhYkdO64vhJ1ROUUGaTFyHjVwEdMEcTTRj7W1TxLbSBxdY8QLBPCcp66MTyaSy0RpO17A==} + peerDependencies: + valtio: '*' + + des.js@1.1.0: + resolution: {integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-collisions@7.0.5: + resolution: {integrity: sha512-RiebSYJ9Vok1uVm57bxpI69EO2ySK1rdcHpRv28IDBh/wgaF8wxjoZJV7mmqz8MOKioLwMHvcMyP1R0CLZ+RbA==} + + detect-indent@6.1.0: + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} + + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + + detect-package-manager@2.0.1: + resolution: {integrity: sha512-j/lJHyoLlWi6G1LDdLgvUtz60Zo5GEj+sVYtTVXnYLDPuzgC3llMxonXym9zIwhhUII8vjdw0LXxavpLqTbl1A==} + engines: {node: '>=12'} + + detect-port@1.6.1: + resolution: {integrity: sha512-CmnVc+Hek2egPx1PeTFVta2W78xy2K/9Rkf6cC4T59S50tVnzKj+tnx5mmx5lwvCkujZ4uRrpRSuV+IVs3f90Q==} + engines: {node: '>= 4.0.0'} + hasBin: true + + devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + + diamond-square@https://codeload.github.com/zardoy/diamond-square/tar.gz/cfaad2d1d5909fdfa63c8cc7bc05fb5e87782d71: + resolution: {tarball: https://codeload.github.com/zardoy/diamond-square/tar.gz/cfaad2d1d5909fdfa63c8cc7bc05fb5e87782d71} + version: 1.3.0 + + diff-match-patch@1.0.5: + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + diff2html@2.12.2: + resolution: {integrity: sha512-G/Zn1KyG/OeC+67N/P26WHsQpjrjUiRyWGvg29ypy3MxSsBmF0bzsU/Irq70i2UAg+f/MzmLx4v/Nkt01TOU3g==} + engines: {node: '>=4'} + + diff@2.2.3: + resolution: {integrity: sha512-9wfm3RLzMp/PyTFWuw9liEzdlxsdGixCW0ZTU1XDmtlAkvpVXTPGF8KnfSs0hm3BPbg19OrUPPsRkHXoREpP1g==} + engines: {node: '>=0.3.1'} + + diff@4.0.2: + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} + + diffie-hellman@5.0.3: + resolution: {integrity: sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + discontinuous-range@1.0.0: + resolution: {integrity: sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==} + + doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dom-helpers@5.2.1: + resolution: {integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==} + + dom-serializer@2.0.0: + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + + dom-walk@0.1.2: + resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==} + + domain-browser@5.7.0: + resolution: {integrity: sha512-edTFu0M/7wO1pXY6GDxVNVW086uqwWYIHP98txhcPyV995X21JIH2DtYp33sQJOupYoXKe9RwTw2Ya2vWaquTQ==} + engines: {node: '>=4'} + + domelementtype@2.3.0: + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + + domhandler@5.0.3: + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} + + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + + dot-case@3.0.4: + resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + + dotenv-expand@10.0.0: + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} + + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} + engines: {node: '>=12'} + + draco3d@1.5.7: + resolution: {integrity: sha512-m6WCKt/erDXcw+70IJXnG7M3awwQPAsZvJGX5zY7beBqpELw6RDGkYVU0W43AFxye4pDZ5i2Lbyc/NNGqwjUVQ==} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + duplexer@0.1.2: + resolution: {integrity: sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==} + + duplexify@3.7.1: + resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} + + eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + + ecc-jsbn@0.1.2: + resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} + + ecdsa-sig-formatter@1.0.11: + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.5.113: + resolution: {integrity: sha512-wjT2O4hX+wdWPJ76gWSkMhcHAV2PTMX+QetUCPYEdCIe+cxmgzzSSiGRCKW8nuh4mwKZlpv0xvoW7OF2X+wmHg==} + + elliptic@6.6.1: + resolution: {integrity: sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==} + + emit-then@2.0.0: + resolution: {integrity: sha512-y5JHnrygHnCndtqVHHDhCr0ZzzWHK5RBTczWRlGSIR5UnGHBXuxpoaE0UB5E82qym8ma2dI799wDSSJN2e4VSg==} + engines: {node: '>=5'} + + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + + emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + + encodeurl@1.0.2: + resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} + engines: {node: '>= 0.8'} + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + encoding@0.1.13: + resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + endian-toggle@0.0.0: + resolution: {integrity: sha512-ShfqhXeHRE4TmggSlHXG8CMGIcsOsqDw/GcoPcosToE59Rm9e4aXaMhEQf2kPBsBRrKem1bbOAv5gOKnkliMFQ==} + + engine.io-client@3.5.4: + resolution: {integrity: sha512-ydc8uuMMDxC5KCKNJN3zZKYJk2sgyTuTZQ7Aj1DJSsLKAcizA/PzWivw8fZMIjJVBo2CJOYzntv4FSjY/Lr//g==} + + engine.io-client@6.6.3: + resolution: {integrity: sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==} + + engine.io-parser@2.2.1: + resolution: {integrity: sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + engine.io@3.6.2: + resolution: {integrity: sha512-C4JjGQZLY3kWlIDx0BQNKizbrfpb7NahxDztGdN5jrPK2ghmXiNDN+E/t0JzDeNRZxPVaszxEng42Pmj27X/0w==} + engines: {node: '>=8.0.0'} + + engine.io@6.6.4: + resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} + engines: {node: '>=10.2.0'} + + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + + entities@4.5.0: + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + envinfo@7.14.0: + resolution: {integrity: sha512-CO40UI41xDQzhLB1hWyqUKgFhs250pNcGbyGKe1l/e4FSaI/+YE4IMG76GDt0In67WLPACIITC+sOi08x4wIvg==} + engines: {node: '>=4'} + hasBin: true + + err-code@2.0.3: + resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} + + error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + + error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + + eruda@3.4.1: + resolution: {integrity: sha512-RmaO5yD97URY/9Q0lye3cmmNPoXNKreeePIw7c/zllbscR92CjGFZFuQ70+0fLIvLcKW3Xha8DS8NFhmeNbEBQ==} + + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} + engines: {node: '>= 0.4'} + + es-abstract@1.24.0: + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} + engines: {node: '>= 0.4'} + + es-module-lexer@0.9.3: + resolution: {integrity: sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + es-shim-unscopables@1.1.0: + resolution: {integrity: sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==} + engines: {node: '>= 0.4'} + + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} + + es6-promise@4.2.8: + resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==} + + es6-promisify@5.0.0: + resolution: {integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==} + + esbuild-plugin-alias@0.2.1: + resolution: {integrity: sha512-jyfL/pwPqaFXyKnj8lP8iLk6Z0m099uXR45aSN8Av1XD4vhvQutxxPzgA2bTcAwQpa1zCXDcWOlhFgyP3GKqhQ==} + + esbuild-plugin-polyfill-node@0.3.0: + resolution: {integrity: sha512-SHG6CKUfWfYyYXGpW143NEZtcVVn8S/WHcEOxk62LuDXnY4Zpmc+WmxJKN6GMTgTClXJXhEM5KQlxKY6YjbucQ==} + peerDependencies: + esbuild: '*' + + esbuild-register@3.6.0: + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} + peerDependencies: + esbuild: '>=0.12 <1' + + esbuild@0.18.20: + resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.19.12: + resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} + engines: {node: '>=12'} + hasBin: true + + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} + engines: {node: '>=18'} + hasBin: true + + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + escodegen@2.1.0: + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} + hasBin: true + + eslint-config-prettier@8.10.0: + resolution: {integrity: sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + + eslint-config-xo-react@0.27.0: + resolution: {integrity: sha512-wiV215xQIn71XZyyVfaOXHaFpR1B14IJttwOjMi/eqUK1s+ojJdHr7eHqTLaGUfh6FKgWha1QNwePlIXx7mBUg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=8.6.0' + eslint-plugin-react: '>=7.29.0' + eslint-plugin-react-hooks: '>=4.3.0' + + eslint-config-xo-typescript@1.0.1: + resolution: {integrity: sha512-vPQssnRSUgBFOEfB/KY12CXwltwFSn4RSCfa+w7gjBC2PFQ7Yfgmyei+1XUZ3K+8LRGef2NMJUcxts7PldhDjg==} + engines: {node: '>=16'} + peerDependencies: + '@typescript-eslint/eslint-plugin': '>=6.0.0' + '@typescript-eslint/parser': '>=6.0.0' + eslint: '>=8.0.0' + typescript: '>=4.7' + + eslint-config-xo@0.43.1: + resolution: {integrity: sha512-azv1L2PysRA0NkZOgbndUpN+581L7wPqkgJOgxxw3hxwXAbJgD6Hqb/SjHRiACifXt/AvxCzE/jIKFAlI7XjvQ==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=8.27.0' + + eslint-config-zardoy@0.2.17: + resolution: {integrity: sha512-d31WsjyVSQqHbzTpBSmH96+nw5gwY2yhDbZatU89gr+U8ou1FRUkJSApYJUgmcINt8AQocj1RDDAVYmVSILZgQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + eslint: ^8.5.0 + eslint-plugin-vue: ^8.4.1 + typescript: ^4.5.2 + vue-eslint-parser: ^8.2.0 + peerDependenciesMeta: + eslint-plugin-vue: + optional: true + vue-eslint-parser: + optional: true + + eslint-import-resolver-node@0.3.9: + resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} + + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + + eslint-plugin-es@3.0.1: + resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-eslint-comments@3.2.0: + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + + eslint-plugin-import@2.27.5: + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + + eslint-plugin-node@11.1.0: + resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} + engines: {node: '>=8.10.0'} + peerDependencies: + eslint: '>=5.16.0' + + eslint-plugin-react-hooks@5.2.0: + resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + + eslint-plugin-react@7.37.4: + resolution: {integrity: sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + + eslint-plugin-sonarjs@0.19.0: + resolution: {integrity: sha512-6+s5oNk5TFtVlbRxqZN7FIGmjdPCYQKaTzFPmqieCmsU1kBYDzndTeQav0xtQNwZJWu5awWfTGe8Srq9xFOGnw==} + engines: {node: '>=14'} + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + + eslint-plugin-unicorn@48.0.0: + resolution: {integrity: sha512-8fk/v3p1ro34JSVDBEmtOq6EEQRpMR0iTir79q69KnXFZ6DJyPkT3RAi+ZoTqhQMdDSpGh8BGR68ne1sP5cnAA==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.44.0' + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-utils@2.1.0: + resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} + engines: {node: '>=6'} + + eslint-visitor-keys@1.3.0: + resolution: {integrity: sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==} + engines: {node: '>=4'} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@10.3.0: + resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esprima@4.0.1: + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} + hasBin: true + + esquery@1.6.0: + resolution: {integrity: sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@1.0.1: + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + event-stream@3.3.4: + resolution: {integrity: sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==} + + event-target-shim@5.0.1: + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} + + eventemitter2@6.4.7: + resolution: {integrity: sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==} + + eventemitter3@4.0.7: + resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} + + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} + + evp_bytestokey@1.0.3: + resolution: {integrity: sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==} + + execa@4.1.0: + resolution: {integrity: sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==} + engines: {node: '>=10'} + + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + + executable@4.1.1: + resolution: {integrity: sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==} + engines: {node: '>=4'} + + exif-parser@0.1.12: + resolution: {integrity: sha512-c2bQfLNbMzLPmzQuOr8fy0csy84WmwnER81W88DzTp9CYNPJ6yzOj2EZAh9pywYpqHnshVLHQJ8WzldAyfY+Iw==} + + exit-hook@2.2.1: + resolution: {integrity: sha512-eNTPlAD67BmP31LDINZ3U7HSF8l57TxOY2PmBJ1shpCvpnxBF93mWCE8YHBnXs8qiUZJc9WDcWIeC3a2HIAMfw==} + engines: {node: '>=6'} + + expand-brackets@2.1.4: + resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==} + engines: {node: '>=0.10.0'} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + + exponential-backoff@3.1.2: + resolution: {integrity: sha512-8QxYTVXUkuy7fIIoitQkPwGonB8F3Zj8eEO8Sqg9Zv/bkI7RJAzowee4gr81Hak/dUTpA2Z7VfQgoijjPNlUZA==} + + express-ws@4.0.0: + resolution: {integrity: sha512-KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==} + engines: {node: '>=4.5.0'} + peerDependencies: + express: ^4.0.0 || ^5.0.0-alpha.1 + + express@4.21.2: + resolution: {integrity: sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==} + engines: {node: '>= 0.10.0'} + + extend-shallow@2.0.1: + resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==} + engines: {node: '>=0.10.0'} + + extend-shallow@3.0.2: + resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==} + engines: {node: '>=0.10.0'} + + extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + + extglob@2.0.4: + resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==} + engines: {node: '>=0.10.0'} + + extract-zip@1.7.0: + resolution: {integrity: sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==} + hasBin: true + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + extsprintf@1.3.0: + resolution: {integrity: sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==} + engines: {'0': node >=0.6.0} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fast-shallow-equal@1.0.0: + resolution: {integrity: sha512-HPtaa38cPgWvaCFmRNhlc6NG7pv6NUHqjPgVAkWGoB9mQMwYB27/K0CvOM5Czy+qpT3e8XJ6Q4aPAnzpNpzNaw==} + + fast-uri@3.0.6: + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + + fastest-stable-stringify@2.0.2: + resolution: {integrity: sha512-bijHueCGd0LqqNK9b5oCMHc0MluJAx0cwqASgbWMvkO01lCYgIhacVRLcaDz3QnyYIRNJRDwMb41VuT6pHJ91Q==} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + faye-websocket@0.11.4: + resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==} + engines: {node: '>=0.8.0'} + + fb-watchman@2.0.2: + resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fetch-retry@5.0.6: + resolution: {integrity: sha512-3yurQZ2hD9VISAhJJP9bpYFNQrHHBXE2JxxjY5aLEcDi46RmAzJE2OC9FAde0yis5ElW0jTTzs0zfg/Cca4XqQ==} + + fflate@0.6.10: + resolution: {integrity: sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg==} + + figures@3.2.0: + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + file-system-cache@2.3.0: + resolution: {integrity: sha512-l4DMNdsIPsVnKrgEXbJwDJsA5mB8rGwHYERMgqQx/xAUtChPJMre1bXBzDEqqVbWv9AIbFezXMxeEkZDSrXUOQ==} + + file-type@9.0.0: + resolution: {integrity: sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==} + engines: {node: '>=6'} + + file-uri-to-path@1.0.0: + resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==} + + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + + filesize@10.1.6: + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} + + fill-range@4.0.0: + resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==} + engines: {node: '>=0.10.0'} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + finalhandler@1.1.2: + resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==} + engines: {node: '>= 0.8'} + + finalhandler@1.3.1: + resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} + engines: {node: '>= 0.8'} + + find-cache-dir@2.1.0: + resolution: {integrity: sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==} + engines: {node: '>=6'} + + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + + find-root@1.1.0: + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + + find-up@3.0.0: + resolution: {integrity: sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==} + engines: {node: '>=6'} + + find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatmap@0.0.3: + resolution: {integrity: sha512-OuR+o7kHVe+x9RtIujPay7Uw3bvDZBZFSBXClEphZuSDLmZTqMdclasf4vFSsogC8baDz0eaC2NdO/2dlXHBKQ==} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + flow-parser@0.263.0: + resolution: {integrity: sha512-F0Tr7SUvZ4BQYglFOkr8rCTO5FPjCwMhm/6i57h40F80Oz/hzzkqte4lGO0vGJ7THQonuXcTyYqCdKkAwt5d2w==} + engines: {node: '>=0.4.0'} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.5: + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} + + for-in@1.0.2: + resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==} + engines: {node: '>=0.10.0'} + + foreground-child@3.3.1: + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} + + forever-agent@0.6.1: + resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} + + form-data@2.3.3: + resolution: {integrity: sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==} + engines: {node: '>= 0.12'} + + form-data@4.0.2: + resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==} + engines: {node: '>= 6'} + + forwarded@0.2.0: + resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} + engines: {node: '>= 0.6'} + + fragment-cache@0.2.1: + resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} + engines: {node: '>=0.10.0'} + + framer-motion@12.9.2: + resolution: {integrity: sha512-R0O3Jdqbfwywpm45obP+8sTgafmdEcUoShQTAV+rB5pi+Y1Px/FYL5qLLRe5tPtBdN1J4jos7M+xN2VV2oEAbQ==} + peerDependencies: + '@emotion/is-prop-valid': '*' + react: ^18.2.0 + react-dom: ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@emotion/is-prop-valid': + optional: true + react: + optional: true + react-dom: + optional: true + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fresh@2.0.0: + resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} + engines: {node: '>= 0.8'} + + from@0.1.7: + resolution: {integrity: sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==} + + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + + fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fs-extra@7.0.1: + resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==} + engines: {node: '>=6 <7 || >=8'} + + fs-extra@9.1.0: + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} + + fs-minipass@2.1.0: + resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==} + engines: {node: '>= 8'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@1.2.13: + resolution: {integrity: sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==} + engines: {node: '>= 4.0'} + os: [darwin] + deprecated: Upgrade to fsevents v2 to mitigate potential security issues + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} + + functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + + gauge@3.0.2: + resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==} + engines: {node: '>=10'} + deprecated: This package is no longer supported. + + gauge@4.0.4: + resolution: {integrity: sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + gensync@1.0.0-beta.2: + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} + + get-caller-file@2.0.5: + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} + + get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + + get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + + get-own-enumerable-property-symbols@3.0.2: + resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==} + + get-package-type@0.1.0: + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} + + get-port@5.1.1: + resolution: {integrity: sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==} + engines: {node: '>=8'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} + + get-tsconfig@4.10.0: + resolution: {integrity: sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==} + + get-value@2.0.6: + resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==} + engines: {node: '>=0.10.0'} + + getos@3.2.1: + resolution: {integrity: sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==} + + getpass@0.1.7: + resolution: {integrity: sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==} + + giget@1.2.5: + resolution: {integrity: sha512-r1ekGw/Bgpi3HLV3h1MRBIlSAdHoIMklpaQ3OQLFcRw9PwAj2rqigvIbg+dBUI51OxVI2jsEtDywDBjSiuf7Ug==} + hasBin: true + + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + + github-slugger@1.5.0: + resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} + + gl-matrix@3.4.3: + resolution: {integrity: sha512-wcCp8vu8FT22BnvKVPjXa/ICBWRq/zjFfdofZy1WSpQZpphblv12/bOQLBC1rMM7SGOFS9ltVmKOHil5+Ml7gA==} + + gl@6.0.2: + resolution: {integrity: sha512-yBbfpChOtFvg5D+KtMaBFvj6yt3vUnheNAH+UrQH2TfDB8kr0tERdL0Tjhe0W7xJ6jR6ftQBluTZR9jXUnKe8g==} + engines: {node: '>=14.0.0'} + + glob-parent@3.1.0: + resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob-promise@4.2.2: + resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==} + engines: {node: '>=12'} + peerDependencies: + glob: ^7.1.6 + + glob-to-regexp@0.4.1: + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + + glob@10.4.5: + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + hasBin: true + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported + + global-dirs@3.0.1: + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} + + global@4.4.0: + resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==} + + globals@11.12.0: + resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} + engines: {node: '>=4'} + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + glsl-tokenizer@2.1.5: + resolution: {integrity: sha512-XSZEJ/i4dmz3Pmbnpsy3cKh7cotvFlBiZnDOwnj/05EwNp2XrhQ4XKJxT7/pDt4kp4YcpRSKz8eTV7S+mwV6MA==} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + gunzip-maybe@1.4.2: + resolution: {integrity: sha512-4haO1M4mLO91PW57BMsDFf75UmwoRX0GkdD+Faw+Lr+r/OZrOCS0pIBwOL1xCKQqnQzbNFGgK2V2CpBUPeFNTw==} + hasBin: true + + gzip-size@7.0.0: + resolution: {integrity: sha512-O1Ld7Dr+nqPnmGpdhzLmMTQ4vAsD+rHwMm1NLUmoUFFymBOMKxCCrtDxqdBRYXdeEPEi3SyoR4TizJLQrnKBNA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} + hasBin: true + + hard-rejection@2.1.0: + resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==} + engines: {node: '>=6'} + + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} + + has-binary2@1.0.3: + resolution: {integrity: sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==} + + has-cors@1.1.0: + resolution: {integrity: sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==} + + has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + has-unicode@2.0.1: + resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} + + has-value@0.3.1: + resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==} + engines: {node: '>=0.10.0'} + + has-value@1.0.0: + resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==} + engines: {node: '>=0.10.0'} + + has-values@0.1.4: + resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==} + engines: {node: '>=0.10.0'} + + has-values@1.0.0: + resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==} + engines: {node: '>=0.10.0'} + + has@1.0.4: + resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} + engines: {node: '>= 0.4.0'} + + hash-base@3.0.5: + resolution: {integrity: sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==} + engines: {node: '>= 0.10'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + header-case@2.0.4: + resolution: {integrity: sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + hogan.js@3.0.2: + resolution: {integrity: sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==} + hasBin: true + + hoist-non-react-statics@3.3.2: + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + + hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + + hosted-git-info@4.1.0: + resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} + engines: {node: '>=10'} + + html-encoding-sniffer@3.0.0: + resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} + engines: {node: '>=12'} + + html-entities@2.6.0: + resolution: {integrity: sha512-kig+rMn/QOVRvr7c86gQ8lWXq+Hkv6CbAH1hLu+RG338StTpE8Z0b44SDVaqVu7HGKf27frdmUYEs9hTUX/cLQ==} + + html-tags@3.3.1: + resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==} + engines: {node: '>=8'} + + http-auth@3.1.3: + resolution: {integrity: sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==} + engines: {node: '>=4.6.1'} + + http-browserify@1.7.0: + resolution: {integrity: sha512-Irf/LJXmE3cBzU1eaR4+NEX6bmVLqt1wkmDiA7kBwH7zmb0D8kBAXsDmQ88hhj/qv9iEZKlyGx/hrMcFi8sOHw==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@1.6.3: + resolution: {integrity: sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==} + engines: {node: '>= 0.6'} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http-parser-js@0.5.9: + resolution: {integrity: sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw==} + + http-proxy-agent@5.0.0: + resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} + engines: {node: '>= 6'} + + http-proxy@1.18.1: + resolution: {integrity: sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==} + engines: {node: '>=8.0.0'} + + http-server@14.1.1: + resolution: {integrity: sha512-+cbxadF40UXd9T01zUHgA+rlo2Bg1Srer4+B4NwIHdaGxAGGv59nYRnGGDJ9LBk7alpS0US+J+bLLdQOOkJq4A==} + engines: {node: '>=12'} + hasBin: true + + http-signature@1.3.6: + resolution: {integrity: sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==} + engines: {node: '>=0.10'} + + https-browserify@1.0.0: + resolution: {integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==} + + https-proxy-agent@4.0.0: + resolution: {integrity: sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==} + engines: {node: '>= 6.0.0'} + + https-proxy-agent@5.0.1: + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} + + human-signals@1.1.1: + resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} + engines: {node: '>=8.12.0'} + + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + + humanize-ms@1.2.1: + resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==} + + hyperdyperid@1.2.0: + resolution: {integrity: sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==} + engines: {node: '>=10.18'} + + hyphenate-style-name@1.1.0: + resolution: {integrity: sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw==} + + iconv-lite@0.4.24: + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} + + iconv-lite@0.6.3: + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} + + idb@7.1.1: + resolution: {integrity: sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + image-size@0.7.5: + resolution: {integrity: sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==} + engines: {node: '>=6.9.0'} + hasBin: true + + immediate@3.0.6: + resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-meta-resolve@3.1.1: + resolution: {integrity: sha512-qeywsE/KC3w9Fd2ORrRDUw6nS/nLwZpXgfrOc2IILvZYnCaEMd+D56Vfg9k4G29gIeVi3XKql1RQatME8iYsiw==} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + + indent-string@5.0.0: + resolution: {integrity: sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==} + engines: {node: '>=12'} + + indexof@0.0.1: + resolution: {integrity: sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==} + + infer-owner@1.0.4: + resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.3: + resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + ini@1.3.8: + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + + ini@2.0.0: + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} + + inline-style-prefixer@7.0.1: + resolution: {integrity: sha512-lhYo5qNTQp3EvSSp3sRvXMbVQTLrvGV6DycRMJ5dm2BLMiJ30wpXKdDdgX+GmJZ5uQMucwRKHamXSst3Sj/Giw==} + + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} + + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + + ipaddr.js@1.9.1: + resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} + engines: {node: '>= 0.10'} + + is-absolute-url@3.0.3: + resolution: {integrity: sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==} + engines: {node: '>=8'} + + is-accessor-descriptor@1.0.1: + resolution: {integrity: sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==} + engines: {node: '>= 0.10'} + + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} + engines: {node: '>= 0.4'} + + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} + + is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + + is-async-function@2.1.1: + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} + + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} + + is-binary-path@1.0.1: + resolution: {integrity: sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==} + engines: {node: '>=0.10.0'} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-boolean-object@1.2.2: + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} + + is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + + is-builtin-module@3.2.1: + resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} + engines: {node: '>=6'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-ci@3.0.1: + resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} + hasBin: true + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + is-data-descriptor@1.0.1: + resolution: {integrity: sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} + + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} + + is-deflate@1.0.0: + resolution: {integrity: sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ==} + + is-descriptor@0.1.7: + resolution: {integrity: sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==} + engines: {node: '>= 0.4'} + + is-descriptor@1.0.3: + resolution: {integrity: sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==} + engines: {node: '>= 0.4'} + + is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + + is-extendable@0.1.1: + resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} + engines: {node: '>=0.10.0'} + + is-extendable@1.0.1: + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} + + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + + is-function@1.0.2: + resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==} + + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} + + is-glob@3.1.0: + resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-gzip@1.0.0: + resolution: {integrity: sha512-rcfALRIb1YewtnksfRIHGcIY93QnK8BIQ/2c9yDYcG/Y6+vRoJuTWBmmSEbyLLYtXm7q35pHOHbZFQBaLrhlWQ==} + engines: {node: '>=0.10.0'} + + is-installed-globally@0.4.0: + resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} + engines: {node: '>=10'} + + is-interactive@1.0.0: + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} + + is-lambda@1.0.1: + resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} + + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + + is-module@1.0.0: + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + + is-nan@1.3.2: + resolution: {integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==} + engines: {node: '>= 0.4'} + + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} + + is-number@3.0.0: + resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-obj@1.0.1: + resolution: {integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==} + engines: {node: '>=0.10.0'} + + is-path-cwd@2.2.0: + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + is-plain-obj@1.1.0: + resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==} + engines: {node: '>=0.10.0'} + + is-plain-obj@4.1.0: + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} + + is-plain-object@2.0.4: + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} + + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + + is-regexp@1.0.0: + resolution: {integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==} + engines: {node: '>=0.10.0'} + + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} + + is-stream@2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} + + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} + + is-typedarray@1.0.0: + resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} + + is-unicode-supported@0.1.0: + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + + is-weakref@1.1.1: + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} + + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} + + is-windows@1.0.2: + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} + + is-wsl@1.1.0: + resolution: {integrity: sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==} + engines: {node: '>=4'} + + is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + + isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} + + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + + isarray@2.0.1: + resolution: {integrity: sha512-c2cu3UxbI+b6kR3fy0nRnAhodsvR9dx7U5+znCOzdj6IfP3upFURTr0Xl5BlQZNKZjEtxrmVyfSdeE3O57smoQ==} + + isarray@2.0.5: + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + isobject@2.1.0: + resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==} + engines: {node: '>=0.10.0'} + + isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} + + isstream@0.1.2: + resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==} + + istanbul-lib-coverage@3.2.2: + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} + + istanbul-lib-instrument@5.2.1: + resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} + engines: {node: '>=8'} + + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} + + jackspeak@3.4.3: + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true + + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jimp@0.10.3: + resolution: {integrity: sha512-meVWmDMtyUG5uYjFkmzu0zBgnCvvxwWNi27c4cg55vWNVC9ES4Lcwb+ogx+uBBQE3Q+dLKjXaLl0JVW+nUNwbQ==} + + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} + hasBin: true + + joi@17.13.3: + resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + + jpeg-js@0.3.7: + resolution: {integrity: sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==} + + js-base64@2.6.4: + resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} + + js-cookie@2.2.1: + resolution: {integrity: sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==} + + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + js-yaml@3.14.1: + resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} + hasBin: true + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + jsbn@0.1.1: + resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==} + + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + + jscodeshift@0.15.2: + resolution: {integrity: sha512-FquR7Okgmc4Sd0aEDwqho3rEiKR3BdvuG9jfdHjLJ6JQoWSMpavug3AoIfnfWhxFlf+5pzQh8qjqz0DWFrNQzA==} + hasBin: true + peerDependencies: + '@babel/preset-env': ^7.1.6 + peerDependenciesMeta: + '@babel/preset-env': + optional: true + + jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + + jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-parse-better-errors@1.0.2: + resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} + + json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + json-schema@0.4.0: + resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + json5@1.0.2: + resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} + hasBin: true + + json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + jsonpointer@5.0.1: + resolution: {integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==} + engines: {node: '>=0.10.0'} + + jsonwebtoken@9.0.2: + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} + + jsprim@2.0.2: + resolution: {integrity: sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==} + engines: {'0': node >=0.6.0} + + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + + jszip@3.10.1: + resolution: {integrity: sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==} + + jwa@1.4.1: + resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} + + jws@3.2.2: + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + kind-of@3.2.2: + resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==} + engines: {node: '>=0.10.0'} + + kind-of@4.0.0: + resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==} + engines: {node: '>=0.10.0'} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + + kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + + lazy-ass@1.6.0: + resolution: {integrity: sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==} + engines: {node: '> 0.8'} + + lazy-universal-dotenv@4.0.0: + resolution: {integrity: sha512-aXpZJRnTkpK6gQ/z4nk+ZBLd/Qdp118cvPruLSIQzQNRhKwEcdXCOzXuF55VDqIiuAaY3UGZ10DJtvZzDcvsxg==} + engines: {node: '>=14.0.0'} + + leven@3.1.0: + resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} + engines: {node: '>=6'} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + lie@3.3.0: + resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} + + lil-gui@0.17.0: + resolution: {integrity: sha512-MVBHmgY+uEbmJNApAaPbtvNh1RCAeMnKym82SBjtp5rODTYKWtM+MXHCifLe2H2Ti1HuBGBtK/5SyG4ShQ3pUQ==} + + lil-gui@0.18.2: + resolution: {integrity: sha512-DgdrLy3/KGC0PiQLKgOcJMPItP4xY4iWgJ9+91Zaxfr8GCTmMps05QS9w9jW7yspILlbscbquwjOwxmWnSx5Uw==} + + lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + + linkify-it@5.0.0: + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + + listr2@3.14.0: + resolution: {integrity: sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==} + engines: {node: '>=10.0.0'} + peerDependencies: + enquirer: '>= 2.3.0 < 3' + peerDependenciesMeta: + enquirer: + optional: true + + live-server@1.2.2: + resolution: {integrity: sha512-t28HXLjITRGoMSrCOv4eZ88viHaBVIjKjdI5PO92Vxlu+twbk6aE0t7dVIaz6ZWkjPilYFV6OSdMYl9ybN2B4w==} + engines: {node: '>=0.10.0'} + hasBin: true + + load-bmfont@1.4.2: + resolution: {integrity: sha512-qElWkmjW9Oq1F9EI5Gt7aD9zcdHb9spJCW1L/dmPf7KzCCEJxq8nhHz5eCgI9aMf7vrG/wyaCqdsI+Iy9ZTlog==} + + load-json-file@4.0.0: + resolution: {integrity: sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==} + engines: {node: '>=4'} + + local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + + locate-path@3.0.0: + resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==} + engines: {node: '>=6'} + + locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.21: + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + + lodash.compact@3.0.1: + resolution: {integrity: sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==} + + lodash.debounce@4.0.8: + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + + lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. + + lodash.includes@4.3.0: + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + + lodash.isboolean@3.0.3: + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + + lodash.isinteger@4.0.4: + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + + lodash.isnumber@3.0.3: + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + + lodash.isplainobject@4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + + lodash.isstring@4.0.1: + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash.once@4.1.1: + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + + lodash.reduce@4.6.0: + resolution: {integrity: sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==} + + lodash.sortby@4.7.0: + resolution: {integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + log-symbols@4.1.0: + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} + + log-update@4.0.0: + resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} + engines: {node: '>=10'} + + long@5.3.1: + resolution: {integrity: sha512-ka87Jz3gcx/I7Hal94xaN2tZEOPoUOEVftkQqZx2EeQRN7LGdfLlI3FvZ+7WDplm+vK2Urx9ULrvSowtdCieng==} + + longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + + loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + + lower-case@2.0.2: + resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} + + lru-cache@10.4.3: + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + + lru-cache@5.1.1: + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + macaddress@0.5.3: + resolution: {integrity: sha512-vGBKTA+jwM4KgjGZ+S/8/Mkj9rWzePyGY6jManXPGhiWu63RYwW8dKPyk5koP+8qNVhPhHgFa1y/MJ4wrjsNrg==} + + magic-string@0.25.9: + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + + magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} + + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + + make-dir@2.1.0: + resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} + engines: {node: '>=6'} + + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + + make-fetch-happen@10.2.1: + resolution: {integrity: sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + makeerror@1.0.12: + resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + + map-cache@0.2.2: + resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} + engines: {node: '>=0.10.0'} + + map-obj@1.0.1: + resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} + engines: {node: '>=0.10.0'} + + map-obj@4.3.0: + resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} + engines: {node: '>=8'} + + map-or-similar@1.5.0: + resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==} + + map-stream@0.1.0: + resolution: {integrity: sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==} + + map-visit@1.0.0: + resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} + engines: {node: '>=0.10.0'} + + markdown-it@14.1.0: + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + hasBin: true + + markdown-to-jsx@7.7.4: + resolution: {integrity: sha512-1bSfXyBKi+EYS3YY+e0Csuxf8oZ3decdfhOav/Z7Wrk89tjudyL5FOmwZQUoy0/qVXGUl+6Q3s2SWtpDEWITfQ==} + engines: {node: '>= 10'} + peerDependencies: + react: ^18.2.0 + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + mc-assets@0.2.62: + resolution: {integrity: sha512-RYZeD1+joNlPuUpi+tIWkbP0ieVJr+R6IFkI6/8juhSxx9zE4osoSmteybrfspGm8A6u+YbbY1epqRKEMwVR6Q==} + engines: {node: '>=18.0.0'} + + mc-bridge@0.1.3: + resolution: {integrity: sha512-H9jPt2xEU77itC27dSz3qazHYqN9qVsv4HgMPozg7RqQ1uwgXmEa+ojKIlDtXf/TLJsG6Kv4EbzGa8a1Wh72uA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + minecraft-data: 3.98.0 + + mcraft-fun-mineflayer@0.1.23: + resolution: {integrity: sha512-qmI1rQQ0Ro5zJdi99rClWLF+mS9JZffgNX2vyWWesS3Hsk3Xblp/8swYTJKHSaFpNgzkVfXV92fEIrBqeH6iKA==} + version: 0.1.23 + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + peerDependencies: + '@roamhq/wrtc': '*' + mineflayer: '>=4.x' + peerDependenciesMeta: + '@roamhq/wrtc': + optional: true + + md5-file@4.0.0: + resolution: {integrity: sha512-UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==} + engines: {node: '>=6.0'} + hasBin: true + + md5.js@1.3.5: + resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==} + + md5@2.3.0: + resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==} + + mdast-util-definitions@4.0.0: + resolution: {integrity: sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==} + + mdast-util-from-markdown@2.0.2: + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + + mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + + mdast-util-to-markdown@2.1.2: + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + + mdast-util-to-string@1.1.0: + resolution: {integrity: sha512-jVU0Nr2B9X3MU4tSK7JP1CMkSvOj7X5l/GboG1tKRw52lLF1x2Ju92Ms9tNetCcbfX3hzlM73zYo2NKkWSfF/A==} + + mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + + mdn-data@2.0.14: + resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} + + mdurl@2.0.0: + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + + media-typer@0.3.0: + resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} + engines: {node: '>= 0.6'} + + memfs@4.17.0: + resolution: {integrity: sha512-4eirfZ7thblFmqFjywlTmuWVSvccHAJbn1r8qQLzmTO11qcqpohOjmY2mFce6x7x7WtskzRqApPD0hv+Oa74jg==} + engines: {node: '>= 4.0.0'} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + + memoizerific@1.11.3: + resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==} + + memorystream@0.3.1: + resolution: {integrity: sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==} + engines: {node: '>= 0.10.0'} + + meow@10.1.5: + resolution: {integrity: sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + merge-descriptors@1.0.3: + resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==} + + merge-stream@2.0.0: + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + merge@1.2.1: + resolution: {integrity: sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==} + + meshoptimizer@0.18.1: + resolution: {integrity: sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==} + + methods@1.1.2: + resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} + engines: {node: '>= 0.6'} + + micromark-core-commonmark@2.0.3: + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + + micromark-factory-destination@2.0.1: + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + + micromark-factory-label@2.0.1: + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + + micromark-factory-space@2.0.1: + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + + micromark-factory-title@2.0.1: + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + + micromark-factory-whitespace@2.0.1: + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + + micromark-util-character@2.1.1: + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + + micromark-util-chunked@2.0.1: + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + + micromark-util-classify-character@2.0.1: + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + + micromark-util-combine-extensions@2.0.1: + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + + micromark-util-decode-numeric-character-reference@2.0.2: + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + + micromark-util-decode-string@2.0.1: + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + + micromark-util-encode@2.0.1: + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + + micromark-util-html-tag-name@2.0.1: + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + + micromark-util-normalize-identifier@2.0.1: + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + + micromark-util-resolve-all@2.0.1: + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + + micromark-util-sanitize-uri@2.0.1: + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + + micromark-util-subtokenize@2.1.0: + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + + micromark-util-symbol@2.0.1: + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + + micromark-util-types@2.0.2: + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + + micromark@4.0.2: + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + + micromatch@3.1.10: + resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==} + engines: {node: '>=0.10.0'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + miller-rabin@4.0.1: + resolution: {integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==} + hasBin: true + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-db@1.54.0: + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mime-types@3.0.1: + resolution: {integrity: sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==} + engines: {node: '>= 0.6'} + + mime@1.6.0: + resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==} + engines: {node: '>=4'} + hasBin: true + + mime@2.6.0: + resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} + engines: {node: '>=4.0.0'} + hasBin: true + + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + + mimic-response@2.1.0: + resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} + engines: {node: '>=8'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + min-document@2.19.0: + resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==} + + min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + + minecraft-data@3.98.0: + resolution: {integrity: sha512-JAPqJ/TZoxMUlAPPdWUh1v5wdqvYGFSZ4rW9bUtmaKBkGpomDSjw4V02ocBqbxKJvcTtmc5nM/LfN9/0DDqHrQ==} + + minecraft-folder-path@1.2.0: + resolution: {integrity: sha512-qaUSbKWoOsH9brn0JQuBhxNAzTDMwrOXorwuRxdJKKKDYvZhtml+6GVCUrY5HRiEsieBEjCUnhVpDuQiKsiFaw==} + + minecraft-inventory-gui@https://codeload.github.com/zardoy/minecraft-inventory-gui/tar.gz/89c33d396f3fde4804c71f4be3c203ade1833b41: + resolution: {tarball: https://codeload.github.com/zardoy/minecraft-inventory-gui/tar.gz/89c33d396f3fde4804c71f4be3c203ade1833b41} + version: 1.0.1 + + minecraft-protocol@https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9: + resolution: {tarball: https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9} + version: 1.62.0 + engines: {node: '>=22'} + + minecraft-wrap@1.6.0: + resolution: {integrity: sha512-A1GjIR72x9H9cEaxAQsXZe5uhw7CPgq1pGwYkdbPe6mQraePinmj/jRIuntXYWEKrYamwQFT3igIafA+PEG11w==} + hasBin: true + + minecrafthawkeye@1.3.9: + resolution: {integrity: sha512-YIDHTvljQjsJH4cEcbF02/ehNRUrbzEiL/quQmdEU8ruv69R4bwHqmBB8O9FyhpQgNppmNTs3pK8h4J0/MYGpQ==} + + mineflayer-item-map-downloader@https://codeload.github.com/zardoy/mineflayer-item-map-downloader/tar.gz/a8d210ecdcf78dd082fa149a96e1612cc9747824: + resolution: {tarball: https://codeload.github.com/zardoy/mineflayer-item-map-downloader/tar.gz/a8d210ecdcf78dd082fa149a96e1612cc9747824} + version: 1.2.0 + + mineflayer-mouse@0.1.21: + resolution: {integrity: sha512-1XTVuw3twIrEcqQ1QRSB8NcStIUEZ+tbxiAG6rOrN/9M4thhtlS5PTJzFdmdrcYgWEBLvuOdJszaKE5zFfiXhg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + mineflayer@https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659: + resolution: {tarball: https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659} + version: 8.0.0 + engines: {node: '>=22'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@5.1.6: + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + minimist-options@4.1.0: + resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} + engines: {node: '>= 6'} + + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + + minipass-collect@1.0.2: + resolution: {integrity: sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==} + engines: {node: '>= 8'} + + minipass-fetch@2.1.2: + resolution: {integrity: sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + minipass-flush@1.0.5: + resolution: {integrity: sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==} + engines: {node: '>= 8'} + + minipass-pipeline@1.2.4: + resolution: {integrity: sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==} + engines: {node: '>=8'} + + minipass-sized@1.0.3: + resolution: {integrity: sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==} + engines: {node: '>=8'} + + minipass@3.3.6: + resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==} + engines: {node: '>=8'} + + minipass@5.0.0: + resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} + engines: {node: '>=8'} + + minipass@7.1.2: + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} + + minizlib@2.1.2: + resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} + engines: {node: '>= 8'} + + mixin-deep@1.3.2: + resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==} + engines: {node: '>=0.10.0'} + + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + + mkdirp@0.3.0: + resolution: {integrity: sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==} + deprecated: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) + + mkdirp@0.5.6: + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + hasBin: true + + mkdirp@1.0.4: + resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} + engines: {node: '>=10'} + hasBin: true + + mkdirp@2.1.6: + resolution: {integrity: sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A==} + engines: {node: '>=10'} + hasBin: true + + mlly@1.7.4: + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + + mojangson@2.0.4: + resolution: {integrity: sha512-HYmhgDjr1gzF7trGgvcC/huIg2L8FsVbi/KacRe6r1AswbboGVZDS47SOZlomPuMWvZLas8m9vuHHucdZMwTmQ==} + + monaco-editor@0.52.2: + resolution: {integrity: sha512-GEQWEZmfkOGLdd3XK8ryrfWz3AIP8YymVXiPHEdewrUq7mh0qrKrfHLNCXcbB6sTnMLnOZ3ztSiKcciFUkIJwQ==} + + moo@0.5.2: + resolution: {integrity: sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==} + + morgan@1.10.0: + resolution: {integrity: sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==} + engines: {node: '>= 0.8.0'} + + motion-dom@12.9.1: + resolution: {integrity: sha512-xqXEwRLDYDTzOgXobSoWtytRtGlf7zdkRfFbrrdP7eojaGQZ5Go4OOKtgnx7uF8sAkfr1ZjMvbCJSCIT2h6fkQ==} + + motion-utils@12.8.3: + resolution: {integrity: sha512-GYVauZEbca8/zOhEiYOY9/uJeedYQld6co/GJFKOy//0c/4lDqk0zB549sBYqqV2iMuX+uHrY1E5zd8A2L+1Lw==} + + ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + + nan@2.22.2: + resolution: {integrity: sha512-DANghxFkS1plDdRsX0X9pm0Z6SJNN6gBdtXfanwoZ8hooC5gosGFSBGRYHUVPz1asKA/kMRqDRdHrluZ61SpBQ==} + + nano-css@5.6.2: + resolution: {integrity: sha512-+6bHaC8dSDGALM1HJjOHVXpuastdu2xFoZlC77Jh4cg+33Zcgm+Gxd+1xsnpZK14eyHObSp82+ll5y3SX75liw==} + peerDependencies: + react: ^18.2.0 + react-dom: '*' + + nanoid@3.3.9: + resolution: {integrity: sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + nanomatch@1.2.13: + resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==} + engines: {node: '>=0.10.0'} + + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==} + + natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + nearley@2.20.1: + resolution: {integrity: sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==} + hasBin: true + + negotiator@0.6.3: + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} + + negotiator@0.6.4: + resolution: {integrity: sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==} + engines: {node: '>= 0.6'} + + neo-async@2.6.2: + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + + net-browserify@https://codeload.github.com/zardoy/prismarinejs-net-browserify/tar.gz/e754999ffdea67853bc9b10553b5e9908b40f618: + resolution: {tarball: https://codeload.github.com/zardoy/prismarinejs-net-browserify/tar.gz/e754999ffdea67853bc9b10553b5e9908b40f618} + version: 0.2.4 + + nice-try@1.0.5: + resolution: {integrity: sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==} + + no-case@3.0.4: + resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + + node-abi@3.74.0: + resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==} + engines: {node: '>=10'} + + node-addon-api@5.1.0: + resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==} + + node-canvas-webgl@0.3.0: + resolution: {integrity: sha512-wDRCTEE2TCqKDeSef5cNgtLv8kgjRlnFN3aYgB9yni0kHRNnKBSSP93lT8VIV5GuMWiy5KNXBU0ilyWL5wTvFg==} + + node-dir@0.1.17: + resolution: {integrity: sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==} + engines: {node: '>= 0.10.5'} + + node-fetch-native@1.6.6: + resolution: {integrity: sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + node-gyp@9.4.1: + resolution: {integrity: sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==} + engines: {node: ^12.13 || ^14.13 || >=16} + hasBin: true + + node-gzip@1.1.2: + resolution: {integrity: sha512-ZB6zWpfZHGtxZnPMrJSKHVPrRjURoUzaDbLFj3VO70mpLTW5np96vXyHwft4Id0o+PYIzgDkBUjIzaNHhQ8srw==} + + node-html-parser@6.1.13: + resolution: {integrity: sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==} + + node-int64@0.4.0: + resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} + + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + + node-rsa@0.4.2: + resolution: {integrity: sha512-Bvso6Zi9LY4otIZefYrscsUpo2mUpiAVIEmSZV2q41sP8tHZoert3Yu6zv4f/RXJqMNZQKCtnhDugIuCma23YA==} + + node-rsa@1.1.1: + resolution: {integrity: sha512-Jd4cvbJMryN21r5HgxQOpMEqv+ooke/korixNNK3mGqfGJmy0M77WDDzo/05969+OkMy3XW1UuZsSmW9KQm7Fw==} + + nopt@1.0.10: + resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==} + hasBin: true + + nopt@5.0.0: + resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} + engines: {node: '>=6'} + hasBin: true + + nopt@6.0.0: + resolution: {integrity: sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + hasBin: true + + normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + + normalize-package-data@3.0.3: + resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==} + engines: {node: '>=10'} + + normalize-path@2.1.1: + resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} + engines: {node: '>=0.10.0'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + npm-run-all@4.1.5: + resolution: {integrity: sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==} + engines: {node: '>= 4'} + hasBin: true + + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + + npmlog@5.0.1: + resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==} + deprecated: This package is no longer supported. + + npmlog@6.0.2: + resolution: {integrity: sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + deprecated: This package is no longer supported. + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + nypm@0.5.4: + resolution: {integrity: sha512-X0SNNrZiGU8/e/zAB7sCTtdxWTMSIO73q+xuKgglm2Yvzwlo8UoC5FNySQFCvl84uPaeADkqHUZUkWy4aH4xOA==} + engines: {node: ^14.16.0 || >=16.10.0} + hasBin: true + + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + + object-copy@0.1.0: + resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==} + engines: {node: '>=0.10.0'} + + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} + + object-is@1.1.6: + resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + engines: {node: '>= 0.4'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + object-visit@1.0.1: + resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==} + engines: {node: '>=0.10.0'} + + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} + + object.entries@1.1.9: + resolution: {integrity: sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.pick@1.3.0: + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} + + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} + engines: {node: '>= 0.4'} + + omggif@1.0.10: + resolution: {integrity: sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==} + + on-finished@2.3.0: + resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==} + engines: {node: '>= 0.8'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + on-headers@1.0.2: + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + + open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + + opener@1.5.2: + resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} + hasBin: true + + opn@6.0.0: + resolution: {integrity: sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==} + engines: {node: '>=8'} + deprecated: The package has been renamed to `open` + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + ora@5.4.1: + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} + + orderedmap@2.1.1: + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + + os-browserify@0.3.0: + resolution: {integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==} + + ospath@1.2.2: + resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==} + + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} + + p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + p-locate@3.0.0: + resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==} + engines: {node: '>=6'} + + p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + p-map@4.0.0: + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} + + p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + + pako@0.2.9: + resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} + + pako@1.0.11: + resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==} + + pako@2.1.0: + resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} + + param-case@3.0.4: + resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + parse-asn1@5.1.7: + resolution: {integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==} + engines: {node: '>= 0.10'} + + parse-bmfont-ascii@1.0.6: + resolution: {integrity: sha512-U4RrVsUFCleIOBsIGYOMKjn9PavsGOXxbvYGtMOEfnId0SVNsgehXh1DxUdVPLoxd5mvcEtvmKs2Mmf0Mpa1ZA==} + + parse-bmfont-binary@1.0.6: + resolution: {integrity: sha512-GxmsRea0wdGdYthjuUeWTMWPqm2+FAd4GI8vCvhgJsFnoGhTrLhXDDupwTo7rXVAgaLIGoVHDZS9p/5XbSqeWA==} + + parse-bmfont-xml@1.1.6: + resolution: {integrity: sha512-0cEliVMZEhrFDwMh4SxIyVJpqYoOWDJ9P895tFuS+XuNzI5UBmBk5U5O4KuJdTnZpSBI4LFA2+ZiJaiwfSwlMA==} + + parse-headers@2.0.5: + resolution: {integrity: sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA==} + + parse-json@4.0.0: + resolution: {integrity: sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==} + engines: {node: '>=4'} + + parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + + parseqs@0.0.6: + resolution: {integrity: sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==} + + parseuri@0.0.6: + resolution: {integrity: sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==} + + parseurl@1.3.3: + resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} + engines: {node: '>= 0.8'} + + pascal-case@3.1.2: + resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} + + pascalcase@0.1.1: + resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} + engines: {node: '>=0.10.0'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-case@3.0.4: + resolution: {integrity: sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==} + + path-dirname@1.0.2: + resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} + + path-exists-cli@2.0.0: + resolution: {integrity: sha512-qGr0A87KYCznmvabblxyxnzA/MtPZ28wH+4SCMP4tjTFAbzqwvs5xpUZExAYzq5OgHe5vIswzdH5iosCb8YF/Q==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + + path-exists@3.0.0: + resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==} + engines: {node: '>=4'} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-exists@5.0.0: + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@2.0.1: + resolution: {integrity: sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==} + engines: {node: '>=4'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + path-scurry@1.11.1: + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} + + path-to-regexp@0.1.12: + resolution: {integrity: sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==} + + path-type@3.0.0: + resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==} + engines: {node: '>=4'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + pathe@1.1.2: + resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} + + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + + pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + + pause-stream@0.0.11: + resolution: {integrity: sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==} + + pbkdf2@3.1.2: + resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==} + engines: {node: '>=0.12'} + + peek-stream@1.1.3: + resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} + + peerjs-js-binarypack@2.1.0: + resolution: {integrity: sha512-YIwCC+pTzp3Bi8jPI9UFKO0t0SLo6xALnHkiNt/iUFmUUZG0fEEmEyFKvjsDKweiFitzHRyhuh6NvyJZ4nNxMg==} + engines: {node: '>= 14.0.0'} + + peerjs@1.5.4: + resolution: {integrity: sha512-yFsoLMnurJKlQbx6kVSBpOp+AlNldY1JQS2BrSsHLKCZnq6t7saHleuHM5svuLNbQkUJXHLF3sKOJB1K0xulOw==} + engines: {node: '>= 14'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + performance-now@2.1.0: + resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==} + + phin@2.9.3: + resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + phin@3.7.1: + resolution: {integrity: sha512-GEazpTWwTZaEQ9RhL7Nyz0WwqilbqgLahDM3D0hxWwmVDI52nXEybHqiN6/elwpkJBhcuj+WbBu+QfT0uhPGfQ==} + engines: {node: '>= 8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + + pidtree@0.3.1: + resolution: {integrity: sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==} + engines: {node: '>=0.10'} + hasBin: true + + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + + pify@3.0.0: + resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==} + engines: {node: '>=4'} + + pify@4.0.1: + resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} + engines: {node: '>=6'} + + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + + pixelarticons@1.8.1: + resolution: {integrity: sha512-4taoDCleft9RtzVHLA73VDnRBwJNqlwbW8ShO6S0G9b+bM5ArGe1MVFW9xpromuPvQgVUYCSjRxNAQuNtADqyA==} + + pixelmatch@4.0.2: + resolution: {integrity: sha512-J8B6xqiO37sU/gkcMglv6h5Jbd9xNER7aHzpfRdNmV4IbQBzBpe4l9XmbG+xPF/znacgu2jfEw+wHffaq/YkXA==} + hasBin: true + + pkg-dir@3.0.0: + resolution: {integrity: sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==} + engines: {node: '>=6'} + + pkg-dir@4.2.0: + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} + + pkg-dir@5.0.0: + resolution: {integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==} + engines: {node: '>=10'} + + pkg-types@1.3.1: + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + + pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + + pngjs@3.4.0: + resolution: {integrity: sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==} + engines: {node: '>=4.0.0'} + + polished@4.3.1: + resolution: {integrity: sha512-OBatVyC/N7SCW/FaDHrSd+vn0o5cS855TOmYi4OkdWUMSJCET/xip//ch8xGUvtr3i44X9LVyWwQlRMTN3pwSA==} + engines: {node: '>=10'} + + poly-decomp@0.3.0: + resolution: {integrity: sha512-hWeBxGzPYiybmI4548Fca7Up/0k1qS5+79cVHI9+H33dKya5YNb9hxl0ZnDaDgvrZSuYFBhkCK/HOnqN7gefkQ==} + + portfinder@1.0.33: + resolution: {integrity: sha512-+2jndHT63cL5MdQOwDm9OT2dIe11zVpjV+0GGRXdtO1wpPxv260NfVqoEXtYAi/shanmm3W4+yLduIe55ektTw==} + engines: {node: '>= 0.12.0'} + + posix-character-classes@0.1.1: + resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} + engines: {node: '>=0.10.0'} + + possible-typed-array-names@1.1.0: + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + + potpack@1.0.2: + resolution: {integrity: sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ==} + + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==} + engines: {node: '>=10'} + hasBin: true + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@1.19.1: + resolution: {integrity: sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==} + engines: {node: '>=4'} + hasBin: true + + prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} + engines: {node: '>=10.13.0'} + hasBin: true + + pretty-bytes@5.6.0: + resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} + engines: {node: '>=6'} + + pretty-bytes@6.1.1: + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} + + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + pretty-hrtime@1.0.3: + resolution: {integrity: sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==} + engines: {node: '>= 0.8'} + + prismarine-auth@2.7.0: + resolution: {integrity: sha512-L8wTF6sdtnN6hViPNy+Nx39a8iQBwR5iO92AWCiym5cSXp/92pmnuwnTdcmNDWyqq6zY4hbibVGYhgLA1Ox8sQ==} + + prismarine-biome@1.3.0: + resolution: {integrity: sha512-GY6nZxq93mTErT7jD7jt8YS1aPrOakbJHh39seYsJFXvueIOdHAmW16kYQVrTVMW5MlWLQVxV/EquRwOgr4MnQ==} + peerDependencies: + minecraft-data: 3.98.0 + prismarine-registry: ^1.1.0 + + prismarine-block@https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9: + resolution: {tarball: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9} + version: 1.21.0 + + prismarine-chat@1.11.0: + resolution: {integrity: sha512-VJT/MWYB3qoiznUhrgvSQh76YFpzpCZpY85kJKxHLbd3UVoM0wsfs43Eg8dOltiZG92wc5/DTMLlT07TEeoa9w==} + + prismarine-chunk@https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f: + resolution: {tarball: https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f} + version: 1.38.1 + engines: {node: '>=14'} + + prismarine-entity@2.5.0: + resolution: {integrity: sha512-nRPCawUwf9r3iKqi4I7mZRlir1Ix+DffWYdWq6p/KNnmiXve+xHE5zv8XCdhZlUmOshugHv5ONl9o6ORAkCNIA==} + + prismarine-item@1.17.0: + resolution: {integrity: sha512-wN1OjP+f+Uvtjo3KzeCkVSy96CqZ8yG7cvuvlGwcYupQ6ct7LtNkubHp0AHuLMJ0vbbfAC0oZ2bWOgI1DYp8WA==} + + prismarine-nbt@2.7.0: + resolution: {integrity: sha512-Du9OLQAcCj3y29YtewOJbbV4ARaSUEJiTguw0PPQbPBy83f+eCyDRkyBpnXTi/KPyEpgYCzsjGzElevLpFoYGQ==} + + prismarine-physics@https://codeload.github.com/zardoy/prismarine-physics/tar.gz/353e25b800149393f40539ec381218be44cbb03b: + resolution: {tarball: https://codeload.github.com/zardoy/prismarine-physics/tar.gz/353e25b800149393f40539ec381218be44cbb03b} + version: 1.9.0 + + prismarine-provider-anvil@https://codeload.github.com/zardoy/prismarine-provider-anvil/tar.gz/1d548fac63fe977c8281f0a9a522b37e4d92d0b7: + resolution: {tarball: https://codeload.github.com/zardoy/prismarine-provider-anvil/tar.gz/1d548fac63fe977c8281f0a9a522b37e4d92d0b7} + version: 2.8.0 + + prismarine-realms@1.3.2: + resolution: {integrity: sha512-5apl9Ru8veTj5q2OozRc4GZOuSIcs3yY4UEtALiLKHstBe8bRw8vNlaz4Zla3jsQ8yP/ul1b1IJINTRbocuA6g==} + + prismarine-recipe@1.3.1: + resolution: {integrity: sha512-xfa9E9ACoaDi+YzNQ+nk8kWSIqt5vSZOOCHIT+dTXscf/dng2HaJ/59uwe1D/jvOkAd2OvM6RRJM6fFe0q/LDA==} + peerDependencies: + prismarine-registry: ^1.4.0 + + prismarine-registry@1.11.0: + resolution: {integrity: sha512-uTvWE+bILxYv4i5MrrlxPQ0KYWINv1DJ3P2570GLC8uCdByDiDLBFfVyk4BrqOZBlDBft9CnaJMeOsC1Ly1iXw==} + + prismarine-schematic@1.2.3: + resolution: {integrity: sha512-Mwpn43vEHhm3aw3cPhJjWqztkW+nX+QLajDHlTask8lEOTGl1WmpvFja4iwiws4GIvaC8x0Foptf4uvDsnjrAg==} + + prismarine-windows@2.9.0: + resolution: {integrity: sha512-fm4kOLjGFPov7TEJRmXHoiPabxIQrG36r2mDjlNxfkcLfMHFb3/1ML6mp4iRQa7wL0GK4DIAyiBqCWoeWDxARg==} + + prismarine-world@https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c: + resolution: {tarball: https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c} + version: 3.6.3 + engines: {node: '>=8.0.0'} + + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + + process@https://codeload.github.com/PrismarineJS/node-process/tar.gz/380d0b4f4c86f1b65b216c311bf00431f314e88e: + resolution: {tarball: https://codeload.github.com/PrismarineJS/node-process/tar.gz/380d0b4f4c86f1b65b216c311bf00431f314e88e} + version: 0.11.10 + engines: {node: '>= 0.6.0'} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + promise-inflight@1.0.1: + resolution: {integrity: sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==} + peerDependencies: + bluebird: '*' + peerDependenciesMeta: + bluebird: + optional: true + + promise-queue@2.2.5: + resolution: {integrity: sha512-p/iXrPSVfnqPft24ZdNNLECw/UrtLTpT3jpAAMzl/o5/rDsGCPo3/CQS2611flL6LkoEJ3oQZw7C8Q80ZISXRQ==} + engines: {node: '>= 0.8.0'} + + promise-retry@2.0.1: + resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==} + engines: {node: '>=10'} + + prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + + prosemirror-commands@1.7.0: + resolution: {integrity: sha512-6toodS4R/Aah5pdsrIwnTYPEjW70SlO5a66oo5Kk+CIrgJz3ukOoS+FYDGqvQlAX5PxoGWDX1oD++tn5X3pyRA==} + + prosemirror-dropcursor@1.8.1: + resolution: {integrity: sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==} + + prosemirror-example-setup@1.2.3: + resolution: {integrity: sha512-+hXZi8+xbFvYM465zZH3rdZ9w7EguVKmUYwYLZjIJIjPK+I0nPTwn8j0ByW2avchVczRwZmOJGNvehblyIerSQ==} + + prosemirror-gapcursor@1.3.2: + resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==} + + prosemirror-history@1.4.1: + resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==} + + prosemirror-inputrules@1.4.0: + resolution: {integrity: sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==} + + prosemirror-keymap@1.2.2: + resolution: {integrity: sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==} + + prosemirror-markdown@1.13.1: + resolution: {integrity: sha512-Sl+oMfMtAjWtlcZoj/5L/Q39MpEnVZ840Xo330WJWUvgyhNmLBLN7MsHn07s53nG/KImevWHSE6fEj4q/GihHw==} + + prosemirror-menu@1.2.4: + resolution: {integrity: sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==} + + prosemirror-model@1.24.1: + resolution: {integrity: sha512-YM053N+vTThzlWJ/AtPtF1j0ebO36nvbmDy4U7qA2XQB8JVaQp1FmB9Jhrps8s+z+uxhhVTny4m20ptUvhk0Mg==} + + prosemirror-schema-list@1.5.1: + resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + + prosemirror-state@1.4.3: + resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} + + prosemirror-transform@1.10.3: + resolution: {integrity: sha512-Nhh/+1kZGRINbEHmVu39oynhcap4hWTs/BlU7NnxWj3+l0qi8I1mu67v6mMdEe/ltD8hHvU4FV6PHiCw2VSpMw==} + + prosemirror-view@1.38.1: + resolution: {integrity: sha512-4FH/uM1A4PNyrxXbD+RAbAsf0d/mM0D/wAKSVVWK7o0A9Q/oOXJBrw786mBf2Vnrs/Edly6dH6Z2gsb7zWwaUw==} + + protodef-validator@1.4.0: + resolution: {integrity: sha512-2y2coBolqCEuk5Kc3QwO7ThR+/7TZiOit4FrpAgl+vFMvq8w76nDhh09z08e2NQOdrgPLsN2yzXsvRvtADgUZQ==} + hasBin: true + + protodef@1.18.0: + resolution: {integrity: sha512-jO64lkzkh0dYc0AVWCU/GzCKwqhFFIz1kfEz0NBf0RUuRNcmvgKbopabJdfZ6W8NvALdySUXgEhvKDZPhdBwrg==} + engines: {node: '>=14'} + + proxy-addr@2.0.7: + resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} + engines: {node: '>= 0.10'} + + proxy-compare@2.5.1: + resolution: {integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==} + + proxy-compare@2.6.0: + resolution: {integrity: sha512-8xuCeM3l8yqdmbPoYeLbrAXCBWu19XEYc5/F28f5qOaoAIMyfmBUkl5axiK+x9olUvRlcekvnm98AP9RDngOIw==} + + proxy-from-env@1.0.0: + resolution: {integrity: sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + proxy-middleware@0.15.0: + resolution: {integrity: sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==} + engines: {node: '>=0.8.0'} + + psl@1.15.0: + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + + public-encrypt@4.0.3: + resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==} + + pump@2.0.1: + resolution: {integrity: sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + pumpify@1.5.1: + resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} + + punycode.js@2.3.1: + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} + + punycode@1.4.1: + resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + puppeteer-core@2.1.1: + resolution: {integrity: sha512-n13AWriBMPYxnpbb6bnaY5YoY6rGj8vPLrz6CZF3o0qJNEwlcfJVxBzYZ0NJsQ21UbdJoijPCDrM++SUVEz7+w==} + engines: {node: '>=8.16.0'} + + qrcode.react@3.2.0: + resolution: {integrity: sha512-YietHHltOHA4+l5na1srdaMx4sVSOjV9tamHs+mwiLWAMr6QVACRUw1Neax5CptFILcNoITctJY0Ipyn5enQ8g==} + peerDependencies: + react: ^18.2.0 + + qs@6.10.4: + resolution: {integrity: sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==} + engines: {node: '>=0.6'} + + qs@6.13.0: + resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + engines: {node: '>=0.6'} + + qs@6.14.0: + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} + + querystring-es3@0.2.1: + resolution: {integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==} + engines: {node: '>=0.4.x'} + + querystringify@2.2.0: + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + quickselect@2.0.0: + resolution: {integrity: sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==} + + railroad-diagrams@1.0.0: + resolution: {integrity: sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==} + + rambda@6.9.0: + resolution: {integrity: sha512-yosVdGg1hNGkXPzqGiOYNEpXKjEOxzUCg2rB0l+NKdyCaSf4z+i5ojbN0IqDSezMMf71YEglI+ZUTgTffn5afw==} + + rambda@9.4.2: + resolution: {integrity: sha512-++euMfxnl7OgaEKwXh9QqThOjMeta2HH001N1v4mYQzBjJBnmXBh2BCK6dZAbICFVXOFUVD3xFG0R3ZPU0mxXw==} + + ramda@0.29.0: + resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==} + + randexp@0.4.6: + resolution: {integrity: sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==} + engines: {node: '>=0.12'} + + random-seed@0.3.0: + resolution: {integrity: sha512-y13xtn3kcTlLub3HKWXxJNeC2qK4mB59evwZ5EkeRlolx+Bp2ztF7LbcZmyCnOqlHQrLnfuNbi1sVmm9lPDlDA==} + engines: {node: '>= 0.6.0'} + + randombytes@2.1.0: + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + + randomfill@1.0.4: + resolution: {integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + range@0.0.3: + resolution: {integrity: sha512-OxK2nY2bmeEB4NxoBraQIBOOeOIxoBvm6yt8MA1kLappgkG3SyLf173iOtT5woWycrtESDD2g0Nl2yt8YPoUnw==} + engines: {node: '>=0.8'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + raw-body@2.5.2: + resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==} + engines: {node: '>= 0.8'} + + rbush@3.0.1: + resolution: {integrity: sha512-XRaVO0YecOpEuIvbhbpTrZgoiI6xBlz6hnlr6EHhd+0x9ase6EmeN+hdwwUaJvLcsFFQ8iWVF1GAK1yB0BWi0w==} + + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + hasBin: true + + react-colorful@5.6.1: + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + peerDependencies: + react: ^18.2.0 + react-dom: '>=16.8.0' + + react-docgen-typescript@2.2.2: + resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} + peerDependencies: + typescript: '>= 4.3.x' + + react-docgen@7.1.1: + resolution: {integrity: sha512-hlSJDQ2synMPKFZOsKo9Hi8WWZTC7POR8EmWvTSjow+VDgKzkmjQvFm2fk0tmRw+f0vTOIYKlarR0iL4996pdg==} + engines: {node: '>=16.14.0'} + + react-dom@18.3.1: + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} + peerDependencies: + react: ^18.2.0 + + react-element-to-jsx-string@15.0.0: + resolution: {integrity: sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==} + peerDependencies: + react: ^18.2.0 + react-dom: ^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0 + + react-fast-compare@3.2.2: + resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} + + react-hook-form@7.54.2: + resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==} + engines: {node: '>=18.0.0'} + peerDependencies: + react: ^18.2.0 + + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react-is@18.1.0: + resolution: {integrity: sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==} + + react-is@18.3.1: + resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + + react-popper@2.3.0: + resolution: {integrity: sha512-e1hj8lL3uM+sgSR4Lxzn5h1GxBlpa4CQz0XLF8kx4MDrDRWY0Ena4c97PUeSX9i5W3UAfDP0z0FXCTQkoXUl3Q==} + peerDependencies: + '@popperjs/core': ^2.0.0 + react: ^18.2.0 + react-dom: ^16.8.0 || ^17 || ^18 + + react-portal@4.2.1: + resolution: {integrity: sha512-fE9kOBagwmTXZ3YGRYb4gcMy+kSA+yLO0xnPankjRlfBv4uCpFXqKPfkpsGQQR15wkZ9EssnvTOl1yMzbkxhPQ==} + peerDependencies: + react: ^18.2.0 + react-dom: ^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0 + + react-refresh@0.14.2: + resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} + engines: {node: '>=0.10.0'} + + react-refresh@0.17.0: + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} + + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-select@5.10.1: + resolution: {integrity: sha512-roPEZUL4aRZDx6DcsD+ZNreVl+fM8VsKn0Wtex1v4IazH60ILp5xhdlp464IsEAlJdXeD+BhDAFsBVMfvLQueA==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-transition-group@4.4.5: + resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} + peerDependencies: + react: ^18.2.0 + react-dom: '>=16.6.0' + + react-universal-interface@0.6.2: + resolution: {integrity: sha512-dg8yXdcQmvgR13RIlZbTRQOoUrDciFVoSBZILwjE2LFISxZZ8loVJKAkuzswl5js8BHda79bIb2b84ehU8IjXw==} + peerDependencies: + react: ^18.2.0 + tslib: '*' + + react-use-measure@2.1.1: + resolution: {integrity: sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==} + peerDependencies: + react: ^18.2.0 + react-dom: '>=16.13' + + react-use@17.3.1: + resolution: {integrity: sha512-hs7+tS4rRm1QLHPfanLCqXIi632tP4V7Sai1ENUP2WTufU6am++tU9uSw9YrNCFqbABiEv0ndKU1XCUcfu2tXA==} + peerDependencies: + react: ^18.2.0 + react-dom: ^16.8.0 || ^17.0.0 + + react-zoom-pan-pinch@3.4.4: + resolution: {integrity: sha512-lGTu7D9lQpYEQ6sH+NSlLA7gicgKRW8j+D/4HO1AbSV2POvKRFzdWQ8eI0r3xmOsl4dYQcY+teV6MhULeg1xBw==} + engines: {node: '>=8', npm: '>=5'} + peerDependencies: + react: ^18.2.0 + react-dom: '*' + + react@18.3.1: + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} + engines: {node: '>=0.10.0'} + + read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + + read-pkg-up@8.0.0: + resolution: {integrity: sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==} + engines: {node: '>=12'} + + read-pkg@3.0.0: + resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} + engines: {node: '>=4'} + + read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + + read-pkg@6.0.0: + resolution: {integrity: sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==} + engines: {node: '>=12'} + + readable-stream@1.0.34: + resolution: {integrity: sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==} + + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + + readable-stream@3.6.2: + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} + + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdirp@2.2.1: + resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} + engines: {node: '>=0.10'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + readline@1.3.0: + resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} + + recast@0.23.11: + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} + + redent@4.0.0: + resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==} + engines: {node: '>=12'} + + reduce-configs@1.1.0: + resolution: {integrity: sha512-DQxy6liNadHfrLahZR7lMdc227NYVaQZhY5FMsxLEjX8X0SCuH+ESHSLCoz2yDZFq1/CLMDOAHdsEHwOEXKtvg==} + + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} + + regenerate-unicode-properties@10.2.0: + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + engines: {node: '>=4'} + + regenerate@1.4.2: + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + + regenerator-runtime@0.13.11: + resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==} + + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + + regenerator-transform@0.15.2: + resolution: {integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==} + + regex-not@1.0.2: + resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==} + engines: {node: '>=0.10.0'} + + regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} + + regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + regexpu-core@6.2.0: + resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} + engines: {node: '>=4'} + + regjsgen@0.8.0: + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + + regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + + regjsparser@0.12.0: + resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + hasBin: true + + remark-external-links@8.0.0: + resolution: {integrity: sha512-5vPSX0kHoSsqtdftSHhIYofVINC8qmp0nctkeU9YoJwV3YfiBRiI6cbFRJ0oI/1F9xS+bopXG0m2KS8VFscuKA==} + + remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + + remark-slug@6.1.0: + resolution: {integrity: sha512-oGCxDF9deA8phWvxFuyr3oSJsdyUAxMFbA0mZ7Y1Sas+emILtO+e5WutF9564gDsEN4IXaQXm5pFo6MLH+YmwQ==} + + remark-stringify@11.0.0: + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + + remark@15.0.1: + resolution: {integrity: sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==} + + remove-trailing-separator@1.1.0: + resolution: {integrity: sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==} + + repeat-element@1.1.4: + resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==} + engines: {node: '>=0.10.0'} + + repeat-string@1.6.1: + resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==} + engines: {node: '>=0.10'} + + request-progress@3.0.0: + resolution: {integrity: sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==} + + require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + requires-port@1.0.0: + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + + resize-observer-polyfill@1.5.1: + resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + resolve-from@5.0.0: + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} + + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + + resolve-url@0.2.1: + resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==} + deprecated: https://github.com/lydell/resolve-url#deprecated + + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} + hasBin: true + + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + + restore-cursor@3.1.0: + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} + + ret@0.1.15: + resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==} + engines: {node: '>=0.12'} + + retry@0.12.0: + resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==} + engines: {node: '>= 4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + + rimraf@2.6.3: + resolution: {integrity: sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@2.7.1: + resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rimraf@5.0.10: + resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} + hasBin: true + + ripemd160@2.0.2: + resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==} + + rollup@2.79.2: + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} + engines: {node: '>=10.0.0'} + hasBin: true + + rollup@3.29.5: + resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + + rollup@4.34.9: + resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + rope-sequence@1.3.4: + resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + + rtl-css-js@1.16.1: + resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} + + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + + safe-regex@1.1.0: + resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==} + + safer-buffer@2.1.2: + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + + sanitize-filename@1.6.3: + resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} + + sat@0.9.0: + resolution: {integrity: sha512-mxdv5RZJO4tdMnUURGU3gAMcnDUEwcNJwE+lPO0/V+rBeDvFLH3wEZEOR0fH7cTN0zQaNxBEbHnyQL9DzupwQQ==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + + screenfull@5.2.0: + resolution: {integrity: sha512-9BakfsO2aUQN2K9Fdbj87RJIEZ82Q9IGim7FqM5OsebfoFC6ZHXgDq/KvniuLTPdeM8wY2o6Dj3WQ7KeQCj3cA==} + engines: {node: '>=0.10.0'} + + sdp@3.2.0: + resolution: {integrity: sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==} + + secure-compare@3.0.1: + resolution: {integrity: sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==} + + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + send@0.19.0: + resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==} + engines: {node: '>= 0.8.0'} + + send@1.2.0: + resolution: {integrity: sha512-uaW0WwXKpL9blXE2o0bRhoL2EGXIrZxQ2ZQ4mgcfoBxdFmQold+qWsD2jLrfZ0trjKL6vOw0j//eAwcALFjKSw==} + engines: {node: '>= 18'} + + sentence-case@3.0.4: + resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} + + serialize-javascript@6.0.2: + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + + serve-index@1.9.1: + resolution: {integrity: sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==} + engines: {node: '>= 0.8.0'} + + serve-static@1.16.2: + resolution: {integrity: sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==} + engines: {node: '>= 0.8.0'} + + set-blocking@2.0.0: + resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + + set-harmonic-interval@1.0.1: + resolution: {integrity: sha512-AhICkFV84tBP1aWqPwLZqFvAwqEoVA9kxNMniGEUvzOlm4vLmOFLiTT3UZ6bziJTy4bOVpzWGTfSCbmaayGx8g==} + engines: {node: '>=6.9'} + + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + + set-value@2.0.1: + resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==} + engines: {node: '>=0.10.0'} + + setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + + setprototypeof@1.1.0: + resolution: {integrity: sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + sha.js@2.4.11: + resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==} + hasBin: true + + shallow-clone@3.0.1: + resolution: {integrity: sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==} + engines: {node: '>=8'} + + sharp@0.30.7: + resolution: {integrity: sha512-G+MY2YW33jgflKPTXXptVO28HvNOo9G3j0MybYAHeEmby+QuD2U98dT6ueht9cv/XDqZspSpIhoSW+BAKJ7Hig==} + engines: {node: '>=12.13.0'} + + sharp@0.33.5: + resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + + shebang-command@1.2.0: + resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==} + engines: {node: '>=0.10.0'} + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@1.0.0: + resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==} + engines: {node: '>=0.10.0'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} + + siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + + signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@3.1.1: + resolution: {integrity: sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + + sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + + skinview-utils@0.7.1: + resolution: {integrity: sha512-4eLrMqR526ehlZbsd8SuZ/CHpS9GiH0xUMoV+PYlJVi95ZFz5HJu7Spt5XYa72DRS7wgt5qquvHZf0XZJgmu9Q==} + + skinview3d@3.1.0: + resolution: {integrity: sha512-L+HXXAP4qYjLcY3YHasXKie9KXQpv/mPTMxgLOEd+hVQRdQkPs5xdWaKuOmlZY8UnyZzecQM7yrWRzgT/e7HZw==} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + slice-ansi@3.0.0: + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + + smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + + snake-case@3.0.4: + resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} + + snapdragon-node@2.1.1: + resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==} + engines: {node: '>=0.10.0'} + + snapdragon-util@3.0.1: + resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==} + engines: {node: '>=0.10.0'} + + snapdragon@0.8.2: + resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==} + engines: {node: '>=0.10.0'} + + socket.io-adapter@1.1.2: + resolution: {integrity: sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==} + + socket.io-adapter@2.5.5: + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + + socket.io-client@2.5.0: + resolution: {integrity: sha512-lOO9clmdgssDykiOmVQQitwBAF3I6mYcQAo7hQ7AM6Ny5X7fp8hIJ3HcQs3Rjz4SoggoxA1OgrQyY8EgTbcPYw==} + + socket.io-client@4.8.1: + resolution: {integrity: sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==} + engines: {node: '>=10.0.0'} + + socket.io-parser@3.3.4: + resolution: {integrity: sha512-z/pFQB3x+EZldRRzORYW1vwVO8m/3ILkswtnpoeU6Ve3cbMWkmHEWDAVJn4QJtchiiFTo5j7UG2QvwxvaA9vow==} + + socket.io-parser@3.4.3: + resolution: {integrity: sha512-1rE4dZN3kCI/E5wixd393hmbqa78vVpkKmnEJhLeWoS/C5hbFYAbcSfnWoaVH43u9ToUVtzKjguxEZq+1XZfCQ==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + socket.io@2.5.1: + resolution: {integrity: sha512-eaTE4tBKRD6RFoetquMbxgvcpvoDtRyIlkIMI/SMK2bsKvbENTsDeeu4GJ/z9c90yOWxB7b/eC+yKLPbHnH6bA==} + + socket.io@4.8.1: + resolution: {integrity: sha512-oZ7iUCxph8WYRHHcjBEc9unw3adt5CmSNlppj/5Q4k2RIrhl8Z5yY2Xr4j9zj0+wzVZ0bxmYoGSzKJnRl6A4yg==} + engines: {node: '>=10.2.0'} + + socks-proxy-agent@7.0.0: + resolution: {integrity: sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==} + engines: {node: '>= 10'} + + socks@2.8.4: + resolution: {integrity: sha512-D3YaD0aRxR3mEcqnidIs7ReYJFVzWdd6fXJYUM8ixcQcJRGTka/b3saV0KflYhyVJXKhb947GndU35SxYNResQ==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + source-map-resolve@0.5.3: + resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==} + deprecated: See https://github.com/lydell/source-map-resolve#deprecated + + source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + + source-map-url@0.4.1: + resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==} + deprecated: See https://github.com/lydell/source-map-url#deprecated + + source-map@0.5.6: + resolution: {integrity: sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==} + engines: {node: '>=0.10.0'} + + source-map@0.5.7: + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} + + source-map@0.6.1: + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} + + source-map@0.8.0-beta.0: + resolution: {integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==} + engines: {node: '>= 8'} + deprecated: The work that was done in this beta branch won't be included in future versions + + sourcemap-codec@1.4.8: + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + deprecated: Please use @jridgewell/sourcemap-codec instead + + space-separated-tokens@1.1.5: + resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==} + + spdx-correct@3.2.0: + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + + spdx-exceptions@2.5.0: + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + + spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + + spdx-license-ids@3.0.21: + resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==} + + split-string@3.1.0: + resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==} + engines: {node: '>=0.10.0'} + + split@0.3.3: + resolution: {integrity: sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==} + + sprintf-js@1.0.3: + resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + sshpk@1.18.0: + resolution: {integrity: sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==} + engines: {node: '>=0.10.0'} + hasBin: true + + ssri@9.0.1: + resolution: {integrity: sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + stack-generator@2.0.10: + resolution: {integrity: sha512-mwnua/hkqM6pF4k8SnmZ2zfETsRUpWXREfA/goT8SLCV4iOFa4bzOX2nDipWAZFPTjLvQB82f5yaodMVhK0yJQ==} + + stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + + stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + + stacktrace-gps@3.1.2: + resolution: {integrity: sha512-GcUgbO4Jsqqg6RxfyTHFiPxdPqF+3LFmQhm7MgCuYQOYuWyqxo5pwRPz5d/u6/WYJdEnWfK4r+jGbyD8TSggXQ==} + + stacktrace-js@2.0.2: + resolution: {integrity: sha512-Je5vBeY4S1r/RnLydLl0TBTi3F2qdfWmYsGvtfZgEI+SCprPppaIhQf5nGcal4gI4cGpCV/duLcAzT1np6sQqg==} + + state-local@1.0.7: + resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} + + static-extend@0.1.2: + resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==} + engines: {node: '>=0.10.0'} + + stats-gl@1.0.7: + resolution: {integrity: sha512-vZI82CjefSxLC1bjw36z28v0+QE9rJKymGlXtfWu+ipW70ZEAwa4EbO4LxluAfLfpqiaAS04NzpYBRLDeAwYWQ==} + + stats.js@0.17.0: + resolution: {integrity: sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw==} + + statuses@1.5.0: + resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==} + engines: {node: '>= 0.6'} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + statuses@2.0.2: + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} + + std-env@3.8.1: + resolution: {integrity: sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==} + + stop-iteration-iterator@1.1.0: + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} + + store2@2.14.4: + resolution: {integrity: sha512-srTItn1GOvyvOycgxjAnPA63FZNwy0PTyUBFMHRM+hVFltAeoh0LmNBz9SZqUS9mMqGk8rfyWyXn3GH5ReJ8Zw==} + + storybook@7.6.20: + resolution: {integrity: sha512-Wt04pPTO71pwmRmsgkyZhNo4Bvdb/1pBAMsIFb9nQLykEdzzpXjvingxFFvdOG4nIowzwgxD+CLlyRqVJqnATw==} + hasBin: true + + stream-browserify@3.0.0: + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + + stream-combiner@0.0.4: + resolution: {integrity: sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==} + + stream-http@3.2.0: + resolution: {integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==} + + stream-shift@1.0.3: + resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + + strict-event-emitter-types@2.0.0: + resolution: {integrity: sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==} + + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + + string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} + engines: {node: '>= 0.4'} + + string.prototype.padend@3.1.6: + resolution: {integrity: sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} + + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + + string_decoder@0.10.31: + resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==} + + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + + string_decoder@1.3.0: + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + + stringify-object@3.3.0: + resolution: {integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==} + engines: {node: '>=4'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + + strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} + + strip-comments@2.0.1: + resolution: {integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==} + engines: {node: '>=10'} + + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + + strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + + strip-indent@4.0.0: + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} + + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + + stylis@4.2.0: + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + + stylis@4.3.6: + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} + + supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + synchronous-promise@2.0.17: + resolution: {integrity: sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g==} + + systeminformation@5.25.11: + resolution: {integrity: sha512-jI01fn/t47rrLTQB0FTlMCC+5dYx8o0RRF+R4BPiUNsvg5OdY0s9DKMFmJGrx5SwMZQ4cag0Gl6v8oycso9b/g==} + engines: {node: '>=8.0.0'} + os: [darwin, linux, win32, freebsd, openbsd, netbsd, sunos, android] + hasBin: true + + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} + engines: {node: '>=10'} + + telejson@7.2.0: + resolution: {integrity: sha512-1QTEcJkJEhc8OnStBx/ILRu5J2p0GjvWsBx56bmZRqnrkdBMUe+nX92jxV+p3dB4CP6PZCdJMQJwCggkNBMzkQ==} + + temp-dir@2.0.0: + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} + + temp@0.8.4: + resolution: {integrity: sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==} + engines: {node: '>=6.0.0'} + + tempy@0.6.0: + resolution: {integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==} + engines: {node: '>=10'} + + tempy@1.0.1: + resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} + engines: {node: '>=10'} + + terser@5.39.0: + resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} + engines: {node: '>=10'} + hasBin: true + + test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + + thingies@1.21.0: + resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} + engines: {node: '>=10.18'} + peerDependencies: + tslib: ^2 + + three-stdlib@2.35.14: + resolution: {integrity: sha512-kpCaEg59M9usFTgHC+YZNKvx7nMoLI2zQxZBV8pjoNW6vNZmGyXpaLBL09A2oLCsS3KepgMFkOuk6lRoebTNvA==} + peerDependencies: + three: 0.154.0 + + three.meshline@1.4.0: + resolution: {integrity: sha512-A8IsiMrWP8zmHisGDAJ76ZD7t/dOF/oCe/FUKNE6Bu01ZYEx8N6IlU/1Plb2aOZtAuWM2A8s8qS3hvY0OFuvOw==} + + three@0.154.0: + resolution: {integrity: sha512-Uzz8C/5GesJzv8i+Y2prEMYUwodwZySPcNhuJUdsVMH2Yn4Nm8qlbQe6qRN5fOhg55XB0WiLfTPBxVHxpE60ug==} + + throttle-debounce@3.0.1: + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} + + throttleit@1.0.1: + resolution: {integrity: sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==} + + through2@0.6.5: + resolution: {integrity: sha512-RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==} + + through2@2.0.5: + resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + + timers-browserify@2.0.12: + resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==} + engines: {node: '>=0.6.0'} + + timm@1.7.1: + resolution: {integrity: sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==} + + tiny-invariant@1.3.3: + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinycolor2@1.6.0: + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + + tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + engines: {node: '>=14.0.0'} + + title-case@3.0.3: + resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} + + tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + + tmpl@1.0.5: + resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} + + to-array@0.1.4: + resolution: {integrity: sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==} + + to-object-path@0.3.0: + resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==} + engines: {node: '>=0.10.0'} + + to-regex-range@2.1.1: + resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==} + engines: {node: '>=0.10.0'} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + to-regex@3.0.2: + resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==} + engines: {node: '>=0.10.0'} + + tocbot@4.35.0: + resolution: {integrity: sha512-i8FoSaP3u60D94e/dtzCk23PIEBnc/l8XqvlK4g8gUCa9XFY4RmyMLYP6X+yN+ljcEijFbmCtNHtBoeTsQkCPg==} + + toggle-selection@1.0.6: + resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + tough-cookie@4.1.4: + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tr46@1.0.1: + resolution: {integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==} + + tree-dump@1.0.2: + resolution: {integrity: sha512-dpev9ABuLWdEubk+cIaI9cHwRNNDjkBBLXTwI4UCUFdQ5xXKqNXoK4FEciw/vxf+NQ7Cb7sGUyeUtORvHIdRXQ==} + engines: {node: '>=10.0'} + peerDependencies: + tslib: '2' + + trim-newlines@4.1.1: + resolution: {integrity: sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==} + engines: {node: '>=12'} + + trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + + truncate-utf8-bytes@1.0.2: + resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} + + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + ts-api-utils@2.0.1: + resolution: {integrity: sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + + ts-checker-rspack-plugin@1.1.1: + resolution: {integrity: sha512-BlpPqnfAmV0TcDg58H+1qV8Zb57ilv0x+ajjnxrVQ6BWgC8HzAdc+TycqDOJ4sZZYIV+hywQGozZFGklzbCR6A==} + engines: {node: '>=16.0.0'} + peerDependencies: + '@rspack/core': ^1.0.0 + typescript: '>=3.8.0' + peerDependenciesMeta: + '@rspack/core': + optional: true + + ts-dedent@2.2.0: + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} + + ts-easing@0.2.0: + resolution: {integrity: sha512-Z86EW+fFFh/IFB1fqQ3/+7Zpf9t2ebOAxNI/V6Wo7r5gqiqtxmgTlQ1qbqQcjLKYeSHPTsEmvlJUDg/EuL0uHQ==} + + tsconfig-paths@3.15.0: + resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} + + tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + tsx@4.19.3: + resolution: {integrity: sha512-4H8vUNGNjQ4V2EOoGw005+c+dGuPSnhpPBPHBtsZdGZBk/iJb4kguGlPWaZTZ3q5nMtFOEsY0nRDlh9PJyd6SQ==} + engines: {node: '>=18.0.0'} + hasBin: true + + tty-browserify@0.0.1: + resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} + + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + + tweetnacl@0.14.5: + resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-detect@4.1.0: + resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==} + engines: {node: '>=4'} + + type-fest@0.16.0: + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + type-fest@0.21.3: + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} + + type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + + type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + + type-fest@1.4.0: + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} + + type-fest@2.19.0: + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} + + type-is@1.6.18: + resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==} + engines: {node: '>= 0.6'} + + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} + + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} + + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} + + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + + typed-emitter@1.4.0: + resolution: {integrity: sha512-weBmoo3HhpKGgLBOYwe8EB31CzDFuaK7CCL+axXhUYhn4jo6DSkHnbefboCF5i4DQ2aMFe0C/FdTWcPdObgHyg==} + + typed-emitter@2.1.0: + resolution: {integrity: sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==} + + typedarray@0.0.6: + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + + typescript@5.5.4: + resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} + engines: {node: '>=14.17'} + hasBin: true + + ua-parser-js@1.0.40: + resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} + hasBin: true + + uc.micro@2.1.0: + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + + ufo@1.5.4: + resolution: {integrity: sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==} + + uglify-js@3.19.3: + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} + hasBin: true + + uint4@0.1.2: + resolution: {integrity: sha512-lhEx78gdTwFWG+mt6cWAZD/R6qrIj0TTBeH5xwyuDJyswLNlGe+KVlUPQ6+mx5Ld332pS0AMUTo9hIly7YsWxQ==} + + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + undici@6.0.1: + resolution: {integrity: sha512-eZFYQLeS9BiXpsU0cuFhCwfeda2MnC48EVmmOz/eCjsTgmyTdaHdVsPSC/kwC2GtW2e0uH0HIPbadf3/bRWSxw==} + engines: {node: '>=18.0'} + + unicode-canonical-property-names-ecmascript@2.0.1: + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} + + unicode-match-property-ecmascript@2.0.0: + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} + + unicode-match-property-value-ecmascript@2.2.0: + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + engines: {node: '>=4'} + + unicode-property-aliases-ecmascript@2.1.0: + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} + + unidiff@1.0.2: + resolution: {integrity: sha512-2sbEzki5fBmjgAqoafwxRenfMcumMlmVAoJDwYJa3CI4ZVugkdR6qjTw5sVsl29/4JfBBXhWEAd5ars8nRdqXg==} + + unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + + union-value@1.0.1: + resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==} + engines: {node: '>=0.10.0'} + + union@0.5.0: + resolution: {integrity: sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA==} + engines: {node: '>= 0.8.0'} + + unique-filename@2.0.1: + resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-slug@3.0.0: + resolution: {integrity: sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + + unist-util-is@4.1.0: + resolution: {integrity: sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==} + + unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + + unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + + unist-util-visit-parents@3.1.1: + resolution: {integrity: sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==} + + unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + + unist-util-visit@2.0.3: + resolution: {integrity: sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==} + + unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@0.2.0: + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + unix-crypt-td-js@1.1.4: + resolution: {integrity: sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==} + + unpipe@1.0.0: + resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} + engines: {node: '>= 0.8'} + + unplugin@1.16.1: + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} + engines: {node: '>=14.0.0'} + + unset-value@1.0.0: + resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==} + engines: {node: '>=0.10.0'} + + untildify@4.0.0: + resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} + engines: {node: '>=8'} + + upath@1.2.0: + resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==} + engines: {node: '>=4'} + + update-browserslist-db@1.1.3: + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + + upper-case-first@2.0.2: + resolution: {integrity: sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==} + + upper-case@2.0.2: + resolution: {integrity: sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + urix@0.1.0: + resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==} + deprecated: Please see https://github.com/lydell/urix#deprecated + + url-join@4.0.1: + resolution: {integrity: sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==} + + url-parse@1.5.10: + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + + url@0.11.4: + resolution: {integrity: sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==} + engines: {node: '>= 0.4'} + + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-deep-compare@1.3.0: + resolution: {integrity: sha512-94iG+dEdEP/Sl3WWde+w9StIunlV8Dgj+vkt5wTwMoFQLaijiEZSXXy8KtcStpmEDtIptRJiNeD4ACTtVvnIKA==} + peerDependencies: + react: ^18.2.0 + + use-isomorphic-layout-effect@1.2.0: + resolution: {integrity: sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-resize-observer@9.1.0: + resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} + peerDependencies: + react: ^18.2.0 + react-dom: 16.8.0 - 18 + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + + use-sync-external-store@1.2.0: + resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} + peerDependencies: + react: ^18.2.0 + + use-typed-event-listener@4.0.2: + resolution: {integrity: sha512-AhjRw+qg5t7OWg7en2Q4XDCdi2iyhALFl71tITL3FeZqt/jD1Qa6KnbH/UolARtID1Gd0IElizbCgolv3ZbUFA==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + peerDependencies: + react: ^18.2.0 + typescript: '>=4.1.2' + peerDependenciesMeta: + typescript: + optional: true + + use@3.1.1: + resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==} + engines: {node: '>=0.10.0'} + + utf8-byte-length@1.0.5: + resolution: {integrity: sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==} + + utif@2.0.1: + resolution: {integrity: sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + utils-merge@1.0.1: + resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} + engines: {node: '>= 0.4.0'} + + uuid-1345@1.0.2: + resolution: {integrity: sha512-bA5zYZui+3nwAc0s3VdGQGBfbVsJLVX7Np7ch2aqcEWFi5lsAEcmO3+lx3djM1npgpZI8KY2FITZ2uYTnYUYyw==} + + uuid@3.4.0: + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + hasBin: true + + uuid@8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + + uuid@9.0.1: + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + hasBin: true + + validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + + valtio@1.11.2: + resolution: {integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=16.8' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + + valtio@1.13.2: + resolution: {integrity: sha512-Qik0o+DSy741TmkqmRfjq+0xpZBXi/Y6+fXZLn0xNF1z/waFMbE3rkivv5Zcf9RrMUp6zswf2J7sbh2KBlba5A==} + engines: {node: '>=12.20.0'} + peerDependencies: + '@types/react': '>=16.8' + react: ^18.2.0 + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + + vary@1.1.2: + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} + + vec3@0.1.10: + resolution: {integrity: sha512-Sr1U3mYtMqCOonGd3LAN9iqy0qF6C+Gjil92awyK/i2OwiUo9bm7PnLgFpafymun50mOjnDcg4ToTgRssrlTcw==} + + verror@1.10.0: + resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} + engines: {'0': node >=0.6.0} + + vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + + vfile@6.0.3: + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + + vite-node@0.34.6: + resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} + engines: {node: '>=v14.18.0'} + hasBin: true + + vite@4.5.9: + resolution: {integrity: sha512-qK9W4xjgD3gXbC0NmdNFFnVFLMWSNiR3swj957yutwzzN16xF/E7nmtAyp1rT9hviDroQANjE4HK3H4WqWdFtw==} + engines: {node: ^14.18.0 || >=16.0.0} + hasBin: true + peerDependencies: + '@types/node': '>= 14' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vite@6.2.1: + resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + vitest@0.34.6: + resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true + + vm-browserify@1.1.2: + resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==} + + w3c-keyname@2.2.8: + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + + wait-on@7.2.0: + resolution: {integrity: sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==} + engines: {node: '>=12.0.0'} + hasBin: true + + walker@1.0.8: + resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} + + warning@4.0.3: + resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==} + + watchpack@2.4.2: + resolution: {integrity: sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==} + engines: {node: '>=10.13.0'} + + wcwidth@1.0.1: + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + webidl-conversions@4.0.2: + resolution: {integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==} + + webpack-virtual-modules@0.6.2: + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + + webrtc-adapter@9.0.1: + resolution: {integrity: sha512-1AQO+d4ElfVSXyzNVTOewgGT/tAomwwztX/6e3totvyyzXPvXIIuUUjAmyZGbKBKbZOXauuJooZm3g6IuFuiNQ==} + engines: {node: '>=6.0.0', npm: '>=3.10.0'} + + websocket-driver@0.7.4: + resolution: {integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==} + engines: {node: '>=0.8.0'} + + websocket-extensions@0.1.4: + resolution: {integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==} + engines: {node: '>=0.8.0'} + + whatwg-encoding@2.0.0: + resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} + engines: {node: '>=12'} + + whatwg-fetch@3.6.20: + resolution: {integrity: sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + whatwg-url@7.1.0: + resolution: {integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==} + + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} + + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} + engines: {node: '>= 0.4'} + + which-typed-array@1.1.19: + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} + + which@1.3.1: + resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==} + hasBin: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + why-is-node-running@2.3.0: + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} + hasBin: true + + wide-align@1.1.5: + resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wordwrap@1.0.0: + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + + workbox-background-sync@7.3.0: + resolution: {integrity: sha512-PCSk3eK7Mxeuyatb22pcSx9dlgWNv3+M8PqPaYDokks8Y5/FX4soaOqj3yhAZr5k6Q5JWTOMYgaJBpbw11G9Eg==} + + workbox-broadcast-update@7.3.0: + resolution: {integrity: sha512-T9/F5VEdJVhwmrIAE+E/kq5at2OY6+OXXgOWQevnubal6sO92Gjo24v6dCVwQiclAF5NS3hlmsifRrpQzZCdUA==} + + workbox-build@7.3.0: + resolution: {integrity: sha512-JGL6vZTPlxnlqZRhR/K/msqg3wKP+m0wfEUVosK7gsYzSgeIxvZLi1ViJJzVL7CEeI8r7rGFV973RiEqkP3lWQ==} + engines: {node: '>=16.0.0'} + + workbox-cacheable-response@7.3.0: + resolution: {integrity: sha512-eAFERIg6J2LuyELhLlmeRcJFa5e16Mj8kL2yCDbhWE+HUun9skRQrGIFVUagqWj4DMaaPSMWfAolM7XZZxNmxA==} + + workbox-core@7.3.0: + resolution: {integrity: sha512-Z+mYrErfh4t3zi7NVTvOuACB0A/jA3bgxUN3PwtAVHvfEsZxV9Iju580VEETug3zYJRc0Dmii/aixI/Uxj8fmw==} + + workbox-expiration@7.3.0: + resolution: {integrity: sha512-lpnSSLp2BM+K6bgFCWc5bS1LR5pAwDWbcKt1iL87/eTSJRdLdAwGQznZE+1czLgn/X05YChsrEegTNxjM067vQ==} + + workbox-google-analytics@7.3.0: + resolution: {integrity: sha512-ii/tSfFdhjLHZ2BrYgFNTrb/yk04pw2hasgbM70jpZfLk0vdJAXgaiMAWsoE+wfJDNWoZmBYY0hMVI0v5wWDbg==} + + workbox-navigation-preload@7.3.0: + resolution: {integrity: sha512-fTJzogmFaTv4bShZ6aA7Bfj4Cewaq5rp30qcxl2iYM45YD79rKIhvzNHiFj1P+u5ZZldroqhASXwwoyusnr2cg==} + + workbox-precaching@7.3.0: + resolution: {integrity: sha512-ckp/3t0msgXclVAYaNndAGeAoWQUv7Rwc4fdhWL69CCAb2UHo3Cef0KIUctqfQj1p8h6aGyz3w8Cy3Ihq9OmIw==} + + workbox-range-requests@7.3.0: + resolution: {integrity: sha512-EyFmM1KpDzzAouNF3+EWa15yDEenwxoeXu9bgxOEYnFfCxns7eAxA9WSSaVd8kujFFt3eIbShNqa4hLQNFvmVQ==} + + workbox-recipes@7.3.0: + resolution: {integrity: sha512-BJro/MpuW35I/zjZQBcoxsctgeB+kyb2JAP5EB3EYzePg8wDGoQuUdyYQS+CheTb+GhqJeWmVs3QxLI8EBP1sg==} + + workbox-routing@7.3.0: + resolution: {integrity: sha512-ZUlysUVn5ZUzMOmQN3bqu+gK98vNfgX/gSTZ127izJg/pMMy4LryAthnYtjuqcjkN4HEAx1mdgxNiKJMZQM76A==} + + workbox-strategies@7.3.0: + resolution: {integrity: sha512-tmZydug+qzDFATwX7QiEL5Hdf7FrkhjaF9db1CbB39sDmEZJg3l9ayDvPxy8Y18C3Y66Nrr9kkN1f/RlkDgllg==} + + workbox-streams@7.3.0: + resolution: {integrity: sha512-SZnXucyg8x2Y61VGtDjKPO5EgPUG5NDn/v86WYHX+9ZqvAsGOytP0Jxp1bl663YUuMoXSAtsGLL+byHzEuMRpw==} + + workbox-sw@7.3.0: + resolution: {integrity: sha512-aCUyoAZU9IZtH05mn0ACUpyHzPs0lMeJimAYkQkBsOWiqaJLgusfDCR+yllkPkFRxWpZKF8vSvgHYeG7LwhlmA==} + + workbox-window@7.3.0: + resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==} + + wrap-ansi@6.2.0: + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} + + wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + + wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + write-file-atomic@2.4.3: + resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==} + + write-file-atomic@4.0.2: + resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + + ws@5.2.4: + resolution: {integrity: sha512-fFCejsuC8f9kOSu9FYaOw8CdO68O3h5v0lg4p74o8JqWpwTf9tniOD+nOB78aWoVSS6WptVUmDrp/KPsMVBWFQ==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@6.2.3: + resolution: {integrity: sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@7.5.10: + resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xhr@2.6.0: + resolution: {integrity: sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==} + + xml-parse-from-string@1.0.1: + resolution: {integrity: sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==} + + xml2js@0.5.0: + resolution: {integrity: sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==} + engines: {node: '>=4.0.0'} + + xmlbuilder@11.0.1: + resolution: {integrity: sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==} + engines: {node: '>=4.0'} + + xmlhttprequest-ssl@1.6.3: + resolution: {integrity: sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==} + engines: {node: '>=0.4.0'} + + xmlhttprequest-ssl@2.1.2: + resolution: {integrity: sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==} + engines: {node: '>=0.4.0'} + + xtend@4.0.2: + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} + + xxhash-wasm@0.4.2: + resolution: {integrity: sha512-/eyHVRJQCirEkSZ1agRSCwriMhwlyUcFkXD5TPVSLP+IPzjsqMVzZwdoczLp1SoQU0R3dxz1RpIK+4YNQbCVOA==} + + y18n@5.0.8: + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} + + yallist@3.1.1: + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + + yaml@1.10.2: + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} + + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} + engines: {node: '>= 14'} + hasBin: true + + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + + yargs-parser@21.1.1: + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} + + yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + + yazl@2.5.1: + resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==} + + yeast@0.1.2: + resolution: {integrity: sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==} + + yggdrasil@1.7.0: + resolution: {integrity: sha512-QBIo5fiNd7688G3FqXXYGr36uyrYzczlNuzpWFy2zL3+R+3KT2lF+wFxm51synfA3l3z6IBiGOc1/EVXWCYY1Q==} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + + yocto-queue@1.2.0: + resolution: {integrity: sha512-KHBC7z61OJeaMGnF3wqNZj+GGNXOyypZviiKpQeiHirG5Ib1ImwcLBH70rbMSkKfSmUNBsdf2PwaEJtKvgmkNw==} + engines: {node: '>=12.20'} + + zod@3.24.2: + resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} + + zustand@3.6.5: + resolution: {integrity: sha512-/WfLJuXiEJimt61KGMHebrFBwckkCHGhAgVXTgPQHl6IMzjqm6MREb1OnDSnCRiSmRdhgdFCctceg6tSm79hiw==} + engines: {node: '>=12.7.0'} + peerDependencies: + react: ^18.2.0 + peerDependenciesMeta: + react: + optional: true + + zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + +snapshots: + + '@ampproject/remapping@2.3.0': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)': + dependencies: + ajv: 8.17.1 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + + '@aw-web-design/x-default-browser@1.4.126': + dependencies: + default-browser-id: 3.0.0 + + '@azure/msal-common@14.16.0': {} + + '@azure/msal-node@2.16.2': + dependencies: + '@azure/msal-common': 14.16.0 + jsonwebtoken: 9.0.2 + uuid: 8.3.2 + + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/compat-data@7.26.8': {} + + '@babel/core@7.26.9': + dependencies: + '@ampproject/remapping': 2.3.0 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/helpers': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + convert-source-map: 2.0.0 + debug: 4.4.0(supports-color@8.1.1) + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/generator@7.26.9': + dependencies: + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + + '@babel/helper-annotate-as-pure@7.25.9': + dependencies: + '@babel/types': 7.26.9 + + '@babel/helper-compilation-targets@7.26.5': + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.26.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.9) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.9 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/helper-create-regexp-features-plugin@7.26.3(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.25.9 + regexpu-core: 6.2.0 + semver: 6.3.1 + + '@babel/helper-define-polyfill-provider@0.6.3(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + debug: 4.4.1 + lodash.debounce: 4.0.8 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + '@babel/helper-member-expression-to-functions@7.25.9': + dependencies: + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-imports@7.25.9': + dependencies: + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.26.9 + + '@babel/helper-plugin-utils@7.26.5': {} + + '@babel/helper-remap-async-to-generator@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-wrap-function': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + dependencies: + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helper-string-parser@7.25.9': {} + + '@babel/helper-validator-identifier@7.25.9': {} + + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helper-wrap-function@7.25.9': + dependencies: + '@babel/template': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/helpers@7.26.9': + dependencies: + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 + + '@babel/parser@7.26.9': + dependencies: + '@babel/types': 7.26.9 + + '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + + '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-import-attributes@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-typescript@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-async-generator-functions@7.26.8(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.9) + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-async-to-generator@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-remap-async-to-generator': 7.25.9(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-class-properties@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-class-static-block@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.9) + '@babel/traverse': 7.26.9 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/template': 7.26.9 + + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-dotall-regex@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-duplicate-keys@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-dynamic-import@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-exponentiation-operator@7.26.3(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-export-namespace-from@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-flow-strip-types@7.26.5(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.9) + + '@babel/plugin-transform-for-of@7.26.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-json-strings@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-logical-assignment-operators@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-modules-amd@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-systemjs@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-modules-umd@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-named-capturing-groups-regex@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-new-target@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-nullish-coalescing-operator@7.26.6(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-numeric-separator@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-object-rest-spread@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.9) + + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-optional-catch-binding@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-optional-chaining@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-private-methods@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-private-property-in-object@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-react-jsx-source@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-regenerator@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + regenerator-transform: 0.15.2 + + '@babel/plugin-transform-regexp-modifiers@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-reserved-words@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-sticky-regex@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-template-literals@7.26.8(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-typeof-symbol@7.26.7(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-typescript@7.26.8(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + + '@babel/plugin-transform-unicode-escapes@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-unicode-property-regex@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-unicode-regex@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/plugin-transform-unicode-sets-regex@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-create-regexp-features-plugin': 7.26.3(@babel/core@7.26.9) + '@babel/helper-plugin-utils': 7.26.5 + + '@babel/preset-env@7.26.9(@babel/core@7.26.9)': + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/core': 7.26.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-bugfix-firefox-class-in-computed-class-key': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-bugfix-safari-class-field-initializer-scope': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.9) + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.9) + '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.9) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.9) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-async-generator-functions': 7.26.8(@babel/core@7.26.9) + '@babel/plugin-transform-async-to-generator': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.9) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-class-static-block': 7.26.0(@babel/core@7.26.9) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-dotall-regex': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-duplicate-keys': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-duplicate-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-dynamic-import': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-exponentiation-operator': 7.26.3(@babel/core@7.26.9) + '@babel/plugin-transform-export-namespace-from': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-for-of': 7.26.9(@babel/core@7.26.9) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-json-strings': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-logical-assignment-operators': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-modules-amd': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.9) + '@babel/plugin-transform-modules-systemjs': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-modules-umd': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-named-capturing-groups-regex': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-new-target': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.9) + '@babel/plugin-transform-numeric-separator': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-object-rest-spread': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-optional-catch-binding': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-private-property-in-object': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-regenerator': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-regexp-modifiers': 7.26.0(@babel/core@7.26.9) + '@babel/plugin-transform-reserved-words': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-sticky-regex': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-template-literals': 7.26.8(@babel/core@7.26.9) + '@babel/plugin-transform-typeof-symbol': 7.26.7(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-escapes': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-property-regex': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-regex': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-unicode-sets-regex': 7.25.9(@babel/core@7.26.9) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.9) + babel-plugin-polyfill-corejs2: 0.4.12(@babel/core@7.26.9) + babel-plugin-polyfill-corejs3: 0.11.1(@babel/core@7.26.9) + babel-plugin-polyfill-regenerator: 0.6.3(@babel/core@7.26.9) + core-js-compat: 3.41.0 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + '@babel/preset-flow@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.26.9) + + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/types': 7.26.9 + esutils: 2.0.3 + + '@babel/preset-typescript@7.26.0(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.9) + '@babel/plugin-transform-typescript': 7.26.8(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + + '@babel/register@7.25.9(@babel/core@7.26.9)': + dependencies: + '@babel/core': 7.26.9 + clone-deep: 4.0.1 + find-cache-dir: 2.1.0 + make-dir: 2.1.0 + pirates: 4.0.6 + source-map-support: 0.5.21 + + '@babel/runtime@7.26.9': + dependencies: + regenerator-runtime: 0.14.1 + + '@babel/template@7.26.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + + '@babel/traverse@7.26.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/template': 7.26.9 + '@babel/types': 7.26.9 + debug: 4.4.1 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.26.9': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@base2/pretty-print-object@1.0.1': {} + + '@colors/colors@1.5.0': + optional: true + + '@cypress/request@2.88.12': + dependencies: + aws-sign2: 0.7.0 + aws4: 1.13.2 + caseless: 0.12.0 + combined-stream: 1.0.8 + extend: 3.0.2 + forever-agent: 0.6.1 + form-data: 2.3.3 + http-signature: 1.3.6 + is-typedarray: 1.0.0 + isstream: 0.1.2 + json-stringify-safe: 5.0.1 + mime-types: 2.1.35 + performance-now: 2.1.0 + qs: 6.10.4 + safe-buffer: 5.2.1 + tough-cookie: 4.1.4 + tunnel-agent: 0.6.0 + uuid: 8.3.2 + optional: true + + '@cypress/xvfb@1.2.4(supports-color@8.1.1)': + dependencies: + debug: 3.2.7(supports-color@8.1.1) + lodash.once: 4.1.1 + transitivePeerDependencies: + - supports-color + optional: true + + '@dimaka/interface@0.0.3-alpha.0(@babel/core@7.26.9)(@popperjs/core@2.11.8)(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@emotion/css': 11.5.0(@babel/core@7.26.9) + '@juggle/resize-observer': 3.3.1 + animejs: 3.2.1 + clsx: 1.1.1 + react: 18.3.1 + react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-portal: 4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-use: 17.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-use-measure: 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + valtio: 1.11.2(@types/react@18.3.18)(react@18.3.1) + zustand: 3.6.5(react@18.3.1) + transitivePeerDependencies: + - '@babel/core' + - '@popperjs/core' + - '@types/react' + - react-dom + - supports-color + + '@discoveryjs/json-ext@0.5.7': {} + + '@emnapi/runtime@1.3.1': + dependencies: + tslib: 2.8.1 + optional: true + + '@emotion/babel-plugin@11.13.5': + dependencies: + '@babel/helper-module-imports': 7.25.9 + '@babel/runtime': 7.26.9 + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/serialize': 1.3.3 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.2.0 + transitivePeerDependencies: + - supports-color + + '@emotion/cache@11.14.0': + dependencies: + '@emotion/memoize': 0.9.0 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + stylis: 4.2.0 + + '@emotion/css@11.5.0(@babel/core@7.26.9)': + dependencies: + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/sheet': 1.4.0 + '@emotion/utils': 1.4.2 + optionalDependencies: + '@babel/core': 7.26.9 + transitivePeerDependencies: + - supports-color + + '@emotion/hash@0.9.2': {} + + '@emotion/memoize@0.9.0': {} + + '@emotion/react@11.14.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@emotion/babel-plugin': 11.13.5 + '@emotion/cache': 11.14.0 + '@emotion/serialize': 1.3.3 + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@emotion/utils': 1.4.2 + '@emotion/weak-memoize': 0.4.0 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + transitivePeerDependencies: + - supports-color + + '@emotion/serialize@1.3.3': + dependencies: + '@emotion/hash': 0.9.2 + '@emotion/memoize': 0.9.0 + '@emotion/unitless': 0.10.0 + '@emotion/utils': 1.4.2 + csstype: 3.1.3 + + '@emotion/sheet@1.4.0': {} + + '@emotion/unitless@0.10.0': {} + + '@emotion/use-insertion-effect-with-fallbacks@1.2.0(react@18.3.1)': + dependencies: + react: 18.3.1 + + '@emotion/utils@1.4.2': {} + + '@emotion/weak-memoize@0.4.0': {} + + '@esbuild/aix-ppc64@0.19.12': + optional: true + + '@esbuild/aix-ppc64@0.25.0': + optional: true + + '@esbuild/android-arm64@0.18.20': + optional: true + + '@esbuild/android-arm64@0.19.12': + optional: true + + '@esbuild/android-arm64@0.25.0': + optional: true + + '@esbuild/android-arm@0.18.20': + optional: true + + '@esbuild/android-arm@0.19.12': + optional: true + + '@esbuild/android-arm@0.25.0': + optional: true + + '@esbuild/android-x64@0.18.20': + optional: true + + '@esbuild/android-x64@0.19.12': + optional: true + + '@esbuild/android-x64@0.25.0': + optional: true + + '@esbuild/darwin-arm64@0.18.20': + optional: true + + '@esbuild/darwin-arm64@0.19.12': + optional: true + + '@esbuild/darwin-arm64@0.25.0': + optional: true + + '@esbuild/darwin-x64@0.18.20': + optional: true + + '@esbuild/darwin-x64@0.19.12': + optional: true + + '@esbuild/darwin-x64@0.25.0': + optional: true + + '@esbuild/freebsd-arm64@0.18.20': + optional: true + + '@esbuild/freebsd-arm64@0.19.12': + optional: true + + '@esbuild/freebsd-arm64@0.25.0': + optional: true + + '@esbuild/freebsd-x64@0.18.20': + optional: true + + '@esbuild/freebsd-x64@0.19.12': + optional: true + + '@esbuild/freebsd-x64@0.25.0': + optional: true + + '@esbuild/linux-arm64@0.18.20': + optional: true + + '@esbuild/linux-arm64@0.19.12': + optional: true + + '@esbuild/linux-arm64@0.25.0': + optional: true + + '@esbuild/linux-arm@0.18.20': + optional: true + + '@esbuild/linux-arm@0.19.12': + optional: true + + '@esbuild/linux-arm@0.25.0': + optional: true + + '@esbuild/linux-ia32@0.18.20': + optional: true + + '@esbuild/linux-ia32@0.19.12': + optional: true + + '@esbuild/linux-ia32@0.25.0': + optional: true + + '@esbuild/linux-loong64@0.18.20': + optional: true + + '@esbuild/linux-loong64@0.19.12': + optional: true + + '@esbuild/linux-loong64@0.25.0': + optional: true + + '@esbuild/linux-mips64el@0.18.20': + optional: true + + '@esbuild/linux-mips64el@0.19.12': + optional: true + + '@esbuild/linux-mips64el@0.25.0': + optional: true + + '@esbuild/linux-ppc64@0.18.20': + optional: true + + '@esbuild/linux-ppc64@0.19.12': + optional: true + + '@esbuild/linux-ppc64@0.25.0': + optional: true + + '@esbuild/linux-riscv64@0.18.20': + optional: true + + '@esbuild/linux-riscv64@0.19.12': + optional: true + + '@esbuild/linux-riscv64@0.25.0': + optional: true + + '@esbuild/linux-s390x@0.18.20': + optional: true + + '@esbuild/linux-s390x@0.19.12': + optional: true + + '@esbuild/linux-s390x@0.25.0': + optional: true + + '@esbuild/linux-x64@0.18.20': + optional: true + + '@esbuild/linux-x64@0.19.12': + optional: true + + '@esbuild/linux-x64@0.25.0': + optional: true + + '@esbuild/netbsd-arm64@0.25.0': + optional: true + + '@esbuild/netbsd-x64@0.18.20': + optional: true + + '@esbuild/netbsd-x64@0.19.12': + optional: true + + '@esbuild/netbsd-x64@0.25.0': + optional: true + + '@esbuild/openbsd-arm64@0.25.0': + optional: true + + '@esbuild/openbsd-x64@0.18.20': + optional: true + + '@esbuild/openbsd-x64@0.19.12': + optional: true + + '@esbuild/openbsd-x64@0.25.0': + optional: true + + '@esbuild/sunos-x64@0.18.20': + optional: true + + '@esbuild/sunos-x64@0.19.12': + optional: true + + '@esbuild/sunos-x64@0.25.0': + optional: true + + '@esbuild/win32-arm64@0.18.20': + optional: true + + '@esbuild/win32-arm64@0.19.12': + optional: true + + '@esbuild/win32-arm64@0.25.0': + optional: true + + '@esbuild/win32-ia32@0.18.20': + optional: true + + '@esbuild/win32-ia32@0.19.12': + optional: true + + '@esbuild/win32-ia32@0.25.0': + optional: true + + '@esbuild/win32-x64@0.18.20': + optional: true + + '@esbuild/win32-x64@0.19.12': + optional: true + + '@esbuild/win32-x64@0.25.0': + optional: true + + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.1': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.0(supports-color@8.1.1) + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@fal-works/esbuild-plugin-global-externals@2.1.2': {} + + '@fastify/busboy@2.1.1': {} + + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 + + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/dom': 1.6.13 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.9 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.9': {} + + '@gar/promisify@1.1.3': + optional: true + + '@hapi/hoek@9.3.0': {} + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.0(supports-color@8.1.1) + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@img/sharp-darwin-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-arm64': 1.0.4 + optional: true + + '@img/sharp-darwin-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-darwin-x64': 1.0.4 + optional: true + + '@img/sharp-libvips-darwin-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-darwin-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linux-arm@1.0.5': + optional: true + + '@img/sharp-libvips-linux-s390x@1.0.4': + optional: true + + '@img/sharp-libvips-linux-x64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-arm64@1.0.4': + optional: true + + '@img/sharp-libvips-linuxmusl-x64@1.0.4': + optional: true + + '@img/sharp-linux-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm64': 1.0.4 + optional: true + + '@img/sharp-linux-arm@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-arm': 1.0.5 + optional: true + + '@img/sharp-linux-s390x@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-s390x': 1.0.4 + optional: true + + '@img/sharp-linux-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linux-x64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-arm64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + optional: true + + '@img/sharp-linuxmusl-x64@0.33.5': + optionalDependencies: + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + optional: true + + '@img/sharp-wasm32@0.33.5': + dependencies: + '@emnapi/runtime': 1.3.1 + optional: true + + '@img/sharp-win32-ia32@0.33.5': + optional: true + + '@img/sharp-win32-x64@0.33.5': + optional: true + + '@isaacs/cliui@8.0.2': + dependencies: + string-width: 5.1.2 + string-width-cjs: string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: wrap-ansi@7.0.0 + + '@istanbuljs/load-nyc-config@1.1.0': + dependencies: + camelcase: 5.3.1 + find-up: 4.1.0 + get-package-type: 0.1.0 + js-yaml: 3.14.1 + resolve-from: 5.0.0 + + '@istanbuljs/schema@0.1.3': {} + + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/transform@29.7.0': + dependencies: + '@babel/core': 7.26.9 + '@jest/types': 29.6.3 + '@jridgewell/trace-mapping': 0.3.25 + babel-plugin-istanbul: 6.1.1 + chalk: 4.1.2 + convert-source-map: 2.0.0 + fast-json-stable-stringify: 2.1.0 + graceful-fs: 4.2.11 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + micromatch: 4.0.8 + pirates: 4.0.6 + slash: 3.0.0 + write-file-atomic: 4.0.2 + transitivePeerDependencies: + - supports-color + + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 22.13.9 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@jimp/bmp@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + bmp-js: 0.1.0 + core-js: 3.41.0 + optional: true + + '@jimp/core@0.10.3(debug@4.4.0)': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/utils': 0.10.3 + any-base: 1.1.0 + buffer: 6.0.3 + core-js: 3.41.0 + exif-parser: 0.1.12 + file-type: 9.0.0 + load-bmfont: 1.4.2(debug@4.4.0) + mkdirp: 0.5.6 + phin: 2.9.3 + pixelmatch: 4.0.2 + tinycolor2: 1.6.0 + transitivePeerDependencies: + - debug + optional: true + + '@jimp/custom@0.10.3(debug@4.4.0)': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/core': 0.10.3(debug@4.4.0) + core-js: 3.41.0 + transitivePeerDependencies: + - debug + optional: true + + '@jimp/gif@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + omggif: 1.0.10 + optional: true + + '@jimp/jpeg@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + jpeg-js: 0.3.7 + optional: true + + '@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-circle@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + tinycolor2: 1.6.0 + optional: true + + '@jimp/plugin-contain@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-cover@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-displace@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-dither@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-fisheye@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-flip@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-rotate': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-gaussian@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-invert@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-mask@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-normalize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-print@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(debug@4.4.0)': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + load-bmfont: 1.4.2(debug@4.4.0) + transitivePeerDependencies: + - debug + optional: true + + '@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-shadow@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugin-threshold@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-color': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + optional: true + + '@jimp/plugins@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(debug@4.4.0)': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugin-blit': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-blur': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-circle': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-color': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-contain': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))) + '@jimp/plugin-cover': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-scale@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))) + '@jimp/plugin-crop': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-displace': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-dither': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-fisheye': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-flip': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-rotate@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))) + '@jimp/plugin-gaussian': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-invert': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-mask': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-normalize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-print': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(debug@4.4.0) + '@jimp/plugin-resize': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/plugin-rotate': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blit@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-crop@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))) + '@jimp/plugin-scale': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))) + '@jimp/plugin-shadow': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-blur@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))) + '@jimp/plugin-threshold': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(@jimp/plugin-color@0.10.3(@jimp/custom@0.10.3(debug@4.4.0)))(@jimp/plugin-resize@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))) + core-js: 3.41.0 + timm: 1.7.1 + transitivePeerDependencies: + - debug + optional: true + + '@jimp/png@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/utils': 0.10.3 + core-js: 3.41.0 + pngjs: 3.4.0 + optional: true + + '@jimp/tiff@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + core-js: 3.41.0 + utif: 2.0.1 + optional: true + + '@jimp/types@0.10.3(@jimp/custom@0.10.3(debug@4.4.0))': + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/bmp': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/gif': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/jpeg': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/png': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + '@jimp/tiff': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + core-js: 3.41.0 + timm: 1.7.1 + optional: true + + '@jimp/utils@0.10.3': + dependencies: + '@babel/runtime': 7.26.9 + core-js: 3.41.0 + regenerator-runtime: 0.13.11 + optional: true + + '@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.5.4)(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + dependencies: + glob: 7.2.3 + glob-promise: 4.2.2(glob@7.2.3) + magic-string: 0.27.0 + react-docgen-typescript: 2.2.2(typescript@5.5.4) + vite: 6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + optionalDependencies: + typescript: 5.5.4 + + '@jridgewell/gen-mapping@0.3.8': + dependencies: + '@jridgewell/set-array': 1.2.1 + '@jridgewell/sourcemap-codec': 1.5.0 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/resolve-uri@3.1.2': {} + + '@jridgewell/set-array@1.2.1': {} + + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + + '@jridgewell/sourcemap-codec@1.5.0': {} + + '@jridgewell/trace-mapping@0.3.25': + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.5.0 + + '@jsonjoy.com/base64@1.1.2(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jsonjoy.com/json-pack@1.2.0(tslib@2.8.1)': + dependencies: + '@jsonjoy.com/base64': 1.1.2(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + hyperdyperid: 1.2.0 + thingies: 1.21.0(tslib@2.8.1) + tslib: 2.8.1 + + '@jsonjoy.com/util@1.5.0(tslib@2.8.1)': + dependencies: + tslib: 2.8.1 + + '@jspm/core@2.1.0': {} + + '@juggle/resize-observer@3.3.1': {} + + '@juggle/resize-observer@3.4.0': {} + + '@mapbox/node-pre-gyp@1.0.11(encoding@0.1.13)': + dependencies: + detect-libc: 2.0.3 + https-proxy-agent: 5.0.1 + make-dir: 3.1.0 + node-fetch: 2.7.0(encoding@0.1.13) + nopt: 5.0.0 + npmlog: 5.0.1 + rimraf: 3.0.2 + semver: 7.7.1 + tar: 6.2.1 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + '@mdx-js/react@2.3.0(react@18.3.1)': + dependencies: + '@types/mdx': 2.0.13 + '@types/react': 18.3.18 + react: 18.3.1 + + '@module-federation/error-codes@0.11.2': {} + + '@module-federation/runtime-core@0.11.2': + dependencies: + '@module-federation/error-codes': 0.11.2 + '@module-federation/sdk': 0.11.2 + + '@module-federation/runtime-tools@0.11.2': + dependencies: + '@module-federation/runtime': 0.11.2 + '@module-federation/webpack-bundler-runtime': 0.11.2 + + '@module-federation/runtime@0.11.2': + dependencies: + '@module-federation/error-codes': 0.11.2 + '@module-federation/runtime-core': 0.11.2 + '@module-federation/sdk': 0.11.2 + + '@module-federation/sdk@0.11.2': {} + + '@module-federation/webpack-bundler-runtime@0.11.2': + dependencies: + '@module-federation/runtime': 0.11.2 + '@module-federation/sdk': 0.11.2 + + '@monaco-editor/loader@1.5.0': + dependencies: + state-local: 1.0.7 + + '@monaco-editor/react@4.7.0(monaco-editor@0.52.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@monaco-editor/loader': 1.5.0 + monaco-editor: 0.52.2 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@msgpack/msgpack@2.8.0': {} + + '@ndelangen/get-tarball@3.0.9': + dependencies: + gunzip-maybe: 1.4.2 + pump: 3.0.2 + tar-fs: 2.1.2 + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@npmcli/fs@2.1.2': + dependencies: + '@gar/promisify': 1.1.3 + semver: 7.7.1 + optional: true + + '@npmcli/move-file@2.0.1': + dependencies: + mkdirp: 1.0.4 + rimraf: 3.0.2 + optional: true + + '@nxg-org/mineflayer-auto-jump@0.7.18': + dependencies: + '@nxg-org/mineflayer-physics-util': 1.8.10 + strict-event-emitter-types: 2.0.0 + + '@nxg-org/mineflayer-physics-util@1.8.10': + dependencies: + '@nxg-org/mineflayer-util-plugin': 1.8.4 + + '@nxg-org/mineflayer-tracker@1.3.0(encoding@0.1.13)': + dependencies: + '@nxg-org/mineflayer-physics-util': 1.8.10 + '@nxg-org/mineflayer-trajectories': 1.2.0(encoding@0.1.13) + '@nxg-org/mineflayer-util-plugin': 1.8.4 + transitivePeerDependencies: + - encoding + - supports-color + + '@nxg-org/mineflayer-trajectories@1.2.0(encoding@0.1.13)': + dependencies: + '@nxg-org/mineflayer-util-plugin': 1.8.4 + minecraft-data: 3.98.0 + mineflayer: https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659(encoding@0.1.13) + prismarine-block: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-item: 1.17.0 + prismarine-physics: https://codeload.github.com/zardoy/prismarine-physics/tar.gz/353e25b800149393f40539ec381218be44cbb03b + vec3: 0.1.10 + transitivePeerDependencies: + - encoding + - supports-color + + '@nxg-org/mineflayer-util-plugin@1.8.4': {} + + '@pkgjs/parseargs@0.11.0': + optional: true + + '@popperjs/core@2.11.8': {} + + '@radix-ui/number@1.0.1': + dependencies: + '@babel/runtime': 7.26.9 + + '@radix-ui/primitive@1.0.1': + dependencies: + '@babel/runtime': 7.26.9 + + '@radix-ui/primitive@1.1.1': {} + + '@radix-ui/react-arrow@1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-collection@1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-collection@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-compose-refs@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-context@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-direction@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-focus-guards@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-id@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-popper@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/rect': 1.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-portal@1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-primitive@1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-primitive@2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-slot': 1.1.2(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-select@1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/number': 1.0.1 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.0.2(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + aria-hidden: 1.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-remove-scroll: 2.5.5(@types/react@18.3.18)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-separator@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-slot@1.0.2(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-slot@1.1.2(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-toggle-group@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-toggle@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-toolbar@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-separator': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toggle-group': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-previous@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-rect@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/rect': 1.0.1 + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-use-size@1.0.1(@types/react@18.3.18)(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.3.18)(react@18.3.1) + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + '@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@babel/runtime': 7.26.9 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/rect@1.0.1': + dependencies: + '@babel/runtime': 7.26.9 + + '@react-oauth/google@0.12.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@rollup/plugin-babel@5.3.1(@babel/core@7.26.9)(@types/babel__core@7.20.5)(rollup@2.79.2)': + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-module-imports': 7.25.9 + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) + rollup: 2.79.2 + optionalDependencies: + '@types/babel__core': 7.20.5 + transitivePeerDependencies: + - supports-color + + '@rollup/plugin-node-resolve@15.3.1(rollup@2.79.2)': + dependencies: + '@rollup/pluginutils': 5.1.4(rollup@2.79.2) + '@types/resolve': 1.20.2 + deepmerge: 4.3.1 + is-module: 1.0.0 + resolve: 1.22.10 + optionalDependencies: + rollup: 2.79.2 + + '@rollup/plugin-replace@2.4.2(rollup@2.79.2)': + dependencies: + '@rollup/pluginutils': 3.1.0(rollup@2.79.2) + magic-string: 0.25.9 + rollup: 2.79.2 + + '@rollup/plugin-terser@0.4.4(rollup@2.79.2)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.39.0 + optionalDependencies: + rollup: 2.79.2 + + '@rollup/pluginutils@3.1.0(rollup@2.79.2)': + dependencies: + '@types/estree': 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.2 + + '@rollup/pluginutils@5.1.4(rollup@2.79.2)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 2.79.2 + + '@rollup/rollup-android-arm-eabi@4.34.9': + optional: true + + '@rollup/rollup-android-arm64@4.34.9': + optional: true + + '@rollup/rollup-darwin-arm64@4.34.9': + optional: true + + '@rollup/rollup-darwin-x64@4.34.9': + optional: true + + '@rollup/rollup-freebsd-arm64@4.34.9': + optional: true + + '@rollup/rollup-freebsd-x64@4.34.9': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.34.9': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.34.9': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.34.9': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-x64-musl@4.34.9': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.34.9': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.34.9': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.34.9': + optional: true + + '@rsbuild/core@1.3.5': + dependencies: + '@rspack/core': 1.3.3(@swc/helpers@0.5.15) + '@rspack/lite-tapable': 1.0.1 + '@swc/helpers': 0.5.15 + core-js: 3.41.0 + jiti: 2.4.2 + transitivePeerDependencies: + - '@rspack/tracing' + + '@rsbuild/plugin-node-polyfill@1.3.0(@rsbuild/core@1.3.5)': + dependencies: + assert: 2.1.0 + browserify-zlib: 0.2.0 + buffer: 6.0.3 + console-browserify: 1.2.0 + constants-browserify: 1.0.0 + crypto-browserify: 3.12.1 + domain-browser: 5.7.0 + events: 3.3.0 + https-browserify: 1.0.0 + os-browserify: 0.3.0 + path-browserify: 1.0.1 + process: 0.11.10 + punycode: 2.3.1 + querystring-es3: 0.2.1 + readable-stream: 4.7.0 + stream-browserify: 3.0.0 + stream-http: 3.2.0 + string_decoder: 1.3.0 + timers-browserify: 2.0.12 + tty-browserify: 0.0.1 + url: 0.11.4 + util: 0.12.5 + vm-browserify: 1.1.2 + optionalDependencies: + '@rsbuild/core': 1.3.5 + + '@rsbuild/plugin-react@1.2.0(@rsbuild/core@1.3.5)': + dependencies: + '@rsbuild/core': 1.3.5 + '@rspack/plugin-react-refresh': 1.2.0(react-refresh@0.17.0) + react-refresh: 0.17.0 + transitivePeerDependencies: + - webpack-hot-middleware + + '@rsbuild/plugin-type-check@1.2.1(@rsbuild/core@1.3.5)(@rspack/core@1.3.3(@swc/helpers@0.5.15))(typescript@5.5.4)': + dependencies: + deepmerge: 4.3.1 + json5: 2.2.3 + reduce-configs: 1.1.0 + ts-checker-rspack-plugin: 1.1.1(@rspack/core@1.3.3(@swc/helpers@0.5.15))(typescript@5.5.4) + optionalDependencies: + '@rsbuild/core': 1.3.5 + transitivePeerDependencies: + - '@rspack/core' + - typescript + + '@rsbuild/plugin-typed-css-modules@1.0.2(@rsbuild/core@1.3.5)': + optionalDependencies: + '@rsbuild/core': 1.3.5 + + '@rspack/binding-darwin-arm64@1.3.3': + optional: true + + '@rspack/binding-darwin-x64@1.3.3': + optional: true + + '@rspack/binding-linux-arm64-gnu@1.3.3': + optional: true + + '@rspack/binding-linux-arm64-musl@1.3.3': + optional: true + + '@rspack/binding-linux-x64-gnu@1.3.3': + optional: true + + '@rspack/binding-linux-x64-musl@1.3.3': + optional: true + + '@rspack/binding-win32-arm64-msvc@1.3.3': + optional: true + + '@rspack/binding-win32-ia32-msvc@1.3.3': + optional: true + + '@rspack/binding-win32-x64-msvc@1.3.3': + optional: true + + '@rspack/binding@1.3.3': + optionalDependencies: + '@rspack/binding-darwin-arm64': 1.3.3 + '@rspack/binding-darwin-x64': 1.3.3 + '@rspack/binding-linux-arm64-gnu': 1.3.3 + '@rspack/binding-linux-arm64-musl': 1.3.3 + '@rspack/binding-linux-x64-gnu': 1.3.3 + '@rspack/binding-linux-x64-musl': 1.3.3 + '@rspack/binding-win32-arm64-msvc': 1.3.3 + '@rspack/binding-win32-ia32-msvc': 1.3.3 + '@rspack/binding-win32-x64-msvc': 1.3.3 + + '@rspack/core@1.3.3(@swc/helpers@0.5.15)': + dependencies: + '@module-federation/runtime-tools': 0.11.2 + '@rspack/binding': 1.3.3 + '@rspack/lite-tapable': 1.0.1 + caniuse-lite: 1.0.30001713 + optionalDependencies: + '@swc/helpers': 0.5.15 + + '@rspack/lite-tapable@1.0.1': {} + + '@rspack/plugin-react-refresh@1.2.0(react-refresh@0.17.0)': + dependencies: + error-stack-parser: 2.1.4 + html-entities: 2.6.0 + react-refresh: 0.17.0 + + '@rushstack/eslint-patch@1.10.5': {} + + '@sideway/address@4.1.5': + dependencies: + '@hapi/hoek': 9.3.0 + + '@sideway/formula@3.0.1': {} + + '@sideway/pinpoint@2.0.0': {} + + '@sinclair/typebox@0.27.8': {} + + '@socket.io/component-emitter@3.1.2': {} + + '@storybook/addon-actions@7.6.20': + dependencies: + '@storybook/core-events': 7.6.20 + '@storybook/global': 5.0.0 + '@types/uuid': 9.0.8 + dequal: 2.0.3 + polished: 4.3.1 + uuid: 9.0.1 + + '@storybook/addon-backgrounds@7.6.20': + dependencies: + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + ts-dedent: 2.2.0 + + '@storybook/addon-controls@7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@storybook/blocks': 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + lodash: 4.17.21 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - react + - react-dom + - supports-color + + '@storybook/addon-docs@7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@jest/transform': 29.7.0 + '@mdx-js/react': 2.3.0(react@18.3.1) + '@storybook/blocks': 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/client-logger': 7.6.20 + '@storybook/components': 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/csf-plugin': 7.6.20 + '@storybook/csf-tools': 7.6.20 + '@storybook/global': 5.0.0 + '@storybook/mdx2-csf': 1.1.0 + '@storybook/node-logger': 7.6.20 + '@storybook/postinstall': 7.6.20 + '@storybook/preview-api': 7.6.20 + '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 7.6.20 + fs-extra: 11.3.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + remark-external-links: 8.0.0 + remark-slug: 6.1.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/addon-essentials@7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@storybook/addon-actions': 7.6.20 + '@storybook/addon-backgrounds': 7.6.20 + '@storybook/addon-controls': 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-docs': 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/addon-highlight': 7.6.20 + '@storybook/addon-measure': 7.6.20 + '@storybook/addon-outline': 7.6.20 + '@storybook/addon-toolbars': 7.6.20 + '@storybook/addon-viewport': 7.6.20 + '@storybook/core-common': 7.6.20(encoding@0.1.13) + '@storybook/manager-api': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/node-logger': 7.6.20 + '@storybook/preview-api': 7.6.20 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + ts-dedent: 2.2.0 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/addon-highlight@7.6.20': + dependencies: + '@storybook/global': 5.0.0 + + '@storybook/addon-links@7.6.20(react@18.3.1)': + dependencies: + '@storybook/csf': 0.1.13 + '@storybook/global': 5.0.0 + ts-dedent: 2.2.0 + optionalDependencies: + react: 18.3.1 + + '@storybook/addon-measure@7.6.20': + dependencies: + '@storybook/global': 5.0.0 + tiny-invariant: 1.3.3 + + '@storybook/addon-outline@7.6.20': + dependencies: + '@storybook/global': 5.0.0 + ts-dedent: 2.2.0 + + '@storybook/addon-toolbars@7.6.20': {} + + '@storybook/addon-viewport@7.6.20': + dependencies: + memoizerific: 1.11.3 + + '@storybook/blocks@7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/components': 7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.13 + '@storybook/docs-tools': 7.6.20(encoding@0.1.13) + '@storybook/global': 5.0.0 + '@storybook/manager-api': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/preview-api': 7.6.20 + '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 7.6.20 + '@types/lodash': 4.17.16 + color-convert: 2.0.1 + dequal: 2.0.3 + lodash: 4.17.21 + markdown-to-jsx: 7.7.4(react@18.3.1) + memoizerific: 1.11.3 + polished: 4.3.1 + react: 18.3.1 + react-colorful: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + telejson: 7.2.0 + tocbot: 4.35.0 + ts-dedent: 2.2.0 + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + - encoding + - supports-color + + '@storybook/builder-manager@7.6.20(encoding@0.1.13)': + dependencies: + '@fal-works/esbuild-plugin-global-externals': 2.1.2 + '@storybook/core-common': 7.6.20(encoding@0.1.13) + '@storybook/manager': 7.6.20 + '@storybook/node-logger': 7.6.20 + '@types/ejs': 3.1.5 + '@types/find-cache-dir': 3.2.1 + '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.20) + browser-assert: 1.2.1 + ejs: 3.1.10 + esbuild: 0.18.20 + esbuild-plugin-alias: 0.2.1 + express: 4.21.2 + find-cache-dir: 3.3.2 + fs-extra: 11.3.0 + process: 0.11.10 + util: 0.12.5 + transitivePeerDependencies: + - encoding + - supports-color + + '@storybook/builder-vite@7.6.20(encoding@0.1.13)(typescript@5.5.4)(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/core-common': 7.6.20(encoding@0.1.13) + '@storybook/csf-plugin': 7.6.20 + '@storybook/node-logger': 7.6.20 + '@storybook/preview': 7.6.20 + '@storybook/preview-api': 7.6.20 + '@storybook/types': 7.6.20 + '@types/find-cache-dir': 3.2.1 + browser-assert: 1.2.1 + es-module-lexer: 0.9.3 + express: 4.21.2 + find-cache-dir: 3.3.2 + fs-extra: 11.3.0 + magic-string: 0.30.17 + rollup: 3.29.5 + vite: 6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - encoding + - supports-color + + '@storybook/channels@7.6.20': + dependencies: + '@storybook/client-logger': 7.6.20 + '@storybook/core-events': 7.6.20 + '@storybook/global': 5.0.0 + qs: 6.14.0 + telejson: 7.2.0 + tiny-invariant: 1.3.3 + + '@storybook/cli@7.6.20(encoding@0.1.13)': + dependencies: + '@babel/core': 7.26.9 + '@babel/preset-env': 7.26.9(@babel/core@7.26.9) + '@babel/types': 7.26.9 + '@ndelangen/get-tarball': 3.0.9 + '@storybook/codemod': 7.6.20 + '@storybook/core-common': 7.6.20(encoding@0.1.13) + '@storybook/core-events': 7.6.20 + '@storybook/core-server': 7.6.20(encoding@0.1.13) + '@storybook/csf-tools': 7.6.20 + '@storybook/node-logger': 7.6.20 + '@storybook/telemetry': 7.6.20(encoding@0.1.13) + '@storybook/types': 7.6.20 + '@types/semver': 7.5.8 + '@yarnpkg/fslib': 2.10.3 + '@yarnpkg/libzip': 2.3.0 + chalk: 4.1.2 + commander: 6.2.1 + cross-spawn: 7.0.6 + detect-indent: 6.1.0 + envinfo: 7.14.0 + execa: 5.1.1 + express: 4.21.2 + find-up: 5.0.0 + fs-extra: 11.3.0 + get-npm-tarball-url: 2.1.0 + get-port: 5.1.1 + giget: 1.2.5 + globby: 11.1.0 + jscodeshift: 0.15.2(@babel/preset-env@7.26.9(@babel/core@7.26.9)) + leven: 3.1.0 + ora: 5.4.1 + prettier: 2.8.8 + prompts: 2.4.2 + puppeteer-core: 2.1.1 + read-pkg-up: 7.0.1 + semver: 7.7.1 + strip-json-comments: 3.1.1 + tempy: 1.0.1 + ts-dedent: 2.2.0 + util-deprecate: 1.0.2 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@storybook/client-logger@7.6.20': + dependencies: + '@storybook/global': 5.0.0 + + '@storybook/codemod@7.6.20': + dependencies: + '@babel/core': 7.26.9 + '@babel/preset-env': 7.26.9(@babel/core@7.26.9) + '@babel/types': 7.26.9 + '@storybook/csf': 0.1.13 + '@storybook/csf-tools': 7.6.20 + '@storybook/node-logger': 7.6.20 + '@storybook/types': 7.6.20 + '@types/cross-spawn': 6.0.6 + cross-spawn: 7.0.6 + globby: 11.1.0 + jscodeshift: 0.15.2(@babel/preset-env@7.26.9(@babel/core@7.26.9)) + lodash: 4.17.21 + prettier: 2.8.8 + recast: 0.23.11 + transitivePeerDependencies: + - supports-color + + '@storybook/components@7.6.20(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-toolbar': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/client-logger': 7.6.20 + '@storybook/csf': 0.1.13 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 7.6.20 + memoizerific: 1.11.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + use-resize-observer: 9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + + '@storybook/core-client@7.6.20': + dependencies: + '@storybook/client-logger': 7.6.20 + '@storybook/preview-api': 7.6.20 + + '@storybook/core-common@7.6.20(encoding@0.1.13)': + dependencies: + '@storybook/core-events': 7.6.20 + '@storybook/node-logger': 7.6.20 + '@storybook/types': 7.6.20 + '@types/find-cache-dir': 3.2.1 + '@types/node': 18.19.79 + '@types/node-fetch': 2.6.12 + '@types/pretty-hrtime': 1.0.3 + chalk: 4.1.2 + esbuild: 0.18.20 + esbuild-register: 3.6.0(esbuild@0.18.20) + file-system-cache: 2.3.0 + find-cache-dir: 3.3.2 + find-up: 5.0.0 + fs-extra: 11.3.0 + glob: 10.4.5 + handlebars: 4.7.8 + lazy-universal-dotenv: 4.0.0 + node-fetch: 2.7.0(encoding@0.1.13) + picomatch: 2.3.1 + pkg-dir: 5.0.0 + pretty-hrtime: 1.0.3 + resolve-from: 5.0.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - encoding + - supports-color + + '@storybook/core-events@7.6.20': + dependencies: + ts-dedent: 2.2.0 + + '@storybook/core-server@7.6.20(encoding@0.1.13)': + dependencies: + '@aw-web-design/x-default-browser': 1.4.126 + '@discoveryjs/json-ext': 0.5.7 + '@storybook/builder-manager': 7.6.20(encoding@0.1.13) + '@storybook/channels': 7.6.20 + '@storybook/core-common': 7.6.20(encoding@0.1.13) + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.13 + '@storybook/csf-tools': 7.6.20 + '@storybook/docs-mdx': 0.1.0 + '@storybook/global': 5.0.0 + '@storybook/manager': 7.6.20 + '@storybook/node-logger': 7.6.20 + '@storybook/preview-api': 7.6.20 + '@storybook/telemetry': 7.6.20(encoding@0.1.13) + '@storybook/types': 7.6.20 + '@types/detect-port': 1.3.5 + '@types/node': 18.19.79 + '@types/pretty-hrtime': 1.0.3 + '@types/semver': 7.5.8 + better-opn: 3.0.2 + chalk: 4.1.2 + cli-table3: 0.6.5 + compression: 1.8.0 + detect-port: 1.6.1 + express: 4.21.2 + fs-extra: 11.3.0 + globby: 11.1.0 + lodash: 4.17.21 + open: 8.4.2 + pretty-hrtime: 1.0.3 + prompts: 2.4.2 + read-pkg-up: 7.0.1 + semver: 7.7.1 + telejson: 7.2.0 + tiny-invariant: 1.3.3 + ts-dedent: 2.2.0 + util: 0.12.5 + util-deprecate: 1.0.2 + watchpack: 2.4.2 + ws: 8.18.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + '@storybook/csf-plugin@7.6.20': + dependencies: + '@storybook/csf-tools': 7.6.20 + unplugin: 1.16.1 + transitivePeerDependencies: + - supports-color + + '@storybook/csf-tools@7.6.20': + dependencies: + '@babel/generator': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + '@storybook/csf': 0.1.13 + '@storybook/types': 7.6.20 + fs-extra: 11.3.0 + recast: 0.23.11 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - supports-color + + '@storybook/csf@0.1.13': + dependencies: + type-fest: 2.19.0 + + '@storybook/docs-mdx@0.1.0': {} + + '@storybook/docs-tools@7.6.20(encoding@0.1.13)': + dependencies: + '@storybook/core-common': 7.6.20(encoding@0.1.13) + '@storybook/preview-api': 7.6.20 + '@storybook/types': 7.6.20 + '@types/doctrine': 0.0.3 + assert: 2.1.0 + doctrine: 3.0.0 + lodash: 4.17.21 + transitivePeerDependencies: + - encoding + - supports-color + + '@storybook/global@5.0.0': {} + + '@storybook/manager-api@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.13 + '@storybook/global': 5.0.0 + '@storybook/router': 7.6.20 + '@storybook/theming': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 7.6.20 + dequal: 2.0.3 + lodash: 4.17.21 + memoizerific: 1.11.3 + store2: 2.14.4 + telejson: 7.2.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - react + - react-dom + + '@storybook/manager@7.6.20': {} + + '@storybook/mdx2-csf@1.1.0': {} + + '@storybook/node-logger@7.6.20': {} + + '@storybook/postinstall@7.6.20': {} + + '@storybook/preview-api@7.6.20': + dependencies: + '@storybook/channels': 7.6.20 + '@storybook/client-logger': 7.6.20 + '@storybook/core-events': 7.6.20 + '@storybook/csf': 0.1.13 + '@storybook/global': 5.0.0 + '@storybook/types': 7.6.20 + '@types/qs': 6.9.18 + dequal: 2.0.3 + lodash: 4.17.21 + memoizerific: 1.11.3 + qs: 6.14.0 + synchronous-promise: 2.0.17 + ts-dedent: 2.2.0 + util-deprecate: 1.0.2 + + '@storybook/preview@7.6.20': {} + + '@storybook/react-dom-shim@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@storybook/react-vite@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@2.79.2)(typescript@5.5.4)(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + dependencies: + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.5.4)(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@rollup/pluginutils': 5.1.4(rollup@2.79.2) + '@storybook/builder-vite': 7.6.20(encoding@0.1.13)(typescript@5.5.4)(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + '@storybook/react': 7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@vitejs/plugin-react': 3.1.0(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0)) + magic-string: 0.30.17 + react: 18.3.1 + react-docgen: 7.1.1 + react-dom: 18.3.1(react@18.3.1) + vite: 6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - '@preact/preset-vite' + - encoding + - rollup + - supports-color + - typescript + - vite-plugin-glimmerx + + '@storybook/react@7.6.20(encoding@0.1.13)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + dependencies: + '@storybook/client-logger': 7.6.20 + '@storybook/core-client': 7.6.20 + '@storybook/docs-tools': 7.6.20(encoding@0.1.13) + '@storybook/global': 5.0.0 + '@storybook/preview-api': 7.6.20 + '@storybook/react-dom-shim': 7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@storybook/types': 7.6.20 + '@types/escodegen': 0.0.6 + '@types/estree': 0.0.51 + '@types/node': 18.19.79 + acorn: 7.4.1 + acorn-jsx: 5.3.2(acorn@7.4.1) + acorn-walk: 7.2.0 + escodegen: 2.1.0 + html-tags: 3.3.1 + lodash: 4.17.21 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-element-to-jsx-string: 15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + ts-dedent: 2.2.0 + type-fest: 2.19.0 + util-deprecate: 1.0.2 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - encoding + - supports-color + + '@storybook/router@7.6.20': + dependencies: + '@storybook/client-logger': 7.6.20 + memoizerific: 1.11.3 + qs: 6.14.0 + + '@storybook/telemetry@7.6.20(encoding@0.1.13)': + dependencies: + '@storybook/client-logger': 7.6.20 + '@storybook/core-common': 7.6.20(encoding@0.1.13) + '@storybook/csf-tools': 7.6.20 + chalk: 4.1.2 + detect-package-manager: 2.0.1 + fetch-retry: 5.0.6 + fs-extra: 11.3.0 + read-pkg-up: 7.0.1 + transitivePeerDependencies: + - encoding + - supports-color + + '@storybook/theming@7.6.20(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@emotion/use-insertion-effect-with-fallbacks': 1.2.0(react@18.3.1) + '@storybook/client-logger': 7.6.20 + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@storybook/types@7.6.20': + dependencies: + '@storybook/channels': 7.6.20 + '@types/babel__core': 7.20.5 + '@types/express': 4.17.21 + file-system-cache: 2.3.0 + + '@stylistic/eslint-plugin@2.13.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/utils': 8.26.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 + estraverse: 5.3.0 + picomatch: 4.0.2 + transitivePeerDependencies: + - supports-color + - typescript + + '@surma/rollup-plugin-off-main-thread@2.2.3': + dependencies: + ejs: 3.1.10 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.12 + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@tootallnate/once@2.0.0': {} + + '@tweenjs/tween.js@18.6.4': {} + + '@tweenjs/tween.js@20.0.3': {} + + '@types/babel__core@7.20.5': + dependencies: + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + '@types/babel__generator': 7.6.8 + '@types/babel__template': 7.4.4 + '@types/babel__traverse': 7.20.6 + + '@types/babel__generator@7.6.8': + dependencies: + '@babel/types': 7.26.9 + + '@types/babel__template@7.4.4': + dependencies: + '@babel/parser': 7.26.9 + '@babel/types': 7.26.9 + + '@types/babel__traverse@7.20.6': + dependencies: + '@babel/types': 7.26.9 + + '@types/body-parser@1.19.5': + dependencies: + '@types/connect': 3.4.38 + '@types/node': 22.13.9 + + '@types/chai-subset@1.3.6(@types/chai@4.3.20)': + dependencies: + '@types/chai': 4.3.20 + + '@types/chai@4.3.20': {} + + '@types/connect@3.4.38': + dependencies: + '@types/node': 22.13.9 + + '@types/cors@2.8.17': + dependencies: + '@types/node': 22.13.9 + + '@types/cross-spawn@6.0.6': + dependencies: + '@types/node': 22.13.9 + + '@types/debug@4.1.12': + dependencies: + '@types/ms': 2.1.0 + + '@types/detect-port@1.3.5': {} + + '@types/diff-match-patch@1.0.36': {} + + '@types/doctrine@0.0.3': {} + + '@types/doctrine@0.0.9': {} + + '@types/draco3d@1.4.10': {} + + '@types/ejs@3.1.5': {} + + '@types/emscripten@1.40.0': {} + + '@types/escodegen@0.0.6': {} + + '@types/estree@0.0.39': {} + + '@types/estree@0.0.51': {} + + '@types/estree@1.0.6': {} + + '@types/express-serve-static-core@4.19.6': + dependencies: + '@types/node': 22.13.9 + '@types/qs': 6.9.18 + '@types/range-parser': 1.2.7 + '@types/send': 0.17.4 + + '@types/express@4.17.21': + dependencies: + '@types/body-parser': 1.19.5 + '@types/express-serve-static-core': 4.19.6 + '@types/qs': 6.9.18 + '@types/serve-static': 1.15.7 + + '@types/find-cache-dir@3.2.1': {} + + '@types/gapi@0.0.47': {} + + '@types/glob@7.2.0': + dependencies: + '@types/minimatch': 5.1.2 + '@types/node': 22.13.9 + + '@types/graceful-fs@4.1.9': + dependencies: + '@types/node': 22.13.9 + + '@types/http-cache-semantics@4.0.4': {} + + '@types/http-errors@2.0.4': {} + + '@types/istanbul-lib-coverage@2.0.6': {} + + '@types/istanbul-lib-report@3.0.3': + dependencies: + '@types/istanbul-lib-coverage': 2.0.6 + + '@types/istanbul-reports@3.0.4': + dependencies: + '@types/istanbul-lib-report': 3.0.3 + + '@types/js-cookie@2.2.7': {} + + '@types/json-schema@7.0.15': {} + + '@types/json5@0.0.29': {} + + '@types/linkify-it@5.0.0': {} + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.16 + + '@types/lodash@4.17.16': {} + + '@types/markdown-it@14.1.2': + dependencies: + '@types/linkify-it': 5.0.0 + '@types/mdurl': 2.0.0 + + '@types/mdast@4.0.4': + dependencies: + '@types/unist': 3.0.3 + + '@types/mdurl@2.0.0': {} + + '@types/mdx@2.0.13': {} + + '@types/mime-types@2.1.4': {} + + '@types/mime@1.3.5': {} + + '@types/minimatch@5.1.2': {} + + '@types/minimist@1.2.5': {} + + '@types/ms@2.1.0': {} + + '@types/node-fetch@2.6.12': + dependencies: + '@types/node': 22.13.9 + form-data: 4.0.2 + + '@types/node-rsa@1.1.4': + dependencies: + '@types/node': 22.13.9 + + '@types/node@14.18.63': + optional: true + + '@types/node@18.19.79': + dependencies: + undici-types: 5.26.5 + + '@types/node@22.13.9': + dependencies: + undici-types: 6.20.0 + + '@types/normalize-package-data@2.4.4': {} + + '@types/offscreencanvas@2019.7.3': {} + + '@types/parse-json@4.0.2': {} + + '@types/pretty-hrtime@1.0.3': {} + + '@types/prop-types@15.7.14': {} + + '@types/qs@6.9.18': {} + + '@types/range-parser@1.2.7': {} + + '@types/rbush@3.0.4': {} + + '@types/react-dom@18.3.5(@types/react@18.3.18)': + dependencies: + '@types/react': 18.3.18 + + '@types/react-transition-group@4.4.12(@types/react@18.3.18)': + dependencies: + '@types/react': 18.3.18 + + '@types/react@18.3.18': + dependencies: + '@types/prop-types': 15.7.14 + csstype: 3.1.3 + + '@types/readable-stream@4.0.18': + dependencies: + '@types/node': 22.13.9 + safe-buffer: 5.1.2 + + '@types/resolve@1.20.2': {} + + '@types/resolve@1.20.6': {} + + '@types/sat@0.0.31': {} + + '@types/semver@7.5.8': {} + + '@types/send@0.17.4': + dependencies: + '@types/mime': 1.3.5 + '@types/node': 22.13.9 + + '@types/serve-static@1.15.7': + dependencies: + '@types/http-errors': 2.0.4 + '@types/node': 22.13.9 + '@types/send': 0.17.4 + + '@types/sinonjs__fake-timers@8.1.1': + optional: true + + '@types/sizzle@2.3.9': + optional: true + + '@types/stats.js@0.17.3': {} + + '@types/three@0.154.0': + dependencies: + '@tweenjs/tween.js': 18.6.4 + '@types/stats.js': 0.17.3 + '@types/webxr': 0.5.21 + fflate: 0.6.10 + lil-gui: 0.17.0 + meshoptimizer: 0.18.1 + + '@types/three@0.156.0': + dependencies: + '@types/stats.js': 0.17.3 + '@types/webxr': 0.5.21 + fflate: 0.6.10 + meshoptimizer: 0.18.1 + + '@types/trusted-types@2.0.7': {} + + '@types/ua-parser-js@0.7.39': {} + + '@types/unist@2.0.11': {} + + '@types/unist@3.0.3': {} + + '@types/uuid@9.0.8': {} + + '@types/wait-on@5.3.4': + dependencies: + '@types/node': 22.13.9 + + '@types/webxr@0.5.21': {} + + '@types/wicg-file-system-access@2023.10.5': {} + + '@types/yargs-parser@21.0.3': {} + + '@types/yargs@17.0.33': + dependencies: + '@types/yargs-parser': 21.0.3 + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.13.9 + + '@typescript-eslint/eslint-plugin@6.1.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 6.1.0 + '@typescript-eslint/type-utils': 6.1.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/utils': 6.1.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 6.1.0 + debug: 4.4.0(supports-color@8.1.1) + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + natural-compare-lite: 1.4.0 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.0(supports-color@8.1.1) + eslint: 8.57.1 + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.1.0': + dependencies: + '@typescript-eslint/types': 6.1.0 + '@typescript-eslint/visitor-keys': 6.1.0 + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/scope-manager@8.26.0': + dependencies: + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/visitor-keys': 8.26.0 + + '@typescript-eslint/type-utils@6.1.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 6.1.0(typescript@5.5.4) + '@typescript-eslint/utils': 6.1.0(eslint@8.57.1)(typescript@5.5.4) + debug: 4.4.1 + eslint: 8.57.1 + ts-api-utils: 1.4.3(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.1.0': {} + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/types@8.26.0': {} + + '@typescript-eslint/typescript-estree@6.1.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 6.1.0 + '@typescript-eslint/visitor-keys': 6.1.0 + debug: 4.4.1 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.1 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.1 + ts-api-utils: 1.4.3(typescript@5.5.4) + optionalDependencies: + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/typescript-estree@8.26.0(typescript@5.5.4)': + dependencies: + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/visitor-keys': 8.26.0 + debug: 4.4.1 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.7.1 + ts-api-utils: 2.0.1(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.1.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 6.1.0 + '@typescript-eslint/types': 6.1.0 + '@typescript-eslint/typescript-estree': 6.1.0(typescript@5.5.4) + eslint: 8.57.1 + semver: 7.7.1 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/utils@8.26.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.26.0 + '@typescript-eslint/types': 8.26.0 + '@typescript-eslint/typescript-estree': 8.26.0(typescript@5.5.4) + eslint: 8.57.1 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@6.1.0': + dependencies: + '@typescript-eslint/types': 6.1.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@typescript-eslint/visitor-keys@8.26.0': + dependencies: + '@typescript-eslint/types': 8.26.0 + eslint-visitor-keys: 4.2.0 + + '@ungap/structured-clone@1.3.0': {} + + '@vitejs/plugin-react@3.1.0(vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0))': + dependencies: + '@babel/core': 7.26.9 + '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.9) + magic-string: 0.27.0 + react-refresh: 0.14.2 + vite: 6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0) + transitivePeerDependencies: + - supports-color + + '@vitest/expect@0.34.6': + dependencies: + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + chai: 4.5.0 + + '@vitest/runner@0.34.6': + dependencies: + '@vitest/utils': 0.34.6 + p-limit: 4.0.0 + pathe: 1.1.2 + + '@vitest/snapshot@0.34.6': + dependencies: + magic-string: 0.30.17 + pathe: 1.1.2 + pretty-format: 29.7.0 + + '@vitest/spy@0.34.6': + dependencies: + tinyspy: 2.2.1 + + '@vitest/utils@0.34.6': + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.7 + pretty-format: 29.7.0 + + '@xboxreplay/errors@0.1.0': {} + + '@xboxreplay/xboxlive-auth@3.3.3(debug@4.4.0)': + dependencies: + '@xboxreplay/errors': 0.1.0 + axios: 0.21.4(debug@4.4.0) + transitivePeerDependencies: + - debug + + '@xmcl/asm@1.0.1': {} + + '@xmcl/core@2.13.0(yauzl@2.10.0)': + dependencies: + '@xmcl/unzip': 2.1.2(yauzl@2.10.0) + transitivePeerDependencies: + - yauzl + + '@xmcl/file-transfer@1.0.6': + dependencies: + '@types/http-cache-semantics': 4.0.4 + http-cache-semantics: 4.1.1 + undici: 6.0.1 + + '@xmcl/forge-site-parser@2.0.9': + dependencies: + node-html-parser: 6.1.13 + + '@xmcl/installer@5.4.0': + dependencies: + '@xmcl/asm': 1.0.1 + '@xmcl/core': 2.13.0(yauzl@2.10.0) + '@xmcl/file-transfer': 1.0.6 + '@xmcl/forge-site-parser': 2.0.9 + '@xmcl/task': 4.1.0 + '@xmcl/unzip': 2.1.2(yauzl@2.10.0) + undici: 6.0.1 + yauzl: 2.10.0 + yazl: 2.5.1 + + '@xmcl/task@4.1.0': {} + + '@xmcl/text-component@2.1.3': {} + + '@xmcl/unzip@2.1.2(yauzl@2.10.0)': + dependencies: + '@types/yauzl': 2.10.3 + yauzl: 2.10.0 + + '@xobotyi/scrollbar-width@1.9.5': {} + + '@yarnpkg/esbuild-plugin-pnp@3.0.0-rc.15(esbuild@0.18.20)': + dependencies: + esbuild: 0.18.20 + tslib: 2.8.1 + + '@yarnpkg/fslib@2.10.3': + dependencies: + '@yarnpkg/libzip': 2.3.0 + tslib: 1.14.1 + + '@yarnpkg/libzip@2.3.0': + dependencies: + '@types/emscripten': 1.40.0 + tslib: 1.14.1 + + '@zardoy/flying-squid@0.0.104(encoding@0.1.13)': + dependencies: + '@tootallnate/once': 2.0.0 + chalk: 5.4.1 + change-case: 4.1.2 + diamond-square: https://codeload.github.com/zardoy/diamond-square/tar.gz/cfaad2d1d5909fdfa63c8cc7bc05fb5e87782d71 + emit-then: 2.0.0 + exit-hook: 2.2.1 + flatmap: 0.0.3 + long: 5.3.1 + mc-bridge: 0.1.3(minecraft-data@3.98.0) + minecraft-data: 3.98.0 + minecraft-protocol: https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9(patch_hash=4ebdae314c68d01ce7879445c0b8bde5f90373abba8b66ed00d42e7a5f542f8b)(encoding@0.1.13) + mkdirp: 2.1.6 + node-gzip: 1.1.2 + node-rsa: 1.1.1 + prismarine-block: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-chunk: https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f(minecraft-data@3.98.0) + prismarine-entity: 2.5.0 + prismarine-item: 1.17.0 + prismarine-nbt: 2.7.0 + prismarine-provider-anvil: https://codeload.github.com/zardoy/prismarine-provider-anvil/tar.gz/1d548fac63fe977c8281f0a9a522b37e4d92d0b7(minecraft-data@3.98.0) + prismarine-windows: 2.9.0 + prismarine-world: https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c + rambda: 9.4.2 + random-seed: 0.3.0 + range: 0.0.3 + readline: 1.3.0 + sanitize-filename: 1.6.3 + typed-emitter: 1.4.0 + uuid-1345: 1.0.2 + vec3: 0.1.10 + yaml: 2.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + - supports-color + + '@zardoy/flying-squid@0.0.49(encoding@0.1.13)': + dependencies: + '@tootallnate/once': 2.0.0 + chalk: 5.4.1 + change-case: 4.1.2 + diamond-square: https://codeload.github.com/zardoy/diamond-square/tar.gz/cfaad2d1d5909fdfa63c8cc7bc05fb5e87782d71 + emit-then: 2.0.0 + exit-hook: 2.2.1 + flatmap: 0.0.3 + long: 5.3.1 + minecraft-data: 3.98.0 + minecraft-protocol: https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9(patch_hash=4ebdae314c68d01ce7879445c0b8bde5f90373abba8b66ed00d42e7a5f542f8b)(encoding@0.1.13) + mkdirp: 2.1.6 + node-gzip: 1.1.2 + node-rsa: 1.1.1 + prismarine-chunk: https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f(minecraft-data@3.98.0) + prismarine-entity: 2.5.0 + prismarine-item: 1.17.0 + prismarine-nbt: 2.7.0 + prismarine-provider-anvil: https://codeload.github.com/zardoy/prismarine-provider-anvil/tar.gz/1d548fac63fe977c8281f0a9a522b37e4d92d0b7(minecraft-data@3.98.0) + prismarine-windows: 2.9.0 + prismarine-world: https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c + rambda: 9.4.2 + random-seed: 0.3.0 + range: 0.0.3 + readline: 1.3.0 + sanitize-filename: 1.6.3 + typed-emitter: 1.4.0 + uuid-1345: 1.0.2 + vec3: 0.1.10 + yaml: 2.7.0 + yargs: 17.7.2 + transitivePeerDependencies: + - encoding + - supports-color + + '@zardoy/maxrects-packer@2.7.4': {} + + '@zardoy/react-util@0.2.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + classnames: 2.5.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-hook-form: 7.54.2(react@18.3.1) + + '@zardoy/utils@0.0.11': + dependencies: + escape-string-regexp: 4.0.0 + lodash.compact: 3.0.1 + rambda: 6.9.0 + type-fest: 2.19.0 + + Base64@0.2.1: {} + + abbrev@1.1.1: + optional: true + + abort-controller@3.0.0: + dependencies: + event-target-shim: 5.0.1 + + accepts@1.3.8: + dependencies: + mime-types: 2.1.35 + negotiator: 0.6.3 + + acorn-jsx@5.3.2(acorn@7.4.1): + dependencies: + acorn: 7.4.1 + + acorn-jsx@5.3.2(acorn@8.14.1): + dependencies: + acorn: 8.14.1 + + acorn-walk@7.2.0: {} + + acorn-walk@8.3.4: + dependencies: + acorn: 8.14.1 + + acorn@7.4.1: {} + + acorn@8.14.1: {} + + address@1.2.2: {} + + adm-zip@0.5.16: {} + + aes-js@3.1.2: {} + + after@0.8.2: + optional: true + + agent-base@5.1.1: {} + + agent-base@6.0.2: + dependencies: + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + optional: true + + agentkeepalive@4.6.0: + dependencies: + humanize-ms: 1.2.1 + optional: true + + aggregate-error@3.1.0: + dependencies: + clean-stack: 2.2.0 + indent-string: 4.0.0 + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.0.6 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + animejs@3.2.1: {} + + ansi-colors@4.1.3: + optional: true + + ansi-escapes@4.3.2: + dependencies: + type-fest: 0.21.3 + optional: true + + ansi-regex@5.0.1: {} + + ansi-regex@6.1.0: {} + + ansi-styles@3.2.1: + dependencies: + color-convert: 1.9.3 + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + ansi-styles@5.2.0: {} + + ansi-styles@6.2.1: {} + + any-base@1.1.0: + optional: true + + any-promise@1.3.0: {} + + anymatch@2.0.0: + dependencies: + micromatch: 3.1.10 + normalize-path: 2.1.1 + transitivePeerDependencies: + - supports-color + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + apache-crypt@1.2.6: + dependencies: + unix-crypt-td-js: 1.1.4 + + apache-md5@1.1.8: {} + + app-root-dir@1.0.2: {} + + aproba@2.0.0: + optional: true + + arch@2.2.0: + optional: true + + are-we-there-yet@2.0.0: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + optional: true + + are-we-there-yet@3.0.1: + dependencies: + delegates: 1.0.0 + readable-stream: 3.6.2 + optional: true + + argparse@1.0.10: + dependencies: + sprintf-js: 1.0.3 + + argparse@2.0.1: {} + + aria-hidden@1.2.4: + dependencies: + tslib: 2.8.1 + + arr-diff@4.0.0: {} + + arr-flatten@1.1.0: {} + + arr-union@3.1.0: {} + + array-buffer-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + is-array-buffer: 3.0.5 + + array-flatten@1.1.1: {} + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + + array-includes@3.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + is-string: 1.1.1 + math-intrinsics: 1.1.0 + + array-union@2.1.0: {} + + array-unique@0.3.2: {} + + array.prototype.findlast@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-shim-unscopables: 1.1.0 + + array.prototype.flat@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + + array.prototype.flatmap@1.3.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-shim-unscopables: 1.1.0 + + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-shim-unscopables: 1.1.0 + + arraybuffer.prototype.slice@1.0.4: + dependencies: + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + is-array-buffer: 3.0.5 + + arraybuffer.slice@0.0.7: + optional: true + + arrify@1.0.1: {} + + asn1.js@4.10.1: + dependencies: + bn.js: 4.12.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + asn1@0.2.3: {} + + asn1@0.2.6: + dependencies: + safer-buffer: 2.1.2 + + assert-plus@1.0.0: + optional: true + + assert@2.1.0: + dependencies: + call-bind: 1.0.8 + is-nan: 1.3.2 + object-is: 1.1.6 + object.assign: 4.1.7 + util: 0.12.5 + + assertion-error@1.1.0: {} + + assign-symbols@1.0.0: {} + + ast-types@0.16.1: + dependencies: + tslib: 2.8.1 + + astral-regex@2.0.0: + optional: true + + async-each@1.0.6: {} + + async-function@1.0.0: {} + + async-limiter@1.0.1: {} + + async@2.6.4: + dependencies: + lodash: 4.17.21 + + async@3.2.6: {} + + asynckit@0.4.0: {} + + at-least-node@1.0.0: {} + + atob@2.1.2: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.1.0 + + aws-sign2@0.7.0: + optional: true + + aws4@1.13.2: + optional: true + + axios@0.21.4(debug@4.4.0): + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + transitivePeerDependencies: + - debug + + axios@1.8.2(debug@4.4.0): + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + form-data: 4.0.2 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + babel-core@7.0.0-bridge.0(@babel/core@7.26.9): + dependencies: + '@babel/core': 7.26.9 + + babel-plugin-istanbul@6.1.1: + dependencies: + '@babel/helper-plugin-utils': 7.26.5 + '@istanbuljs/load-nyc-config': 1.1.0 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-instrument: 5.2.1 + test-exclude: 6.0.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-macros@3.1.0: + dependencies: + '@babel/runtime': 7.26.9 + cosmiconfig: 7.1.0 + resolve: 1.22.10 + + babel-plugin-polyfill-corejs2@0.4.12(@babel/core@7.26.9): + dependencies: + '@babel/compat-data': 7.26.8 + '@babel/core': 7.26.9 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.9) + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-corejs3@0.11.1(@babel/core@7.26.9): + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.9) + core-js-compat: 3.41.0 + transitivePeerDependencies: + - supports-color + + babel-plugin-polyfill-regenerator@0.6.3(@babel/core@7.26.9): + dependencies: + '@babel/core': 7.26.9 + '@babel/helper-define-polyfill-provider': 0.6.3(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + + backo2@1.0.2: + optional: true + + bail@2.0.2: {} + + balanced-match@1.0.2: {} + + base64-arraybuffer@0.1.4: + optional: true + + base64-js@1.5.1: {} + + base64id@2.0.0: {} + + base@0.11.2: + dependencies: + cache-base: 1.0.1 + class-utils: 0.3.6 + component-emitter: 1.3.1 + define-property: 1.0.0 + isobject: 3.0.1 + mixin-deep: 1.3.2 + pascalcase: 0.1.1 + + basic-auth@2.0.1: + dependencies: + safe-buffer: 5.1.2 + + batch@0.6.1: {} + + bcrypt-pbkdf@1.0.2: + dependencies: + tweetnacl: 0.14.5 + optional: true + + bcryptjs@2.4.3: {} + + better-opn@3.0.2: + dependencies: + open: 8.4.2 + + big-integer@1.6.52: {} + + binary-extensions@1.13.1: {} + + binary-extensions@2.3.0: {} + + bindings@1.5.0: + dependencies: + file-uri-to-path: 1.0.0 + optional: true + + bit-twiddle@1.0.2: + optional: true + + bl@4.1.0: + dependencies: + buffer: 6.0.3 + inherits: 2.0.4 + readable-stream: 3.6.2 + + blob-util@2.0.2: + optional: true + + blob@0.0.5: + optional: true + + bluebird@3.7.2: + optional: true + + bmp-js@0.1.0: + optional: true + + bn.js@4.12.1: {} + + bn.js@5.2.1: {} + + body-parser@1.20.3: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.13.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + boolbase@1.0.0: {} + + bplist-parser@0.2.0: + dependencies: + big-integer: 1.6.52 + + brace-expansion@1.1.11: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.1: + dependencies: + balanced-match: 1.0.2 + + braces@2.3.2: + dependencies: + arr-flatten: 1.1.0 + array-unique: 0.3.2 + extend-shallow: 2.0.1 + fill-range: 4.0.0 + isobject: 3.0.1 + repeat-element: 1.1.4 + snapdragon: 0.8.2 + snapdragon-node: 2.1.1 + split-string: 3.1.0 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + brorand@1.1.0: {} + + browser-assert@1.2.1: {} + + browserfs@https://codeload.github.com/zardoy/browserfs/tar.gz/ab58ae8ef00e3a31db01909e365e6cb5188436e0: {} + + browserfs@https://codeload.github.com/zardoy/browserfs/tar.gz/e60ca69e74888e057a96a468afe1d62347d3f56f: + dependencies: + async: 2.6.4 + + browserify-aes@1.2.0: + dependencies: + buffer-xor: 1.0.3 + cipher-base: 1.0.6 + create-hash: 1.2.0 + evp_bytestokey: 1.0.3 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-cipher@1.0.1: + dependencies: + browserify-aes: 1.2.0 + browserify-des: 1.0.2 + evp_bytestokey: 1.0.3 + + browserify-des@1.0.2: + dependencies: + cipher-base: 1.0.6 + des.js: 1.1.0 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + browserify-rsa@4.1.1: + dependencies: + bn.js: 5.2.1 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + browserify-sign@4.2.3: + dependencies: + bn.js: 5.2.1 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + create-hmac: 1.1.7 + elliptic: 6.6.1 + hash-base: 3.0.5 + inherits: 2.0.4 + parse-asn1: 5.1.7 + readable-stream: 2.3.8 + safe-buffer: 5.2.1 + + browserify-zlib@0.1.4: + dependencies: + pako: 0.2.9 + + browserify-zlib@0.2.0: + dependencies: + pako: 1.0.11 + + browserslist@4.24.4: + dependencies: + caniuse-lite: 1.0.30001713 + electron-to-chromium: 1.5.113 + node-releases: 2.0.19 + update-browserslist-db: 1.1.3(browserslist@4.24.4) + + bser@2.1.1: + dependencies: + node-int64: 0.4.0 + + buffer-crc32@0.2.13: {} + + buffer-equal-constant-time@1.0.1: {} + + buffer-equal@0.0.1: + optional: true + + buffer-equal@1.0.1: {} + + buffer-from@1.1.2: {} + + buffer-xor@1.0.3: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + builtin-modules@3.3.0: {} + + builtin-status-codes@3.0.0: {} + + bytes@3.1.2: {} + + cac@6.7.14: {} + + cacache@16.1.3: + dependencies: + '@npmcli/fs': 2.1.2 + '@npmcli/move-file': 2.0.1 + chownr: 2.0.0 + fs-minipass: 2.1.0 + glob: 8.1.0 + infer-owner: 1.0.4 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + mkdirp: 1.0.4 + p-map: 4.0.0 + promise-inflight: 1.0.1 + rimraf: 3.0.2 + ssri: 9.0.1 + tar: 6.2.1 + unique-filename: 2.0.1 + transitivePeerDependencies: + - bluebird + optional: true + + cache-base@1.0.1: + dependencies: + collection-visit: 1.0.0 + component-emitter: 1.3.1 + get-value: 2.0.6 + has-value: 1.0.0 + isobject: 3.0.1 + set-value: 2.0.1 + to-object-path: 0.3.0 + union-value: 1.0.1 + unset-value: 1.0.0 + + cachedir@2.4.0: + optional: true + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + get-intrinsic: 1.3.0 + set-function-length: 1.2.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + + callsites@3.1.0: {} + + camel-case@4.1.2: + dependencies: + pascal-case: 3.1.2 + tslib: 2.8.1 + + camelcase-keys@7.0.2: + dependencies: + camelcase: 6.3.0 + map-obj: 4.3.0 + quick-lru: 5.1.1 + type-fest: 1.4.0 + + camelcase@5.3.1: {} + + camelcase@6.3.0: {} + + caniuse-lite@1.0.30001713: {} + + canvas@2.11.2(encoding@0.1.13): + dependencies: + '@mapbox/node-pre-gyp': 1.0.11(encoding@0.1.13) + nan: 2.22.2 + simple-get: 3.1.1 + transitivePeerDependencies: + - encoding + - supports-color + optional: true + + capital-case@1.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + + caseless@0.12.0: + optional: true + + centra@2.7.0(debug@4.4.0): + dependencies: + follow-redirects: 1.15.9(debug@4.4.0) + transitivePeerDependencies: + - debug + optional: true + + chai@4.5.0: + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.3 + deep-eql: 4.1.4 + get-func-name: 2.0.2 + loupe: 2.3.7 + pathval: 1.1.1 + type-detect: 4.1.0 + + chalk@2.4.2: + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chalk@5.4.1: {} + + change-case@4.1.2: + dependencies: + camel-case: 4.1.2 + capital-case: 1.0.4 + constant-case: 3.0.4 + dot-case: 3.0.4 + header-case: 2.0.4 + no-case: 3.0.4 + param-case: 3.0.4 + pascal-case: 3.1.2 + path-case: 3.0.4 + sentence-case: 3.0.4 + snake-case: 3.0.4 + tslib: 2.8.1 + + change-case@5.4.4: {} + + character-entities@2.0.2: {} + + charenc@0.0.2: {} + + check-error@1.0.3: + dependencies: + get-func-name: 2.0.2 + + check-more-types@2.24.0: + optional: true + + chokidar@2.1.8: + dependencies: + anymatch: 2.0.0 + async-each: 1.0.6 + braces: 2.3.2 + glob-parent: 3.1.0 + inherits: 2.0.4 + is-binary-path: 1.0.1 + is-glob: 4.0.3 + normalize-path: 3.0.0 + path-is-absolute: 1.0.1 + readdirp: 2.2.1 + upath: 1.2.0 + optionalDependencies: + fsevents: 1.2.13 + transitivePeerDependencies: + - supports-color + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + chownr@1.1.4: {} + + chownr@2.0.0: {} + + ci-info@3.9.0: {} + + cipher-base@1.0.6: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + citty@0.1.6: + dependencies: + consola: 3.4.0 + + class-utils@0.3.6: + dependencies: + arr-union: 3.1.0 + define-property: 0.2.5 + isobject: 3.0.1 + static-extend: 0.1.2 + + classnames@2.5.1: {} + + clean-regexp@1.0.0: + dependencies: + escape-string-regexp: 1.0.5 + + clean-stack@2.2.0: {} + + cli-cursor@3.1.0: + dependencies: + restore-cursor: 3.1.0 + + cli-spinners@2.9.2: {} + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cli-truncate@2.1.0: + dependencies: + slice-ansi: 3.0.0 + string-width: 4.2.3 + optional: true + + cliui@8.0.1: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + + clone-deep@4.0.1: + dependencies: + is-plain-object: 2.0.4 + kind-of: 6.0.3 + shallow-clone: 3.0.1 + + clone@1.0.4: {} + + clsx@1.1.1: {} + + collection-visit@1.0.0: + dependencies: + map-visit: 1.0.0 + object-visit: 1.0.1 + + color-convert@1.9.3: + dependencies: + color-name: 1.1.3 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.3: {} + + color-name@1.1.4: {} + + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color-support@1.1.3: + optional: true + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + + colorette@2.0.20: + optional: true + + colors@1.4.0: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + commander@2.20.3: {} + + commander@5.1.0: + optional: true + + commander@6.2.1: {} + + common-tags@1.8.2: {} + + commondir@1.0.1: {} + + component-bind@1.0.0: + optional: true + + component-emitter@1.2.1: + optional: true + + component-emitter@1.3.1: {} + + component-inherit@0.0.3: + optional: true + + compressible@2.0.18: + dependencies: + mime-db: 1.54.0 + + compression@1.8.0: + dependencies: + bytes: 3.1.2 + compressible: 2.0.18 + debug: 2.6.9 + negotiator: 0.6.4 + on-headers: 1.0.2 + safe-buffer: 5.2.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + concat-map@0.0.1: {} + + concat-stream@1.6.2: + dependencies: + buffer-from: 1.1.2 + inherits: 2.0.4 + readable-stream: 2.3.8 + typedarray: 0.0.6 + + confbox@0.1.8: {} + + confusing-browser-globals@1.0.11: {} + + connect@3.7.0: + dependencies: + debug: 2.6.9 + finalhandler: 1.1.2 + parseurl: 1.3.3 + utils-merge: 1.0.1 + transitivePeerDependencies: + - supports-color + + consola@3.4.0: {} + + console-browserify@1.2.0: {} + + console-control-strings@1.1.0: + optional: true + + constant-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case: 2.0.2 + + constants-browserify@1.0.0: {} + + content-disposition@0.5.4: + dependencies: + safe-buffer: 5.2.1 + + content-type@1.0.5: {} + + contro-max@0.1.9(typescript@5.5.4): + dependencies: + events: 3.3.0 + lodash-es: 4.17.21 + typed-emitter: 2.1.0 + optionalDependencies: + react: 18.3.1 + use-typed-event-listener: 4.0.2(react@18.3.1)(typescript@5.5.4) + transitivePeerDependencies: + - typescript + + convert-source-map@1.9.0: {} + + convert-source-map@2.0.0: {} + + cookie-signature@1.0.6: {} + + cookie@0.4.2: + optional: true + + cookie@0.7.1: {} + + cookie@0.7.2: {} + + copy-descriptor@0.1.1: {} + + copy-to-clipboard@3.3.3: + dependencies: + toggle-selection: 1.0.6 + + core-js-compat@3.41.0: + dependencies: + browserslist: 4.24.4 + + core-js@3.41.0: {} + + core-util-is@1.0.2: + optional: true + + core-util-is@1.0.3: {} + + cors@2.8.5: + dependencies: + object-assign: 4.1.1 + vary: 1.1.2 + + corser@2.0.1: {} + + cosmiconfig@7.1.0: + dependencies: + '@types/parse-json': 4.0.2 + import-fresh: 3.3.1 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + + create-ecdh@4.0.4: + dependencies: + bn.js: 4.12.1 + elliptic: 6.6.1 + + create-hash@1.2.0: + dependencies: + cipher-base: 1.0.6 + inherits: 2.0.4 + md5.js: 1.3.5 + ripemd160: 2.0.2 + sha.js: 2.4.11 + + create-hmac@1.1.7: + dependencies: + cipher-base: 1.0.6 + create-hash: 1.2.0 + inherits: 2.0.4 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + crelt@1.0.6: {} + + cross-spawn@6.0.6: + dependencies: + nice-try: 1.0.5 + path-key: 2.0.1 + semver: 5.7.2 + shebang-command: 1.2.0 + which: 1.3.1 + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + crypt@0.0.2: {} + + crypto-browserify@3.12.1: + dependencies: + browserify-cipher: 1.0.1 + browserify-sign: 4.2.3 + create-ecdh: 4.0.4 + create-hash: 1.2.0 + create-hmac: 1.1.7 + diffie-hellman: 5.0.3 + hash-base: 3.0.5 + inherits: 2.0.4 + pbkdf2: 3.1.2 + public-encrypt: 4.0.3 + randombytes: 2.1.0 + randomfill: 1.0.4 + + crypto-random-string@2.0.0: {} + + css-in-js-utils@3.1.0: + dependencies: + hyphenate-style-name: 1.1.0 + + css-select@5.1.0: + dependencies: + boolbase: 1.0.0 + css-what: 6.1.0 + domhandler: 5.0.3 + domutils: 3.2.2 + nth-check: 2.1.1 + + css-tree@1.1.3: + dependencies: + mdn-data: 2.0.14 + source-map: 0.6.1 + + css-what@6.1.0: {} + + csstype@3.1.3: {} + + cypress-esbuild-preprocessor@1.0.2: {} + + cypress-plugin-snapshots@1.4.4(cypress@10.11.0)(debug@4.4.0): + dependencies: + cypress: 10.11.0 + diff2html: 2.12.2 + fs-extra: 7.0.1 + image-size: 0.7.5 + jimp: 0.10.3(debug@4.4.0) + js-base64: 2.6.4 + lodash: 4.17.21 + pixelmatch: 4.0.2 + pngjs: 3.4.0 + prettier: 1.19.1 + rimraf: 2.7.1 + sanitize-filename: 1.6.3 + socket.io: 2.5.1 + socket.io-client: 2.5.0 + source-map-support: 0.5.21 + unidiff: 1.0.2 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + optional: true + + cypress@10.11.0: + dependencies: + '@cypress/request': 2.88.12 + '@cypress/xvfb': 1.2.4(supports-color@8.1.1) + '@types/node': 14.18.63 + '@types/sinonjs__fake-timers': 8.1.1 + '@types/sizzle': 2.3.9 + arch: 2.2.0 + blob-util: 2.0.2 + bluebird: 3.7.2 + buffer: 6.0.3 + cachedir: 2.4.0 + chalk: 4.1.2 + check-more-types: 2.24.0 + cli-cursor: 3.1.0 + cli-table3: 0.6.5 + commander: 5.1.0 + common-tags: 1.8.2 + dayjs: 1.11.13 + debug: 4.4.0(supports-color@8.1.1) + enquirer: 2.4.1 + eventemitter2: 6.4.7 + execa: 4.1.0 + executable: 4.1.1 + extract-zip: 2.0.1(supports-color@8.1.1) + figures: 3.2.0 + fs-extra: 9.1.0 + getos: 3.2.1 + is-ci: 3.0.1 + is-installed-globally: 0.4.0 + lazy-ass: 1.6.0 + listr2: 3.14.0(enquirer@2.4.1) + lodash: 4.17.21 + log-symbols: 4.1.0 + minimist: 1.2.8 + ospath: 1.2.2 + pretty-bytes: 5.6.0 + proxy-from-env: 1.0.0 + request-progress: 3.0.0 + semver: 7.7.1 + supports-color: 8.1.1 + tmp: 0.2.3 + untildify: 4.0.0 + yauzl: 2.10.0 + optional: true + + dashdash@1.14.1: + dependencies: + assert-plus: 1.0.0 + optional: true + + data-view-buffer@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-length@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + data-view-byte-offset@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-data-view: 1.0.2 + + dayjs@1.11.13: + optional: true + + debounce@1.2.1: {} + + debug@2.6.9: + dependencies: + ms: 2.0.0 + + debug@3.1.0: + dependencies: + ms: 2.0.0 + optional: true + + debug@3.2.7(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + debug@4.1.1: + dependencies: + ms: 2.1.3 + optional: true + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + debug@4.4.0(supports-color@8.1.1): + dependencies: + ms: 2.1.3 + optionalDependencies: + supports-color: 8.1.1 + + debug@4.4.1: + dependencies: + ms: 2.1.3 + + decamelize-keys@1.1.1: + dependencies: + decamelize: 1.2.0 + map-obj: 1.0.1 + + decamelize@1.2.0: {} + + decamelize@5.0.1: {} + + decode-named-character-reference@1.1.0: + dependencies: + character-entities: 2.0.2 + + decode-uri-component@0.2.2: {} + + decompress-response@4.2.1: + dependencies: + mimic-response: 2.1.0 + optional: true + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + deep-eql@4.1.4: + dependencies: + type-detect: 4.1.0 + + deep-extend@0.6.0: {} + + deep-is@0.1.4: {} + + deepmerge@4.3.1: {} + + deepslate@0.23.5: + dependencies: + gl-matrix: 3.4.3 + md5: 2.3.0 + pako: 2.1.0 + + default-browser-id@3.0.0: + dependencies: + bplist-parser: 0.2.0 + untildify: 4.0.0 + + defaults@1.0.4: + dependencies: + clone: 1.0.4 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + + define-lazy-prop@2.0.0: {} + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + + define-property@0.2.5: + dependencies: + is-descriptor: 0.1.7 + + define-property@1.0.0: + dependencies: + is-descriptor: 1.0.3 + + define-property@2.0.2: + dependencies: + is-descriptor: 1.0.3 + isobject: 3.0.1 + + defu@6.1.4: {} + + del@6.1.1: + dependencies: + globby: 11.1.0 + graceful-fs: 4.2.11 + is-glob: 4.0.3 + is-path-cwd: 2.2.0 + is-path-inside: 3.0.3 + p-map: 4.0.0 + rimraf: 3.0.2 + slash: 3.0.0 + + delayed-stream@1.0.0: {} + + delegates@1.0.0: + optional: true + + depd@1.1.2: {} + + depd@2.0.0: {} + + dequal@2.0.3: {} + + derive-valtio@0.1.0(valtio@1.13.2(@types/react@18.3.18)(react@18.3.1)): + dependencies: + valtio: 1.13.2(@types/react@18.3.18)(react@18.3.1) + + des.js@1.1.0: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + destroy@1.2.0: {} + + detect-collisions@7.0.5: + dependencies: + '@types/rbush': 3.0.4 + '@types/sat': 0.0.31 + poly-decomp: 0.3.0 + rbush: 3.0.1 + sat: 0.9.0 + + detect-indent@6.1.0: {} + + detect-libc@2.0.3: {} + + detect-node-es@1.1.0: {} + + detect-package-manager@2.0.1: + dependencies: + execa: 5.1.1 + + detect-port@1.6.1: + dependencies: + address: 1.2.2 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + + devlop@1.1.0: + dependencies: + dequal: 2.0.3 + + diamond-square@https://codeload.github.com/zardoy/diamond-square/tar.gz/cfaad2d1d5909fdfa63c8cc7bc05fb5e87782d71: + dependencies: + minecraft-data: 3.98.0 + prismarine-chunk: https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f(minecraft-data@3.98.0) + prismarine-registry: 1.11.0 + random-seed: 0.3.0 + vec3: 0.1.10 + + diff-match-patch@1.0.5: {} + + diff-sequences@29.6.3: {} + + diff2html@2.12.2: + dependencies: + diff: 4.0.2 + hogan.js: 3.0.2 + merge: 1.2.1 + whatwg-fetch: 3.6.20 + optional: true + + diff@2.2.3: + optional: true + + diff@4.0.2: + optional: true + + diffie-hellman@5.0.3: + dependencies: + bn.js: 4.12.1 + miller-rabin: 4.0.1 + randombytes: 2.1.0 + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + discontinuous-range@1.0.0: {} + + doctrine@2.1.0: + dependencies: + esutils: 2.0.3 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dom-helpers@5.2.1: + dependencies: + '@babel/runtime': 7.26.9 + csstype: 3.1.3 + + dom-serializer@2.0.0: + dependencies: + domelementtype: 2.3.0 + domhandler: 5.0.3 + entities: 4.5.0 + + dom-walk@0.1.2: + optional: true + + domain-browser@5.7.0: {} + + domelementtype@2.3.0: {} + + domhandler@5.0.3: + dependencies: + domelementtype: 2.3.0 + + domutils@3.2.2: + dependencies: + dom-serializer: 2.0.0 + domelementtype: 2.3.0 + domhandler: 5.0.3 + + dot-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + dotenv-expand@10.0.0: {} + + dotenv@16.4.7: {} + + draco3d@1.5.7: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + duplexer@0.1.2: {} + + duplexify@3.7.1: + dependencies: + end-of-stream: 1.4.4 + inherits: 2.0.4 + readable-stream: 2.3.8 + stream-shift: 1.0.3 + + eastasianwidth@0.2.0: {} + + ecc-jsbn@0.1.2: + dependencies: + jsbn: 0.1.1 + safer-buffer: 2.1.2 + optional: true + + ecdsa-sig-formatter@1.0.11: + dependencies: + safe-buffer: 5.2.1 + + ee-first@1.1.1: {} + + ejs@3.1.10: + dependencies: + jake: 10.9.2 + + electron-to-chromium@1.5.113: {} + + elliptic@6.6.1: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + emit-then@2.0.0: {} + + emoji-regex@8.0.0: {} + + emoji-regex@9.2.2: {} + + encodeurl@1.0.2: {} + + encodeurl@2.0.0: {} + + encoding@0.1.13: + dependencies: + iconv-lite: 0.6.3 + optional: true + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + endian-toggle@0.0.0: {} + + engine.io-client@3.5.4: + dependencies: + component-emitter: 1.3.1 + component-inherit: 0.0.3 + debug: 3.1.0 + engine.io-parser: 2.2.1 + has-cors: 1.1.0 + indexof: 0.0.1 + parseqs: 0.0.6 + parseuri: 0.0.6 + ws: 7.5.10 + xmlhttprequest-ssl: 1.6.3 + yeast: 0.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + + engine.io-client@6.6.3: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + xmlhttprequest-ssl: 2.1.2 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@2.2.1: + dependencies: + after: 0.8.2 + arraybuffer.slice: 0.0.7 + base64-arraybuffer: 0.1.4 + blob: 0.0.5 + has-binary2: 1.0.3 + optional: true + + engine.io-parser@5.2.3: {} + + engine.io@3.6.2: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.4.2 + debug: 4.1.1 + engine.io-parser: 2.2.1 + ws: 7.5.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + + engine.io@6.6.4: + dependencies: + '@types/cors': 2.8.17 + '@types/node': 22.13.9 + accepts: 1.3.8 + base64id: 2.0.0 + cookie: 0.7.2 + cors: 2.8.5 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + optional: true + + entities@4.5.0: {} + + env-paths@2.2.1: + optional: true + + envinfo@7.14.0: {} + + err-code@2.0.3: + optional: true + + error-ex@1.3.2: + dependencies: + is-arrayish: 0.2.1 + + error-stack-parser@2.1.4: + dependencies: + stackframe: 1.3.4 + + eruda@3.4.1: {} + + es-abstract@1.23.9: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 + + es-abstract@1.24.0: + dependencies: + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 + is-callable: 1.2.7 + is-data-view: 1.0.2 + is-negative-zero: 2.0.3 + is-regex: 1.2.1 + is-set: 2.0.3 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.1 + math-intrinsics: 1.1.0 + object-inspect: 1.13.4 + object-keys: 1.1.1 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + stop-iteration-iterator: 1.1.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.19 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-errors: 1.3.0 + es-set-tostringtag: 2.1.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + globalthis: 1.0.4 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + + es-module-lexer@0.9.3: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + es-shim-unscopables@1.1.0: + dependencies: + hasown: 2.0.2 + + es-to-primitive@1.3.0: + dependencies: + is-callable: 1.2.7 + is-date-object: 1.1.0 + is-symbol: 1.1.1 + + es6-promise@4.2.8: {} + + es6-promisify@5.0.0: + dependencies: + es6-promise: 4.2.8 + + esbuild-plugin-alias@0.2.1: {} + + esbuild-plugin-polyfill-node@0.3.0(esbuild@0.19.12): + dependencies: + '@jspm/core': 2.1.0 + esbuild: 0.19.12 + import-meta-resolve: 3.1.1 + + esbuild-register@3.6.0(esbuild@0.18.20): + dependencies: + debug: 4.4.0(supports-color@8.1.1) + esbuild: 0.18.20 + transitivePeerDependencies: + - supports-color + + esbuild@0.18.20: + optionalDependencies: + '@esbuild/android-arm': 0.18.20 + '@esbuild/android-arm64': 0.18.20 + '@esbuild/android-x64': 0.18.20 + '@esbuild/darwin-arm64': 0.18.20 + '@esbuild/darwin-x64': 0.18.20 + '@esbuild/freebsd-arm64': 0.18.20 + '@esbuild/freebsd-x64': 0.18.20 + '@esbuild/linux-arm': 0.18.20 + '@esbuild/linux-arm64': 0.18.20 + '@esbuild/linux-ia32': 0.18.20 + '@esbuild/linux-loong64': 0.18.20 + '@esbuild/linux-mips64el': 0.18.20 + '@esbuild/linux-ppc64': 0.18.20 + '@esbuild/linux-riscv64': 0.18.20 + '@esbuild/linux-s390x': 0.18.20 + '@esbuild/linux-x64': 0.18.20 + '@esbuild/netbsd-x64': 0.18.20 + '@esbuild/openbsd-x64': 0.18.20 + '@esbuild/sunos-x64': 0.18.20 + '@esbuild/win32-arm64': 0.18.20 + '@esbuild/win32-ia32': 0.18.20 + '@esbuild/win32-x64': 0.18.20 + + esbuild@0.19.12: + optionalDependencies: + '@esbuild/aix-ppc64': 0.19.12 + '@esbuild/android-arm': 0.19.12 + '@esbuild/android-arm64': 0.19.12 + '@esbuild/android-x64': 0.19.12 + '@esbuild/darwin-arm64': 0.19.12 + '@esbuild/darwin-x64': 0.19.12 + '@esbuild/freebsd-arm64': 0.19.12 + '@esbuild/freebsd-x64': 0.19.12 + '@esbuild/linux-arm': 0.19.12 + '@esbuild/linux-arm64': 0.19.12 + '@esbuild/linux-ia32': 0.19.12 + '@esbuild/linux-loong64': 0.19.12 + '@esbuild/linux-mips64el': 0.19.12 + '@esbuild/linux-ppc64': 0.19.12 + '@esbuild/linux-riscv64': 0.19.12 + '@esbuild/linux-s390x': 0.19.12 + '@esbuild/linux-x64': 0.19.12 + '@esbuild/netbsd-x64': 0.19.12 + '@esbuild/openbsd-x64': 0.19.12 + '@esbuild/sunos-x64': 0.19.12 + '@esbuild/win32-arm64': 0.19.12 + '@esbuild/win32-ia32': 0.19.12 + '@esbuild/win32-x64': 0.19.12 + + esbuild@0.25.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.0 + '@esbuild/android-arm': 0.25.0 + '@esbuild/android-arm64': 0.25.0 + '@esbuild/android-x64': 0.25.0 + '@esbuild/darwin-arm64': 0.25.0 + '@esbuild/darwin-x64': 0.25.0 + '@esbuild/freebsd-arm64': 0.25.0 + '@esbuild/freebsd-x64': 0.25.0 + '@esbuild/linux-arm': 0.25.0 + '@esbuild/linux-arm64': 0.25.0 + '@esbuild/linux-ia32': 0.25.0 + '@esbuild/linux-loong64': 0.25.0 + '@esbuild/linux-mips64el': 0.25.0 + '@esbuild/linux-ppc64': 0.25.0 + '@esbuild/linux-riscv64': 0.25.0 + '@esbuild/linux-s390x': 0.25.0 + '@esbuild/linux-x64': 0.25.0 + '@esbuild/netbsd-arm64': 0.25.0 + '@esbuild/netbsd-x64': 0.25.0 + '@esbuild/openbsd-arm64': 0.25.0 + '@esbuild/openbsd-x64': 0.25.0 + '@esbuild/sunos-x64': 0.25.0 + '@esbuild/win32-arm64': 0.25.0 + '@esbuild/win32-ia32': 0.25.0 + '@esbuild/win32-x64': 0.25.0 + + escalade@3.2.0: {} + + escape-html@1.0.3: {} + + escape-string-regexp@1.0.5: {} + + escape-string-regexp@4.0.0: {} + + escodegen@2.1.0: + dependencies: + esprima: 4.0.1 + estraverse: 5.3.0 + esutils: 2.0.3 + optionalDependencies: + source-map: 0.6.1 + + eslint-config-prettier@8.10.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-config-xo-react@0.27.0(eslint-plugin-react-hooks@5.2.0(eslint@8.57.1))(eslint-plugin-react@7.37.4(eslint@8.57.1))(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-plugin-react: 7.37.4(eslint@8.57.1) + eslint-plugin-react-hooks: 5.2.0(eslint@8.57.1) + + eslint-config-xo-typescript@1.0.1(@typescript-eslint/eslint-plugin@6.1.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4): + dependencies: + '@typescript-eslint/eslint-plugin': 6.1.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + typescript: 5.5.4 + + eslint-config-xo@0.43.1(eslint@8.57.1): + dependencies: + confusing-browser-globals: 1.0.11 + eslint: 8.57.1 + + eslint-config-zardoy@0.2.17(eslint-plugin-react-hooks@5.2.0(eslint@8.57.1))(eslint-plugin-react@7.37.4(eslint@8.57.1))(eslint@8.57.1)(typescript@5.5.4): + dependencies: + '@rushstack/eslint-patch': 1.10.5 + '@typescript-eslint/eslint-plugin': 6.1.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + eslint-config-prettier: 8.10.0(eslint@8.57.1) + eslint-config-xo: 0.43.1(eslint@8.57.1) + eslint-config-xo-react: 0.27.0(eslint-plugin-react-hooks@5.2.0(eslint@8.57.1))(eslint-plugin-react@7.37.4(eslint@8.57.1))(eslint@8.57.1) + eslint-config-xo-typescript: 1.0.1(@typescript-eslint/eslint-plugin@6.1.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + eslint-plugin-eslint-comments: 3.2.0(eslint@8.57.1) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1) + eslint-plugin-node: 11.1.0(eslint@8.57.1) + eslint-plugin-sonarjs: 0.19.0(eslint@8.57.1) + eslint-plugin-unicorn: 48.0.0(eslint@8.57.1) + typescript: 5.5.4 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - eslint-plugin-react + - eslint-plugin-react-hooks + - supports-color + + eslint-import-resolver-node@0.3.9: + dependencies: + debug: 3.2.7(supports-color@8.1.1) + is-core-module: 2.16.1 + resolve: 1.22.10 + transitivePeerDependencies: + - supports-color + + eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): + dependencies: + debug: 3.2.7(supports-color@8.1.1) + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + + eslint-plugin-es@3.0.1(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-utils: 2.1.0 + regexpp: 3.2.0 + + eslint-plugin-eslint-comments@3.2.0(eslint@8.57.1): + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.57.1 + ignore: 5.3.2 + + eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1): + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 + debug: 3.2.7(supports-color@8.1.1) + doctrine: 2.1.0 + eslint: 8.57.1 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) + has: 1.0.4 + is-core-module: 2.16.1 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.2.1 + resolve: 1.22.10 + semver: 6.3.1 + tsconfig-paths: 3.15.0 + optionalDependencies: + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.5.4) + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + + eslint-plugin-node@11.1.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + eslint-plugin-es: 3.0.1(eslint@8.57.1) + eslint-utils: 2.1.0 + ignore: 5.3.2 + minimatch: 3.1.2 + resolve: 1.22.10 + semver: 6.3.1 + + eslint-plugin-react-hooks@5.2.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-react@7.37.4(eslint@8.57.1): + dependencies: + array-includes: 3.1.9 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.3 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.1 + eslint: 8.57.1 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.9 + object.fromentries: 2.0.8 + object.values: 1.2.1 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 + + eslint-plugin-sonarjs@0.19.0(eslint@8.57.1): + dependencies: + eslint: 8.57.1 + + eslint-plugin-unicorn@48.0.0(eslint@8.57.1): + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + ci-info: 3.9.0 + clean-regexp: 1.0.0 + eslint: 8.57.1 + esquery: 1.6.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.1.0 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.27 + regjsparser: 0.10.0 + semver: 7.7.1 + strip-indent: 3.0.0 + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-utils@2.1.0: + dependencies: + eslint-visitor-keys: 1.3.0 + + eslint-visitor-keys@1.3.0: {} + + eslint-visitor-keys@3.4.3: {} + + eslint-visitor-keys@4.2.0: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.0(supports-color@8.1.1) + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.6.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@10.3.0: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 4.2.0 + + espree@9.6.1: + dependencies: + acorn: 8.14.1 + acorn-jsx: 5.3.2(acorn@8.14.1) + eslint-visitor-keys: 3.4.3 + + esprima@4.0.1: {} + + esquery@1.6.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@1.0.1: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + etag@1.8.1: {} + + event-stream@3.3.4: + dependencies: + duplexer: 0.1.2 + from: 0.1.7 + map-stream: 0.1.0 + pause-stream: 0.0.11 + split: 0.3.3 + stream-combiner: 0.0.4 + through: 2.3.8 + + event-target-shim@5.0.1: {} + + eventemitter2@6.4.7: + optional: true + + eventemitter3@4.0.7: {} + + events@3.3.0: {} + + evp_bytestokey@1.0.3: + dependencies: + md5.js: 1.3.5 + safe-buffer: 5.2.1 + + execa@4.1.0: + dependencies: + cross-spawn: 7.0.6 + get-stream: 5.2.0 + human-signals: 1.1.1 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + optional: true + + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + + executable@4.1.1: + dependencies: + pify: 2.3.0 + optional: true + + exif-parser@0.1.12: + optional: true + + exit-hook@2.2.1: {} + + expand-brackets@2.1.4: + dependencies: + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + posix-character-classes: 0.1.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + expand-template@2.0.3: {} + + exponential-backoff@3.1.2: + optional: true + + express-ws@4.0.0(express@4.21.2): + dependencies: + express: 4.21.2 + ws: 5.2.4 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + express@4.21.2: + dependencies: + accepts: 1.3.8 + array-flatten: 1.1.1 + body-parser: 1.20.3 + content-disposition: 0.5.4 + content-type: 1.0.5 + cookie: 0.7.1 + cookie-signature: 1.0.6 + debug: 2.6.9 + depd: 2.0.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + finalhandler: 1.3.1 + fresh: 0.5.2 + http-errors: 2.0.0 + merge-descriptors: 1.0.3 + methods: 1.1.2 + on-finished: 2.4.1 + parseurl: 1.3.3 + path-to-regexp: 0.1.12 + proxy-addr: 2.0.7 + qs: 6.13.0 + range-parser: 1.2.1 + safe-buffer: 5.2.1 + send: 0.19.0 + serve-static: 1.16.2 + setprototypeof: 1.2.0 + statuses: 2.0.1 + type-is: 1.6.18 + utils-merge: 1.0.1 + vary: 1.1.2 + transitivePeerDependencies: + - supports-color + + extend-shallow@2.0.1: + dependencies: + is-extendable: 0.1.1 + + extend-shallow@3.0.2: + dependencies: + assign-symbols: 1.0.0 + is-extendable: 1.0.1 + + extend@3.0.2: {} + + extglob@2.0.4: + dependencies: + array-unique: 0.3.2 + define-property: 1.0.0 + expand-brackets: 2.1.4 + extend-shallow: 2.0.1 + fragment-cache: 0.2.1 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + extract-zip@1.7.0: + dependencies: + concat-stream: 1.6.2 + debug: 2.6.9 + mkdirp: 0.5.6 + yauzl: 2.10.0 + transitivePeerDependencies: + - supports-color + + extract-zip@2.0.1(supports-color@8.1.1): + dependencies: + debug: 4.4.0(supports-color@8.1.1) + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + extsprintf@1.3.0: + optional: true + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fast-shallow-equal@1.0.0: {} + + fast-uri@3.0.6: {} + + fastest-stable-stringify@2.0.2: {} + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + faye-websocket@0.11.4: + dependencies: + websocket-driver: 0.7.4 + + fb-watchman@2.0.2: + dependencies: + bser: 2.1.1 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fetch-retry@5.0.6: {} + + fflate@0.6.10: {} + + figures@3.2.0: + dependencies: + escape-string-regexp: 1.0.5 + optional: true + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + file-system-cache@2.3.0: + dependencies: + fs-extra: 11.1.1 + ramda: 0.29.0 + + file-type@9.0.0: + optional: true + + file-uri-to-path@1.0.0: + optional: true + + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + + filesize@10.1.6: {} + + fill-range@4.0.0: + dependencies: + extend-shallow: 2.0.1 + is-number: 3.0.0 + repeat-string: 1.6.1 + to-regex-range: 2.1.1 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + finalhandler@1.1.2: + dependencies: + debug: 2.6.9 + encodeurl: 1.0.2 + escape-html: 1.0.3 + on-finished: 2.3.0 + parseurl: 1.3.3 + statuses: 1.5.0 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + finalhandler@1.3.1: + dependencies: + debug: 2.6.9 + encodeurl: 2.0.0 + escape-html: 1.0.3 + on-finished: 2.4.1 + parseurl: 1.3.3 + statuses: 2.0.1 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + + find-cache-dir@2.1.0: + dependencies: + commondir: 1.0.1 + make-dir: 2.1.0 + pkg-dir: 3.0.0 + + find-cache-dir@3.3.2: + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + + find-root@1.1.0: {} + + find-up@3.0.0: + dependencies: + locate-path: 3.0.0 + + find-up@4.1.0: + dependencies: + locate-path: 5.0.0 + path-exists: 4.0.0 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatmap@0.0.3: {} + + flatted@3.3.3: {} + + flow-parser@0.263.0: {} + + follow-redirects@1.15.9(debug@4.4.0): + optionalDependencies: + debug: 4.4.0(supports-color@8.1.1) + + for-each@0.3.5: + dependencies: + is-callable: 1.2.7 + + for-in@1.0.2: {} + + foreground-child@3.3.1: + dependencies: + cross-spawn: 7.0.6 + signal-exit: 4.1.0 + + forever-agent@0.6.1: + optional: true + + form-data@2.3.3: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + optional: true + + form-data@4.0.2: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + mime-types: 2.1.35 + + forwarded@0.2.0: {} + + fragment-cache@0.2.1: + dependencies: + map-cache: 0.2.2 + + framer-motion@12.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + motion-dom: 12.9.1 + motion-utils: 12.8.3 + tslib: 2.8.1 + optionalDependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + fresh@0.5.2: {} + + fresh@2.0.0: {} + + from@0.1.7: {} + + fs-constants@1.0.0: {} + + fs-extra@11.1.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@7.0.1: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + optional: true + + fs-extra@9.1.0: + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-minipass@2.1.0: + dependencies: + minipass: 3.3.6 + + fs.realpath@1.0.0: {} + + fsevents@1.2.13: + dependencies: + bindings: 1.5.0 + nan: 2.22.2 + optional: true + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + function.prototype.name@1.1.8: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 + + functions-have-names@1.2.3: {} + + gauge@3.0.2: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + object-assign: 4.1.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + optional: true + + gauge@4.0.4: + dependencies: + aproba: 2.0.0 + color-support: 1.1.3 + console-control-strings: 1.1.0 + has-unicode: 2.0.1 + signal-exit: 3.0.7 + string-width: 4.2.3 + strip-ansi: 6.0.1 + wide-align: 1.1.5 + optional: true + + gensync@1.0.0-beta.2: {} + + get-caller-file@2.0.5: {} + + get-func-name@2.0.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-nonce@1.0.1: {} + + get-npm-tarball-url@2.1.0: {} + + get-own-enumerable-property-symbols@3.0.2: {} + + get-package-type@0.1.0: {} + + get-port@5.1.1: {} + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + + get-stream@6.0.1: {} + + get-symbol-description@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + + get-tsconfig@4.10.0: + dependencies: + resolve-pkg-maps: 1.0.0 + + get-value@2.0.6: {} + + getos@3.2.1: + dependencies: + async: 3.2.6 + optional: true + + getpass@0.1.7: + dependencies: + assert-plus: 1.0.0 + optional: true + + giget@1.2.5: + dependencies: + citty: 0.1.6 + consola: 3.4.0 + defu: 6.1.4 + node-fetch-native: 1.6.6 + nypm: 0.5.4 + pathe: 2.0.3 + tar: 6.2.1 + + github-from-package@0.0.0: {} + + github-slugger@1.5.0: {} + + gl-matrix@3.4.3: {} + + gl@6.0.2: + dependencies: + bindings: 1.5.0 + bit-twiddle: 1.0.2 + glsl-tokenizer: 2.1.5 + nan: 2.22.2 + node-abi: 3.74.0 + node-gyp: 9.4.1 + prebuild-install: 7.1.3 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true + + glob-parent@3.1.0: + dependencies: + is-glob: 3.1.0 + path-dirname: 1.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob-promise@4.2.2(glob@7.2.3): + dependencies: + '@types/glob': 7.2.0 + glob: 7.2.3 + + glob-to-regexp@0.4.1: {} + + glob@10.4.5: + dependencies: + foreground-child: 3.3.1 + jackspeak: 3.4.3 + minimatch: 9.0.5 + minipass: 7.1.2 + package-json-from-dist: 1.0.1 + path-scurry: 1.11.1 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.6 + once: 1.4.0 + optional: true + + global-dirs@3.0.1: + dependencies: + ini: 2.0.0 + optional: true + + global@4.4.0: + dependencies: + min-document: 2.19.0 + process: 0.11.10 + optional: true + + globals@11.12.0: {} + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + glsl-tokenizer@2.1.5: + dependencies: + through2: 0.6.5 + optional: true + + gopd@1.2.0: {} + + graceful-fs@4.2.11: {} + + graphemer@1.4.0: {} + + gunzip-maybe@1.4.2: + dependencies: + browserify-zlib: 0.1.4 + is-deflate: 1.0.0 + is-gzip: 1.0.0 + peek-stream: 1.1.3 + pumpify: 1.5.1 + through2: 2.0.5 + + gzip-size@7.0.0: + dependencies: + duplexer: 0.1.2 + + handlebars@4.7.8: + dependencies: + minimist: 1.2.8 + neo-async: 2.6.2 + source-map: 0.6.1 + wordwrap: 1.0.0 + optionalDependencies: + uglify-js: 3.19.3 + + hard-rejection@2.1.0: {} + + has-bigints@1.1.0: {} + + has-binary2@1.0.3: + dependencies: + isarray: 2.0.1 + optional: true + + has-cors@1.1.0: + optional: true + + has-flag@3.0.0: {} + + has-flag@4.0.0: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + has-unicode@2.0.1: + optional: true + + has-value@0.3.1: + dependencies: + get-value: 2.0.6 + has-values: 0.1.4 + isobject: 2.1.0 + + has-value@1.0.0: + dependencies: + get-value: 2.0.6 + has-values: 1.0.0 + isobject: 3.0.1 + + has-values@0.1.4: {} + + has-values@1.0.0: + dependencies: + is-number: 3.0.0 + kind-of: 4.0.0 + + has@1.0.4: {} + + hash-base@3.0.5: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + header-case@2.0.4: + dependencies: + capital-case: 1.0.4 + tslib: 2.8.1 + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + hogan.js@3.0.2: + dependencies: + mkdirp: 0.3.0 + nopt: 1.0.10 + optional: true + + hoist-non-react-statics@3.3.2: + dependencies: + react-is: 16.13.1 + + hosted-git-info@2.8.9: {} + + hosted-git-info@4.1.0: + dependencies: + lru-cache: 6.0.0 + + html-encoding-sniffer@3.0.0: + dependencies: + whatwg-encoding: 2.0.0 + + html-entities@2.6.0: {} + + html-tags@3.3.1: {} + + http-auth@3.1.3: + dependencies: + apache-crypt: 1.2.6 + apache-md5: 1.1.8 + bcryptjs: 2.4.3 + uuid: 3.4.0 + + http-browserify@1.7.0: + dependencies: + Base64: 0.2.1 + inherits: 2.0.4 + + http-cache-semantics@4.1.1: {} + + http-errors@1.6.3: + dependencies: + depd: 1.1.2 + inherits: 2.0.3 + setprototypeof: 1.1.0 + statuses: 1.5.0 + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http-parser-js@0.5.9: {} + + http-proxy-agent@5.0.0: + dependencies: + '@tootallnate/once': 2.0.0 + agent-base: 6.0.2 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + optional: true + + http-proxy@1.18.1(debug@4.4.0): + dependencies: + eventemitter3: 4.0.7 + follow-redirects: 1.15.9(debug@4.4.0) + requires-port: 1.0.0 + transitivePeerDependencies: + - debug + + http-server@14.1.1(debug@4.4.0): + dependencies: + basic-auth: 2.0.1 + chalk: 4.1.2 + corser: 2.0.1 + he: 1.2.0 + html-encoding-sniffer: 3.0.0 + http-proxy: 1.18.1(debug@4.4.0) + mime: 1.6.0 + minimist: 1.2.8 + opener: 1.5.2 + portfinder: 1.0.33 + secure-compare: 3.0.1 + union: 0.5.0 + url-join: 4.0.1 + transitivePeerDependencies: + - debug + - supports-color + + http-signature@1.3.6: + dependencies: + assert-plus: 1.0.0 + jsprim: 2.0.2 + sshpk: 1.18.0 + optional: true + + https-browserify@1.0.0: {} + + https-proxy-agent@4.0.0: + dependencies: + agent-base: 5.1.1 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@5.0.1: + dependencies: + agent-base: 6.0.2 + debug: 4.4.1 + transitivePeerDependencies: + - supports-color + optional: true + + human-signals@1.1.1: + optional: true + + human-signals@2.1.0: {} + + humanize-ms@1.2.1: + dependencies: + ms: 2.1.3 + optional: true + + hyperdyperid@1.2.0: {} + + hyphenate-style-name@1.1.0: {} + + iconv-lite@0.4.24: + dependencies: + safer-buffer: 2.1.2 + + iconv-lite@0.6.3: + dependencies: + safer-buffer: 2.1.2 + + idb@7.1.1: {} + + ieee754@1.2.1: {} + + ignore@5.3.2: {} + + image-size@0.7.5: + optional: true + + immediate@3.0.6: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@3.1.1: {} + + imurmurhash@0.1.4: {} + + indent-string@4.0.0: {} + + indent-string@5.0.0: {} + + indexof@0.0.1: + optional: true + + infer-owner@1.0.4: + optional: true + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.3: {} + + inherits@2.0.4: {} + + ini@1.3.8: {} + + ini@2.0.0: + optional: true + + inline-style-prefixer@7.0.1: + dependencies: + css-in-js-utils: 3.1.0 + + internal-slot@1.1.0: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.1.0 + + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + optional: true + + ipaddr.js@1.9.1: {} + + is-absolute-url@3.0.3: {} + + is-accessor-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-arguments@1.2.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-array-buffer@3.0.5: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-arrayish@0.2.1: {} + + is-arrayish@0.3.2: {} + + is-async-function@2.1.1: + dependencies: + async-function: 1.0.0 + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-bigint@1.1.0: + dependencies: + has-bigints: 1.1.0 + + is-binary-path@1.0.1: + dependencies: + binary-extensions: 1.13.1 + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-boolean-object@1.2.2: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-buffer@1.1.6: {} + + is-builtin-module@3.2.1: + dependencies: + builtin-modules: 3.3.0 + + is-callable@1.2.7: {} + + is-ci@3.0.1: + dependencies: + ci-info: 3.9.0 + optional: true + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + is-data-descriptor@1.0.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.2: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + is-typed-array: 1.1.15 + + is-date-object@1.1.0: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-deflate@1.0.0: {} + + is-descriptor@0.1.7: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-descriptor@1.0.3: + dependencies: + is-accessor-descriptor: 1.0.1 + is-data-descriptor: 1.0.1 + + is-docker@2.2.1: {} + + is-extendable@0.1.1: {} + + is-extendable@1.0.1: + dependencies: + is-plain-object: 2.0.4 + + is-extglob@2.1.1: {} + + is-finalizationregistry@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-fullwidth-code-point@3.0.0: {} + + is-function@1.0.2: + optional: true + + is-generator-function@1.1.0: + dependencies: + call-bound: 1.0.4 + get-proto: 1.0.1 + has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 + + is-glob@3.1.0: + dependencies: + is-extglob: 2.1.1 + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-gzip@1.0.0: {} + + is-installed-globally@0.4.0: + dependencies: + global-dirs: 3.0.1 + is-path-inside: 3.0.3 + optional: true + + is-interactive@1.0.0: {} + + is-lambda@1.0.1: + optional: true + + is-map@2.0.3: {} + + is-module@1.0.0: {} + + is-nan@1.3.2: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + is-negative-zero@2.0.3: {} + + is-number-object@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-number@3.0.0: + dependencies: + kind-of: 3.2.2 + + is-number@7.0.0: {} + + is-obj@1.0.1: {} + + is-path-cwd@2.2.0: {} + + is-path-inside@3.0.3: {} + + is-plain-obj@1.1.0: {} + + is-plain-obj@4.1.0: {} + + is-plain-object@2.0.4: + dependencies: + isobject: 3.0.1 + + is-plain-object@5.0.0: {} + + is-regex@1.2.1: + dependencies: + call-bound: 1.0.4 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + is-regexp@1.0.0: {} + + is-set@2.0.3: {} + + is-shared-array-buffer@1.0.4: + dependencies: + call-bound: 1.0.4 + + is-stream@2.0.1: {} + + is-string@1.1.1: + dependencies: + call-bound: 1.0.4 + has-tostringtag: 1.0.2 + + is-symbol@1.1.1: + dependencies: + call-bound: 1.0.4 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 + + is-typed-array@1.1.15: + dependencies: + which-typed-array: 1.1.18 + + is-typedarray@1.0.0: + optional: true + + is-unicode-supported@0.1.0: {} + + is-weakmap@2.0.2: {} + + is-weakref@1.1.1: + dependencies: + call-bound: 1.0.4 + + is-weakset@2.0.4: + dependencies: + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + + is-windows@1.0.2: {} + + is-wsl@1.1.0: {} + + is-wsl@2.2.0: + dependencies: + is-docker: 2.2.1 + + isarray@0.0.1: + optional: true + + isarray@1.0.0: {} + + isarray@2.0.1: + optional: true + + isarray@2.0.5: {} + + isexe@2.0.0: {} + + isobject@2.1.0: + dependencies: + isarray: 1.0.0 + + isobject@3.0.1: {} + + isstream@0.1.2: + optional: true + + istanbul-lib-coverage@3.2.2: {} + + istanbul-lib-instrument@5.2.1: + dependencies: + '@babel/core': 7.26.9 + '@babel/parser': 7.26.9 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 6.3.1 + transitivePeerDependencies: + - supports-color + + iterator.prototype@1.1.5: + dependencies: + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + has-symbols: 1.1.0 + set-function-name: 2.0.2 + + jackspeak@3.4.3: + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + + jake@10.9.2: + dependencies: + async: 3.2.6 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + + jest-haste-map@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/graceful-fs': 4.1.9 + '@types/node': 22.13.9 + anymatch: 3.1.3 + fb-watchman: 2.0.2 + graceful-fs: 4.2.11 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 + micromatch: 4.0.8 + walker: 1.0.8 + optionalDependencies: + fsevents: 2.3.3 + + jest-regex-util@29.6.3: {} + + jest-util@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 22.13.9 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-worker@29.7.0: + dependencies: + '@types/node': 22.13.9 + jest-util: 29.7.0 + merge-stream: 2.0.0 + supports-color: 8.1.1 + + jimp@0.10.3(debug@4.4.0): + dependencies: + '@babel/runtime': 7.26.9 + '@jimp/custom': 0.10.3(debug@4.4.0) + '@jimp/plugins': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0))(debug@4.4.0) + '@jimp/types': 0.10.3(@jimp/custom@0.10.3(debug@4.4.0)) + core-js: 3.41.0 + regenerator-runtime: 0.13.11 + transitivePeerDependencies: + - debug + optional: true + + jiti@2.4.2: {} + + joi@17.13.3: + dependencies: + '@hapi/hoek': 9.3.0 + '@hapi/topo': 5.1.0 + '@sideway/address': 4.1.5 + '@sideway/formula': 3.0.1 + '@sideway/pinpoint': 2.0.0 + + jpeg-js@0.3.7: + optional: true + + js-base64@2.6.4: + optional: true + + js-cookie@2.2.1: {} + + js-tokens@4.0.0: {} + + js-yaml@3.14.1: + dependencies: + argparse: 1.0.10 + esprima: 4.0.1 + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + jsbn@0.1.1: + optional: true + + jsbn@1.1.0: + optional: true + + jscodeshift@0.15.2(@babel/preset-env@7.26.9(@babel/core@7.26.9)): + dependencies: + '@babel/core': 7.26.9 + '@babel/parser': 7.26.9 + '@babel/plugin-transform-class-properties': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.9) + '@babel/plugin-transform-nullish-coalescing-operator': 7.26.6(@babel/core@7.26.9) + '@babel/plugin-transform-optional-chaining': 7.25.9(@babel/core@7.26.9) + '@babel/plugin-transform-private-methods': 7.25.9(@babel/core@7.26.9) + '@babel/preset-flow': 7.25.9(@babel/core@7.26.9) + '@babel/preset-typescript': 7.26.0(@babel/core@7.26.9) + '@babel/register': 7.25.9(@babel/core@7.26.9) + babel-core: 7.0.0-bridge.0(@babel/core@7.26.9) + chalk: 4.1.2 + flow-parser: 0.263.0 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + neo-async: 2.6.2 + node-dir: 0.1.17 + recast: 0.23.11 + temp: 0.8.4 + write-file-atomic: 2.4.3 + optionalDependencies: + '@babel/preset-env': 7.26.9(@babel/core@7.26.9) + transitivePeerDependencies: + - supports-color + + jsesc@0.5.0: {} + + jsesc@3.0.2: {} + + jsesc@3.1.0: {} + + json-buffer@3.0.1: {} + + json-parse-better-errors@1.0.2: {} + + json-parse-even-better-errors@2.3.1: {} + + json-schema-traverse@0.4.1: {} + + json-schema-traverse@1.0.0: {} + + json-schema@0.4.0: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + json-stringify-safe@5.0.1: {} + + json5@1.0.2: + dependencies: + minimist: 1.2.8 + + json5@2.2.3: {} + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + optional: true + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + jsonpointer@5.0.1: {} + + jsonwebtoken@9.0.2: + dependencies: + jws: 3.2.2 + lodash.includes: 4.3.0 + lodash.isboolean: 3.0.3 + lodash.isinteger: 4.0.4 + lodash.isnumber: 3.0.3 + lodash.isplainobject: 4.0.6 + lodash.isstring: 4.0.1 + lodash.once: 4.1.1 + ms: 2.1.3 + semver: 7.7.1 + + jsprim@2.0.2: + dependencies: + assert-plus: 1.0.0 + extsprintf: 1.3.0 + json-schema: 0.4.0 + verror: 1.10.0 + optional: true + + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.9 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 + + jszip@3.10.1: + dependencies: + lie: 3.3.0 + pako: 1.0.11 + readable-stream: 2.3.8 + setimmediate: 1.0.5 + + jwa@1.4.1: + dependencies: + buffer-equal-constant-time: 1.0.1 + ecdsa-sig-formatter: 1.0.11 + safe-buffer: 5.2.1 + + jws@3.2.2: + dependencies: + jwa: 1.4.1 + safe-buffer: 5.2.1 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + kind-of@3.2.2: + dependencies: + is-buffer: 1.1.6 + + kind-of@4.0.0: + dependencies: + is-buffer: 1.1.6 + + kind-of@6.0.3: {} + + kleur@3.0.3: {} + + lazy-ass@1.6.0: + optional: true + + lazy-universal-dotenv@4.0.0: + dependencies: + app-root-dir: 1.0.2 + dotenv: 16.4.7 + dotenv-expand: 10.0.0 + + leven@3.1.0: {} + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + lie@3.3.0: + dependencies: + immediate: 3.0.6 + + lil-gui@0.17.0: {} + + lil-gui@0.18.2: {} + + lines-and-columns@1.2.4: {} + + linkify-it@5.0.0: + dependencies: + uc.micro: 2.1.0 + + listr2@3.14.0(enquirer@2.4.1): + dependencies: + cli-truncate: 2.1.0 + colorette: 2.0.20 + log-update: 4.0.0 + p-map: 4.0.0 + rfdc: 1.4.1 + rxjs: 7.8.2 + through: 2.3.8 + wrap-ansi: 7.0.0 + optionalDependencies: + enquirer: 2.4.1 + optional: true + + live-server@1.2.2: + dependencies: + chokidar: 2.1.8 + colors: 1.4.0 + connect: 3.7.0 + cors: 2.8.5 + event-stream: 3.3.4 + faye-websocket: 0.11.4 + http-auth: 3.1.3 + morgan: 1.10.0 + object-assign: 4.1.1 + opn: 6.0.0 + proxy-middleware: 0.15.0 + send: 1.2.0 + serve-index: 1.9.1 + transitivePeerDependencies: + - supports-color + + load-bmfont@1.4.2(debug@4.4.0): + dependencies: + buffer-equal: 0.0.1 + mime: 1.6.0 + parse-bmfont-ascii: 1.0.6 + parse-bmfont-binary: 1.0.6 + parse-bmfont-xml: 1.1.6 + phin: 3.7.1(debug@4.4.0) + xhr: 2.6.0 + xtend: 4.0.2 + transitivePeerDependencies: + - debug + optional: true + + load-json-file@4.0.0: + dependencies: + graceful-fs: 4.2.11 + parse-json: 4.0.0 + pify: 3.0.0 + strip-bom: 3.0.0 + + local-pkg@0.4.3: {} + + locate-path@3.0.0: + dependencies: + p-locate: 3.0.0 + path-exists: 3.0.0 + + locate-path@5.0.0: + dependencies: + p-locate: 4.1.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash-es@4.17.21: {} + + lodash.compact@3.0.1: {} + + lodash.debounce@4.0.8: {} + + lodash.get@4.4.2: {} + + lodash.includes@4.3.0: {} + + lodash.isboolean@3.0.3: {} + + lodash.isinteger@4.0.4: {} + + lodash.isnumber@3.0.3: {} + + lodash.isplainobject@4.0.6: {} + + lodash.isstring@4.0.1: {} + + lodash.merge@4.6.2: {} + + lodash.once@4.1.1: {} + + lodash.reduce@4.6.0: {} + + lodash.sortby@4.7.0: {} + + lodash@4.17.21: {} + + log-symbols@4.1.0: + dependencies: + chalk: 4.1.2 + is-unicode-supported: 0.1.0 + + log-update@4.0.0: + dependencies: + ansi-escapes: 4.3.2 + cli-cursor: 3.1.0 + slice-ansi: 4.0.0 + wrap-ansi: 6.2.0 + optional: true + + long@5.3.1: {} + + longest-streak@3.1.0: {} + + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + + loupe@2.3.7: + dependencies: + get-func-name: 2.0.2 + + lower-case@2.0.2: + dependencies: + tslib: 2.8.1 + + lru-cache@10.4.3: {} + + lru-cache@5.1.1: + dependencies: + yallist: 3.1.1 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + lru-cache@7.18.3: + optional: true + + macaddress@0.5.3: {} + + magic-string@0.25.9: + dependencies: + sourcemap-codec: 1.4.8 + + magic-string@0.27.0: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + magic-string@0.30.17: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + + make-dir@2.1.0: + dependencies: + pify: 4.0.1 + semver: 5.7.2 + + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + + make-fetch-happen@10.2.1: + dependencies: + agentkeepalive: 4.6.0 + cacache: 16.1.3 + http-cache-semantics: 4.1.1 + http-proxy-agent: 5.0.0 + https-proxy-agent: 5.0.1 + is-lambda: 1.0.1 + lru-cache: 7.18.3 + minipass: 3.3.6 + minipass-collect: 1.0.2 + minipass-fetch: 2.1.2 + minipass-flush: 1.0.5 + minipass-pipeline: 1.2.4 + negotiator: 0.6.4 + promise-retry: 2.0.1 + socks-proxy-agent: 7.0.0 + ssri: 9.0.1 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true + + makeerror@1.0.12: + dependencies: + tmpl: 1.0.5 + + map-cache@0.2.2: {} + + map-obj@1.0.1: {} + + map-obj@4.3.0: {} + + map-or-similar@1.5.0: {} + + map-stream@0.1.0: {} + + map-visit@1.0.0: + dependencies: + object-visit: 1.0.1 + + markdown-it@14.1.0: + dependencies: + argparse: 2.0.1 + entities: 4.5.0 + linkify-it: 5.0.0 + mdurl: 2.0.0 + punycode.js: 2.3.1 + uc.micro: 2.1.0 + + markdown-to-jsx@7.7.4(react@18.3.1): + dependencies: + react: 18.3.1 + + math-intrinsics@1.1.0: {} + + mc-assets@0.2.62: + dependencies: + maxrects-packer: '@zardoy/maxrects-packer@2.7.4' + zod: 3.24.2 + + mc-bridge@0.1.3(minecraft-data@3.98.0): + dependencies: + minecraft-data: 3.98.0 + + mcraft-fun-mineflayer@0.1.23(encoding@0.1.13)(mineflayer@https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659(encoding@0.1.13)): + dependencies: + '@zardoy/flying-squid': 0.0.49(encoding@0.1.13) + exit-hook: 2.2.1 + minecraft-protocol: https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9(patch_hash=4ebdae314c68d01ce7879445c0b8bde5f90373abba8b66ed00d42e7a5f542f8b)(encoding@0.1.13) + mineflayer: https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659(encoding@0.1.13) + prismarine-item: 1.17.0 + ws: 8.18.1 + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + md5-file@4.0.0: {} + + md5.js@1.3.5: + dependencies: + hash-base: 3.0.5 + inherits: 2.0.4 + safe-buffer: 5.2.1 + + md5@2.3.0: + dependencies: + charenc: 0.0.2 + crypt: 0.0.2 + is-buffer: 1.1.6 + + mdast-util-definitions@4.0.0: + dependencies: + unist-util-visit: 2.0.3 + + mdast-util-from-markdown@2.0.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.2 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-decode-string: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + + mdast-util-phrasing@4.1.0: + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + + mdast-util-to-markdown@2.1.2: + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.3 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-classify-character: 2.0.1 + micromark-util-decode-string: 2.0.1 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + + mdast-util-to-string@1.1.0: {} + + mdast-util-to-string@4.0.0: + dependencies: + '@types/mdast': 4.0.4 + + mdn-data@2.0.14: {} + + mdurl@2.0.0: {} + + media-typer@0.3.0: {} + + memfs@4.17.0: + dependencies: + '@jsonjoy.com/json-pack': 1.2.0(tslib@2.8.1) + '@jsonjoy.com/util': 1.5.0(tslib@2.8.1) + tree-dump: 1.0.2(tslib@2.8.1) + tslib: 2.8.1 + + memoize-one@6.0.0: {} + + memoizerific@1.11.3: + dependencies: + map-or-similar: 1.5.0 + + memorystream@0.3.1: {} + + meow@10.1.5: + dependencies: + '@types/minimist': 1.2.5 + camelcase-keys: 7.0.2 + decamelize: 5.0.1 + decamelize-keys: 1.1.1 + hard-rejection: 2.1.0 + minimist-options: 4.1.0 + normalize-package-data: 3.0.3 + read-pkg-up: 8.0.0 + redent: 4.0.0 + trim-newlines: 4.1.1 + type-fest: 1.4.0 + yargs-parser: 20.2.9 + + merge-descriptors@1.0.3: {} + + merge-stream@2.0.0: {} + + merge2@1.4.1: {} + + merge@1.2.1: + optional: true + + meshoptimizer@0.18.1: {} + + methods@1.1.2: {} + + micromark-core-commonmark@2.0.3: + dependencies: + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + micromark-factory-destination: 2.0.1 + micromark-factory-label: 2.0.1 + micromark-factory-space: 2.0.1 + micromark-factory-title: 2.0.1 + micromark-factory-whitespace: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-classify-character: 2.0.1 + micromark-util-html-tag-name: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-destination@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-label@2.0.1: + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-space@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-types: 2.0.2 + + micromark-factory-title@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-factory-whitespace@2.0.1: + dependencies: + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-character@2.1.1: + dependencies: + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-chunked@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-classify-character@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-combine-extensions@2.0.1: + dependencies: + micromark-util-chunked: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-decode-numeric-character-reference@2.0.2: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-decode-string@2.0.1: + dependencies: + decode-named-character-reference: 1.1.0 + micromark-util-character: 2.1.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-symbol: 2.0.1 + + micromark-util-encode@2.0.1: {} + + micromark-util-html-tag-name@2.0.1: {} + + micromark-util-normalize-identifier@2.0.1: + dependencies: + micromark-util-symbol: 2.0.1 + + micromark-util-resolve-all@2.0.1: + dependencies: + micromark-util-types: 2.0.2 + + micromark-util-sanitize-uri@2.0.1: + dependencies: + micromark-util-character: 2.1.1 + micromark-util-encode: 2.0.1 + micromark-util-symbol: 2.0.1 + + micromark-util-subtokenize@2.1.0: + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.1 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + + micromark-util-symbol@2.0.1: {} + + micromark-util-types@2.0.2: {} + + micromark@4.0.2: + dependencies: + '@types/debug': 4.1.12 + debug: 4.4.1 + decode-named-character-reference: 1.1.0 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.3 + micromark-factory-space: 2.0.1 + micromark-util-character: 2.1.1 + micromark-util-chunked: 2.0.1 + micromark-util-combine-extensions: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.2 + micromark-util-encode: 2.0.1 + micromark-util-normalize-identifier: 2.0.1 + micromark-util-resolve-all: 2.0.1 + micromark-util-sanitize-uri: 2.0.1 + micromark-util-subtokenize: 2.1.0 + micromark-util-symbol: 2.0.1 + micromark-util-types: 2.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@3.1.10: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + braces: 2.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + extglob: 2.0.4 + fragment-cache: 0.2.1 + kind-of: 6.0.3 + nanomatch: 1.2.13 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + miller-rabin@4.0.1: + dependencies: + bn.js: 4.12.1 + brorand: 1.1.0 + + mime-db@1.52.0: {} + + mime-db@1.54.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mime-types@3.0.1: + dependencies: + mime-db: 1.54.0 + + mime@1.6.0: {} + + mime@2.6.0: {} + + mimic-fn@2.1.0: {} + + mimic-response@2.1.0: + optional: true + + mimic-response@3.1.0: {} + + min-document@2.19.0: + dependencies: + dom-walk: 0.1.2 + optional: true + + min-indent@1.0.1: {} + + minecraft-data@3.98.0: {} + + minecraft-folder-path@1.2.0: {} + + minecraft-inventory-gui@https://codeload.github.com/zardoy/minecraft-inventory-gui/tar.gz/89c33d396f3fde4804c71f4be3c203ade1833b41(@types/react@18.3.18)(react@18.3.1): + dependencies: + valtio: 1.13.2(@types/react@18.3.18)(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - react + + minecraft-protocol@https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9(patch_hash=4ebdae314c68d01ce7879445c0b8bde5f90373abba8b66ed00d42e7a5f542f8b)(encoding@0.1.13): + dependencies: + '@types/node-rsa': 1.1.4 + '@types/readable-stream': 4.0.18 + aes-js: 3.1.2 + buffer-equal: 1.0.1 + debug: 4.4.0(supports-color@8.1.1) + endian-toggle: 0.0.0 + lodash.merge: 4.6.2 + minecraft-data: 3.98.0 + minecraft-folder-path: 1.2.0 + node-fetch: 2.7.0(encoding@0.1.13) + node-rsa: 0.4.2 + prismarine-auth: 2.7.0 + prismarine-chat: 1.11.0 + prismarine-nbt: 2.7.0 + prismarine-realms: 1.3.2(encoding@0.1.13) + protodef: 1.18.0 + readable-stream: 4.7.0 + uuid-1345: 1.0.2 + yggdrasil: 1.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + minecraft-wrap@1.6.0(encoding@0.1.13): + dependencies: + adm-zip: 0.5.16 + debug: 4.4.0(supports-color@8.1.1) + es6-promisify: 5.0.0 + extract-zip: 2.0.1(supports-color@8.1.1) + flatmap: 0.0.3 + md5-file: 4.0.0 + minecraft-folder-path: 1.2.0 + mkdirp: 0.5.6 + mz: 2.7.0 + node-fetch: 2.7.0(encoding@0.1.13) + promise-queue: 2.2.5 + rimraf: 3.0.2 + yggdrasil: 1.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + minecrafthawkeye@1.3.9: + dependencies: + detect-collisions: 7.0.5 + uuid: 9.0.1 + vec3: 0.1.10 + + mineflayer-item-map-downloader@https://codeload.github.com/zardoy/mineflayer-item-map-downloader/tar.gz/a8d210ecdcf78dd082fa149a96e1612cc9747824(patch_hash=a731ebbace2d8790c973ab3a5ba33494a6e9658533a9710dd8ba36f86db061ad)(encoding@0.1.13): + dependencies: + mineflayer: https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659(encoding@0.1.13) + sharp: 0.30.7 + transitivePeerDependencies: + - encoding + - supports-color + + mineflayer-mouse@0.1.21: + dependencies: + change-case: 5.4.4 + debug: 4.4.1 + prismarine-item: 1.17.0 + prismarine-world: https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c + transitivePeerDependencies: + - supports-color + + mineflayer@https://codeload.github.com/zardoy/mineflayer/tar.gz/dd3b1ff38506d6f72d90e8444186e4e75fe82659(encoding@0.1.13): + dependencies: + '@nxg-org/mineflayer-physics-util': 1.8.10 + minecraft-data: 3.98.0 + minecraft-protocol: https://codeload.github.com/PrismarineJS/node-minecraft-protocol/tar.gz/bf89f7e86526c54d8c43f555d8f6dfa4948fd2d9(patch_hash=4ebdae314c68d01ce7879445c0b8bde5f90373abba8b66ed00d42e7a5f542f8b)(encoding@0.1.13) + prismarine-biome: 1.3.0(minecraft-data@3.98.0)(prismarine-registry@1.11.0) + prismarine-block: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-chat: 1.11.0 + prismarine-chunk: https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f(minecraft-data@3.98.0) + prismarine-entity: 2.5.0 + prismarine-item: 1.17.0 + prismarine-nbt: 2.7.0 + prismarine-physics: https://codeload.github.com/zardoy/prismarine-physics/tar.gz/353e25b800149393f40539ec381218be44cbb03b + prismarine-recipe: 1.3.1(prismarine-registry@1.11.0) + prismarine-registry: 1.11.0 + prismarine-windows: 2.9.0 + prismarine-world: https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c + protodef: 1.18.0 + typed-emitter: 1.4.0 + vec3: 0.1.10 + transitivePeerDependencies: + - encoding + - supports-color + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.11 + + minimatch@5.1.6: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.1 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.1 + + minimist-options@4.1.0: + dependencies: + arrify: 1.0.1 + is-plain-obj: 1.1.0 + kind-of: 6.0.3 + + minimist@1.2.8: {} + + minipass-collect@1.0.2: + dependencies: + minipass: 3.3.6 + optional: true + + minipass-fetch@2.1.2: + dependencies: + minipass: 3.3.6 + minipass-sized: 1.0.3 + minizlib: 2.1.2 + optionalDependencies: + encoding: 0.1.13 + optional: true + + minipass-flush@1.0.5: + dependencies: + minipass: 3.3.6 + optional: true + + minipass-pipeline@1.2.4: + dependencies: + minipass: 3.3.6 + optional: true + + minipass-sized@1.0.3: + dependencies: + minipass: 3.3.6 + optional: true + + minipass@3.3.6: + dependencies: + yallist: 4.0.0 + + minipass@5.0.0: {} + + minipass@7.1.2: {} + + minizlib@2.1.2: + dependencies: + minipass: 3.3.6 + yallist: 4.0.0 + + mixin-deep@1.3.2: + dependencies: + for-in: 1.0.2 + is-extendable: 1.0.1 + + mkdirp-classic@0.5.3: {} + + mkdirp@0.3.0: + optional: true + + mkdirp@0.5.6: + dependencies: + minimist: 1.2.8 + + mkdirp@1.0.4: {} + + mkdirp@2.1.6: {} + + mlly@1.7.4: + dependencies: + acorn: 8.14.1 + pathe: 2.0.3 + pkg-types: 1.3.1 + ufo: 1.5.4 + + mojangson@2.0.4: + dependencies: + nearley: 2.20.1 + + monaco-editor@0.52.2: {} + + moo@0.5.2: {} + + morgan@1.10.0: + dependencies: + basic-auth: 2.0.1 + debug: 2.6.9 + depd: 2.0.0 + on-finished: 2.3.0 + on-headers: 1.0.2 + transitivePeerDependencies: + - supports-color + + motion-dom@12.9.1: + dependencies: + motion-utils: 12.8.3 + + motion-utils@12.8.3: {} + + ms@2.0.0: {} + + ms@2.1.3: {} + + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + + nan@2.22.2: + optional: true + + nano-css@5.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@jridgewell/sourcemap-codec': 1.5.0 + css-tree: 1.1.3 + csstype: 3.1.3 + fastest-stable-stringify: 2.0.2 + inline-style-prefixer: 7.0.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + rtl-css-js: 1.16.1 + stacktrace-js: 2.0.2 + stylis: 4.3.6 + + nanoid@3.3.9: {} + + nanomatch@1.2.13: + dependencies: + arr-diff: 4.0.0 + array-unique: 0.3.2 + define-property: 2.0.2 + extend-shallow: 3.0.2 + fragment-cache: 0.2.1 + is-windows: 1.0.2 + kind-of: 6.0.3 + object.pick: 1.3.0 + regex-not: 1.0.2 + snapdragon: 0.8.2 + to-regex: 3.0.2 + transitivePeerDependencies: + - supports-color + + napi-build-utils@2.0.0: {} + + natural-compare-lite@1.4.0: {} + + natural-compare@1.4.0: {} + + nearley@2.20.1: + dependencies: + commander: 2.20.3 + moo: 0.5.2 + railroad-diagrams: 1.0.0 + randexp: 0.4.6 + + negotiator@0.6.3: {} + + negotiator@0.6.4: {} + + neo-async@2.6.2: {} + + net-browserify@https://codeload.github.com/zardoy/prismarinejs-net-browserify/tar.gz/e754999ffdea67853bc9b10553b5e9908b40f618: + dependencies: + body-parser: 1.20.3 + express: 4.21.2 + express-ws: 4.0.0(express@4.21.2) + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + nice-try@1.0.5: {} + + no-case@3.0.4: + dependencies: + lower-case: 2.0.2 + tslib: 2.8.1 + + node-abi@3.74.0: + dependencies: + semver: 7.7.1 + + node-addon-api@5.1.0: {} + + node-canvas-webgl@0.3.0(encoding@0.1.13): + dependencies: + canvas: 2.11.2(encoding@0.1.13) + gl: 6.0.2 + transitivePeerDependencies: + - bluebird + - encoding + - supports-color + optional: true + + node-dir@0.1.17: + dependencies: + minimatch: 3.1.2 + + node-fetch-native@1.6.6: {} + + node-fetch@2.7.0(encoding@0.1.13): + dependencies: + whatwg-url: 5.0.0 + optionalDependencies: + encoding: 0.1.13 + + node-gyp@9.4.1: + dependencies: + env-paths: 2.2.1 + exponential-backoff: 3.1.2 + glob: 7.2.3 + graceful-fs: 4.2.11 + make-fetch-happen: 10.2.1 + nopt: 6.0.0 + npmlog: 6.0.2 + rimraf: 3.0.2 + semver: 7.7.1 + tar: 6.2.1 + which: 2.0.2 + transitivePeerDependencies: + - bluebird + - supports-color + optional: true + + node-gzip@1.1.2: {} + + node-html-parser@6.1.13: + dependencies: + css-select: 5.1.0 + he: 1.2.0 + + node-int64@0.4.0: {} + + node-releases@2.0.19: {} + + node-rsa@0.4.2: + dependencies: + asn1: 0.2.3 + + node-rsa@1.1.1: + dependencies: + asn1: 0.2.6 + + nopt@1.0.10: + dependencies: + abbrev: 1.1.1 + optional: true + + nopt@5.0.0: + dependencies: + abbrev: 1.1.1 + optional: true + + nopt@6.0.0: + dependencies: + abbrev: 1.1.1 + optional: true + + normalize-package-data@2.5.0: + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.10 + semver: 5.7.2 + validate-npm-package-license: 3.0.4 + + normalize-package-data@3.0.3: + dependencies: + hosted-git-info: 4.1.0 + is-core-module: 2.16.1 + semver: 7.7.1 + validate-npm-package-license: 3.0.4 + + normalize-path@2.1.1: + dependencies: + remove-trailing-separator: 1.1.0 + + normalize-path@3.0.0: {} + + npm-run-all@4.1.5: + dependencies: + ansi-styles: 3.2.1 + chalk: 2.4.2 + cross-spawn: 6.0.6 + memorystream: 0.3.1 + minimatch: 3.1.2 + pidtree: 0.3.1 + read-pkg: 3.0.0 + shell-quote: 1.8.2 + string.prototype.padend: 3.1.6 + + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + + npmlog@5.0.1: + dependencies: + are-we-there-yet: 2.0.0 + console-control-strings: 1.1.0 + gauge: 3.0.2 + set-blocking: 2.0.0 + optional: true + + npmlog@6.0.2: + dependencies: + are-we-there-yet: 3.0.1 + console-control-strings: 1.1.0 + gauge: 4.0.4 + set-blocking: 2.0.0 + optional: true + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + nypm@0.5.4: + dependencies: + citty: 0.1.6 + consola: 3.4.0 + pathe: 2.0.3 + pkg-types: 1.3.1 + tinyexec: 0.3.2 + ufo: 1.5.4 + + object-assign@4.1.1: {} + + object-copy@0.1.0: + dependencies: + copy-descriptor: 0.1.1 + define-property: 0.2.5 + kind-of: 3.2.2 + + object-inspect@1.13.4: {} + + object-is@1.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + + object-keys@1.1.1: {} + + object-visit@1.0.1: + dependencies: + isobject: 3.0.1 + + object.assign@4.1.7: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 + object-keys: 1.1.1 + + object.entries@1.1.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + object.fromentries@2.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.24.0 + es-object-atoms: 1.1.1 + + object.pick@1.3.0: + dependencies: + isobject: 3.0.1 + + object.values@1.2.1: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + omggif@1.0.10: + optional: true + + on-finished@2.3.0: + dependencies: + ee-first: 1.1.1 + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + on-headers@1.0.2: {} + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + + open@8.4.2: + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + + opener@1.5.2: {} + + opn@6.0.0: + dependencies: + is-wsl: 1.1.0 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + ora@5.4.1: + dependencies: + bl: 4.1.0 + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-spinners: 2.9.2 + is-interactive: 1.0.0 + is-unicode-supported: 0.1.0 + log-symbols: 4.1.0 + strip-ansi: 6.0.1 + wcwidth: 1.0.1 + + orderedmap@2.1.1: {} + + os-browserify@0.3.0: {} + + ospath@1.2.2: + optional: true + + own-keys@1.0.1: + dependencies: + get-intrinsic: 1.3.0 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 + + p-limit@2.3.0: + dependencies: + p-try: 2.2.0 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-limit@4.0.0: + dependencies: + yocto-queue: 1.2.0 + + p-locate@3.0.0: + dependencies: + p-limit: 2.3.0 + + p-locate@4.1.0: + dependencies: + p-limit: 2.3.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + p-map@4.0.0: + dependencies: + aggregate-error: 3.1.0 + + p-try@2.2.0: {} + + package-json-from-dist@1.0.1: {} + + pako@0.2.9: {} + + pako@1.0.11: {} + + pako@2.1.0: {} + + param-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + parse-asn1@5.1.7: + dependencies: + asn1.js: 4.10.1 + browserify-aes: 1.2.0 + evp_bytestokey: 1.0.3 + hash-base: 3.0.5 + pbkdf2: 3.1.2 + safe-buffer: 5.2.1 + + parse-bmfont-ascii@1.0.6: + optional: true + + parse-bmfont-binary@1.0.6: + optional: true + + parse-bmfont-xml@1.1.6: + dependencies: + xml-parse-from-string: 1.0.1 + xml2js: 0.5.0 + optional: true + + parse-headers@2.0.5: + optional: true + + parse-json@4.0.0: + dependencies: + error-ex: 1.3.2 + json-parse-better-errors: 1.0.2 + + parse-json@5.2.0: + dependencies: + '@babel/code-frame': 7.26.2 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + + parseqs@0.0.6: + optional: true + + parseuri@0.0.6: + optional: true + + parseurl@1.3.3: {} + + pascal-case@3.1.2: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + + pascalcase@0.1.1: {} + + path-browserify@1.0.1: {} + + path-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + path-dirname@1.0.2: {} + + path-exists-cli@2.0.0: + dependencies: + meow: 10.1.5 + path-exists: 5.0.0 + + path-exists@3.0.0: {} + + path-exists@4.0.0: {} + + path-exists@5.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@2.0.1: {} + + path-key@3.1.1: {} + + path-parse@1.0.7: {} + + path-scurry@1.11.1: + dependencies: + lru-cache: 10.4.3 + minipass: 7.1.2 + + path-to-regexp@0.1.12: {} + + path-type@3.0.0: + dependencies: + pify: 3.0.0 + + path-type@4.0.0: {} + + pathe@1.1.2: {} + + pathe@2.0.3: {} + + pathval@1.1.1: {} + + pause-stream@0.0.11: + dependencies: + through: 2.3.8 + + pbkdf2@3.1.2: + dependencies: + create-hash: 1.2.0 + create-hmac: 1.1.7 + ripemd160: 2.0.2 + safe-buffer: 5.2.1 + sha.js: 2.4.11 + + peek-stream@1.1.3: + dependencies: + buffer-from: 1.1.2 + duplexify: 3.7.1 + through2: 2.0.5 + + peerjs-js-binarypack@2.1.0: {} + + peerjs@1.5.4: + dependencies: + '@msgpack/msgpack': 2.8.0 + eventemitter3: 4.0.7 + peerjs-js-binarypack: 2.1.0 + webrtc-adapter: 9.0.1 + + pend@1.2.0: {} + + performance-now@2.1.0: + optional: true + + phin@2.9.3: + optional: true + + phin@3.7.1(debug@4.4.0): + dependencies: + centra: 2.7.0(debug@4.4.0) + transitivePeerDependencies: + - debug + optional: true + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.2: {} + + pidtree@0.3.1: {} + + pify@2.3.0: + optional: true + + pify@3.0.0: {} + + pify@4.0.1: {} + + pirates@4.0.6: {} + + pixelarticons@1.8.1(patch_hash=533230072bc402f425c86abd3d0356fe087b14cab2a254d93f419b083f2d8dfa): {} + + pixelmatch@4.0.2: + dependencies: + pngjs: 3.4.0 + optional: true + + pkg-dir@3.0.0: + dependencies: + find-up: 3.0.0 + + pkg-dir@4.2.0: + dependencies: + find-up: 4.1.0 + + pkg-dir@5.0.0: + dependencies: + find-up: 5.0.0 + + pkg-types@1.3.1: + dependencies: + confbox: 0.1.8 + mlly: 1.7.4 + pathe: 2.0.3 + + pluralize@8.0.0: {} + + pngjs@3.4.0: + optional: true + + polished@4.3.1: + dependencies: + '@babel/runtime': 7.26.9 + + poly-decomp@0.3.0: {} + + portfinder@1.0.33: + dependencies: + async: 2.6.4 + debug: 3.2.7(supports-color@8.1.1) + mkdirp: 0.5.6 + transitivePeerDependencies: + - supports-color + + posix-character-classes@0.1.1: {} + + possible-typed-array-names@1.1.0: {} + + postcss@8.5.3: + dependencies: + nanoid: 3.3.9 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + potpack@1.0.2: {} + + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.74.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + + prelude-ls@1.2.1: {} + + prettier@1.19.1: + optional: true + + prettier@2.8.8: {} + + pretty-bytes@5.6.0: {} + + pretty-bytes@6.1.1: {} + + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + + pretty-hrtime@1.0.3: {} + + prismarine-auth@2.7.0: + dependencies: + '@azure/msal-node': 2.16.2 + '@xboxreplay/xboxlive-auth': 3.3.3(debug@4.4.0) + debug: 4.4.0(supports-color@8.1.1) + smart-buffer: 4.2.0 + uuid-1345: 1.0.2 + transitivePeerDependencies: + - supports-color + + prismarine-biome@1.3.0(minecraft-data@3.98.0)(prismarine-registry@1.11.0): + dependencies: + minecraft-data: 3.98.0 + prismarine-registry: 1.11.0 + + prismarine-block@https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9: + dependencies: + minecraft-data: 3.98.0 + prismarine-biome: 1.3.0(minecraft-data@3.98.0)(prismarine-registry@1.11.0) + prismarine-chat: 1.11.0 + prismarine-item: 1.17.0 + prismarine-nbt: 2.7.0 + prismarine-registry: 1.11.0 + + prismarine-chat@1.11.0: + dependencies: + mojangson: 2.0.4 + prismarine-nbt: 2.7.0 + prismarine-registry: 1.11.0 + + prismarine-chunk@https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f(minecraft-data@3.98.0): + dependencies: + prismarine-biome: 1.3.0(minecraft-data@3.98.0)(prismarine-registry@1.11.0) + prismarine-block: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-nbt: 2.7.0 + prismarine-registry: 1.11.0 + smart-buffer: 4.2.0 + uint4: 0.1.2 + vec3: 0.1.10 + xxhash-wasm: 0.4.2 + transitivePeerDependencies: + - minecraft-data + + prismarine-entity@2.5.0: + dependencies: + prismarine-chat: 1.11.0 + prismarine-item: 1.17.0 + prismarine-registry: 1.11.0 + vec3: 0.1.10 + + prismarine-item@1.17.0: + dependencies: + prismarine-nbt: 2.7.0 + prismarine-registry: 1.11.0 + + prismarine-nbt@2.7.0: + dependencies: + protodef: 1.18.0 + + prismarine-physics@https://codeload.github.com/zardoy/prismarine-physics/tar.gz/353e25b800149393f40539ec381218be44cbb03b: + dependencies: + minecraft-data: 3.98.0 + prismarine-nbt: 2.7.0 + vec3: 0.1.10 + + prismarine-provider-anvil@https://codeload.github.com/zardoy/prismarine-provider-anvil/tar.gz/1d548fac63fe977c8281f0a9a522b37e4d92d0b7(minecraft-data@3.98.0): + dependencies: + prismarine-block: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-chunk: https://codeload.github.com/zardoy/prismarine-chunk/tar.gz/c5feac83b61d95feb4d4f22c063dacfb8c192a9f(minecraft-data@3.98.0) + prismarine-nbt: 2.7.0 + prismarine-world: https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c + uint4: 0.1.2 + vec3: 0.1.10 + transitivePeerDependencies: + - minecraft-data + + prismarine-realms@1.3.2(encoding@0.1.13): + dependencies: + debug: 4.4.0(supports-color@8.1.1) + node-fetch: 2.7.0(encoding@0.1.13) + transitivePeerDependencies: + - encoding + - supports-color + + prismarine-recipe@1.3.1(prismarine-registry@1.11.0): + dependencies: + prismarine-registry: 1.11.0 + + prismarine-registry@1.11.0: + dependencies: + minecraft-data: 3.98.0 + prismarine-block: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-nbt: 2.7.0 + + prismarine-schematic@1.2.3: + dependencies: + minecraft-data: 3.98.0 + prismarine-block: https://codeload.github.com/zardoy/prismarine-block/tar.gz/853c559bff2b402863ee9a75b125a3ca320838f9 + prismarine-nbt: 2.7.0 + prismarine-world: https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c + vec3: 0.1.10 + + prismarine-windows@2.9.0: + dependencies: + prismarine-item: 1.17.0 + prismarine-registry: 1.11.0 + typed-emitter: 2.1.0 + + prismarine-world@https://codeload.github.com/zardoy/prismarine-world/tar.gz/ab2146c9933eef3247c3f64446de4ccc2c484c7c: + dependencies: + vec3: 0.1.10 + + process-nextick-args@2.0.1: {} + + process@0.11.10: {} + + process@https://codeload.github.com/PrismarineJS/node-process/tar.gz/380d0b4f4c86f1b65b216c311bf00431f314e88e: {} + + progress@2.0.3: {} + + promise-inflight@1.0.1: + optional: true + + promise-queue@2.2.5: {} + + promise-retry@2.0.1: + dependencies: + err-code: 2.0.3 + retry: 0.12.0 + optional: true + + prompts@2.4.2: + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + + prosemirror-commands@1.7.0: + dependencies: + prosemirror-model: 1.24.1 + prosemirror-state: 1.4.3 + prosemirror-transform: 1.10.3 + + prosemirror-dropcursor@1.8.1: + dependencies: + prosemirror-state: 1.4.3 + prosemirror-transform: 1.10.3 + prosemirror-view: 1.38.1 + + prosemirror-example-setup@1.2.3: + dependencies: + prosemirror-commands: 1.7.0 + prosemirror-dropcursor: 1.8.1 + prosemirror-gapcursor: 1.3.2 + prosemirror-history: 1.4.1 + prosemirror-inputrules: 1.4.0 + prosemirror-keymap: 1.2.2 + prosemirror-menu: 1.2.4 + prosemirror-schema-list: 1.5.1 + prosemirror-state: 1.4.3 + + prosemirror-gapcursor@1.3.2: + dependencies: + prosemirror-keymap: 1.2.2 + prosemirror-model: 1.24.1 + prosemirror-state: 1.4.3 + prosemirror-view: 1.38.1 + + prosemirror-history@1.4.1: + dependencies: + prosemirror-state: 1.4.3 + prosemirror-transform: 1.10.3 + prosemirror-view: 1.38.1 + rope-sequence: 1.3.4 + + prosemirror-inputrules@1.4.0: + dependencies: + prosemirror-state: 1.4.3 + prosemirror-transform: 1.10.3 + + prosemirror-keymap@1.2.2: + dependencies: + prosemirror-state: 1.4.3 + w3c-keyname: 2.2.8 + + prosemirror-markdown@1.13.1: + dependencies: + '@types/markdown-it': 14.1.2 + markdown-it: 14.1.0 + prosemirror-model: 1.24.1 + + prosemirror-menu@1.2.4: + dependencies: + crelt: 1.0.6 + prosemirror-commands: 1.7.0 + prosemirror-history: 1.4.1 + prosemirror-state: 1.4.3 + + prosemirror-model@1.24.1: + dependencies: + orderedmap: 2.1.1 + + prosemirror-schema-list@1.5.1: + dependencies: + prosemirror-model: 1.24.1 + prosemirror-state: 1.4.3 + prosemirror-transform: 1.10.3 + + prosemirror-state@1.4.3: + dependencies: + prosemirror-model: 1.24.1 + prosemirror-transform: 1.10.3 + prosemirror-view: 1.38.1 + + prosemirror-transform@1.10.3: + dependencies: + prosemirror-model: 1.24.1 + + prosemirror-view@1.38.1: + dependencies: + prosemirror-model: 1.24.1 + prosemirror-state: 1.4.3 + prosemirror-transform: 1.10.3 + + protodef-validator@1.4.0: + dependencies: + ajv: 6.12.6 + + protodef@1.18.0: + dependencies: + lodash.get: 4.4.2 + lodash.reduce: 4.6.0 + protodef-validator: 1.4.0 + readable-stream: 4.7.0 + + proxy-addr@2.0.7: + dependencies: + forwarded: 0.2.0 + ipaddr.js: 1.9.1 + + proxy-compare@2.5.1: {} + + proxy-compare@2.6.0: {} + + proxy-from-env@1.0.0: + optional: true + + proxy-from-env@1.1.0: {} + + proxy-middleware@0.15.0: {} + + psl@1.15.0: + dependencies: + punycode: 2.3.1 + optional: true + + public-encrypt@4.0.3: + dependencies: + bn.js: 4.12.1 + browserify-rsa: 4.1.1 + create-hash: 1.2.0 + parse-asn1: 5.1.7 + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + pump@2.0.1: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + pumpify@1.5.1: + dependencies: + duplexify: 3.7.1 + inherits: 2.0.4 + pump: 2.0.1 + + punycode.js@2.3.1: {} + + punycode@1.4.1: {} + + punycode@2.3.1: {} + + puppeteer-core@2.1.1: + dependencies: + '@types/mime-types': 2.1.4 + debug: 4.4.1 + extract-zip: 1.7.0 + https-proxy-agent: 4.0.0 + mime: 2.6.0 + mime-types: 2.1.35 + progress: 2.0.3 + proxy-from-env: 1.1.0 + rimraf: 2.7.1 + ws: 6.2.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + qrcode.react@3.2.0(react@18.3.1): + dependencies: + react: 18.3.1 + + qs@6.10.4: + dependencies: + side-channel: 1.1.0 + optional: true + + qs@6.13.0: + dependencies: + side-channel: 1.1.0 + + qs@6.14.0: + dependencies: + side-channel: 1.1.0 + + querystring-es3@0.2.1: {} + + querystringify@2.2.0: + optional: true + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + quickselect@2.0.0: {} + + railroad-diagrams@1.0.0: {} + + rambda@6.9.0: {} + + rambda@9.4.2: {} + + ramda@0.29.0: {} + + randexp@0.4.6: + dependencies: + discontinuous-range: 1.0.0 + ret: 0.1.15 + + random-seed@0.3.0: + dependencies: + json-stringify-safe: 5.0.1 + + randombytes@2.1.0: + dependencies: + safe-buffer: 5.2.1 + + randomfill@1.0.4: + dependencies: + randombytes: 2.1.0 + safe-buffer: 5.2.1 + + range-parser@1.2.1: {} + + range@0.0.3: {} + + raw-body@2.5.2: + dependencies: + bytes: 3.1.2 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + unpipe: 1.0.0 + + rbush@3.0.1: + dependencies: + quickselect: 2.0.0 + + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + + react-colorful@5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-docgen-typescript@2.2.2(typescript@5.5.4): + dependencies: + typescript: 5.5.4 + + react-docgen@7.1.1: + dependencies: + '@babel/core': 7.26.9 + '@babel/traverse': 7.26.9 + '@babel/types': 7.26.9 + '@types/babel__core': 7.20.5 + '@types/babel__traverse': 7.20.6 + '@types/doctrine': 0.0.9 + '@types/resolve': 1.20.6 + doctrine: 3.0.0 + resolve: 1.22.10 + strip-indent: 4.0.0 + transitivePeerDependencies: + - supports-color + + react-dom@18.3.1(react@18.3.1): + dependencies: + loose-envify: 1.4.0 + react: 18.3.1 + scheduler: 0.23.2 + + react-element-to-jsx-string@15.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@base2/pretty-print-object': 1.0.1 + is-plain-object: 5.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-is: 18.1.0 + + react-fast-compare@3.2.2: {} + + react-hook-form@7.54.2(react@18.3.1): + dependencies: + react: 18.3.1 + + react-is@16.13.1: {} + + react-is@18.1.0: {} + + react-is@18.3.1: {} + + react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@popperjs/core': 2.11.8 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-fast-compare: 3.2.2 + warning: 4.0.3 + + react-portal@4.2.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-refresh@0.14.2: {} + + react-refresh@0.17.0: {} + + react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + react-remove-scroll@2.5.5(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + + react-select@5.10.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.9 + '@emotion/cache': 11.14.0 + '@emotion/react': 11.14.0(@types/react@18.3.18)(react@18.3.1) + '@floating-ui/dom': 1.6.13 + '@types/react-transition-group': 4.4.12(@types/react@18.3.18) + memoize-one: 6.0.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + use-isomorphic-layout-effect: 1.2.0(@types/react@18.3.18)(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - supports-color + + react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + get-nonce: 1.0.1 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + react-transition-group@4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.9 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-universal-interface@0.6.2(react@18.3.1)(tslib@2.8.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + + react-use-measure@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + debounce: 1.2.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-use@17.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@types/js-cookie': 2.2.7 + '@xobotyi/scrollbar-width': 1.9.5 + copy-to-clipboard: 3.3.3 + fast-deep-equal: 3.1.3 + fast-shallow-equal: 1.0.0 + js-cookie: 2.2.1 + nano-css: 5.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-universal-interface: 0.6.2(react@18.3.1)(tslib@2.8.1) + resize-observer-polyfill: 1.5.1 + screenfull: 5.2.0 + set-harmonic-interval: 1.0.1 + throttle-debounce: 3.0.1 + ts-easing: 0.2.0 + tslib: 2.8.1 + + react-zoom-pan-pinch@3.4.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react@18.3.1: + dependencies: + loose-envify: 1.4.0 + + read-pkg-up@7.0.1: + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + + read-pkg-up@8.0.0: + dependencies: + find-up: 5.0.0 + read-pkg: 6.0.0 + type-fest: 1.4.0 + + read-pkg@3.0.0: + dependencies: + load-json-file: 4.0.0 + normalize-package-data: 2.5.0 + path-type: 3.0.0 + + read-pkg@5.2.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + + read-pkg@6.0.0: + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 3.0.3 + parse-json: 5.2.0 + type-fest: 1.4.0 + + readable-stream@1.0.34: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 0.0.1 + string_decoder: 0.10.31 + optional: true + + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + + readable-stream@3.6.2: + dependencies: + inherits: 2.0.4 + string_decoder: 1.3.0 + util-deprecate: 1.0.2 + + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdirp@2.2.1: + dependencies: + graceful-fs: 4.2.11 + micromatch: 3.1.10 + readable-stream: 2.3.8 + transitivePeerDependencies: + - supports-color + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + readline@1.3.0: {} + + recast@0.23.11: + dependencies: + ast-types: 0.16.1 + esprima: 4.0.1 + source-map: 0.6.1 + tiny-invariant: 1.3.3 + tslib: 2.8.1 + + redent@4.0.0: + dependencies: + indent-string: 5.0.0 + strip-indent: 4.0.0 + + reduce-configs@1.1.0: {} + + reflect.getprototypeof@1.0.10: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 + + regenerate-unicode-properties@10.2.0: + dependencies: + regenerate: 1.4.2 + + regenerate@1.4.2: {} + + regenerator-runtime@0.13.11: + optional: true + + regenerator-runtime@0.14.1: {} + + regenerator-transform@0.15.2: + dependencies: + '@babel/runtime': 7.26.9 + + regex-not@1.0.2: + dependencies: + extend-shallow: 3.0.2 + safe-regex: 1.1.0 + + regexp-tree@0.1.27: {} + + regexp.prototype.flags@1.5.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 + set-function-name: 2.0.2 + + regexpp@3.2.0: {} + + regexpu-core@6.2.0: + dependencies: + regenerate: 1.4.2 + regenerate-unicode-properties: 10.2.0 + regjsgen: 0.8.0 + regjsparser: 0.12.0 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.2.0 + + regjsgen@0.8.0: {} + + regjsparser@0.10.0: + dependencies: + jsesc: 0.5.0 + + regjsparser@0.12.0: + dependencies: + jsesc: 3.0.2 + + remark-external-links@8.0.0: + dependencies: + extend: 3.0.2 + is-absolute-url: 3.0.3 + mdast-util-definitions: 4.0.0 + space-separated-tokens: 1.1.5 + unist-util-visit: 2.0.3 + + remark-parse@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.2 + micromark-util-types: 2.0.2 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remark-slug@6.1.0: + dependencies: + github-slugger: 1.5.0 + mdast-util-to-string: 1.1.0 + unist-util-visit: 2.0.3 + + remark-stringify@11.0.0: + dependencies: + '@types/mdast': 4.0.4 + mdast-util-to-markdown: 2.1.2 + unified: 11.0.5 + + remark@15.0.1: + dependencies: + '@types/mdast': 4.0.4 + remark-parse: 11.0.0 + remark-stringify: 11.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + + remove-trailing-separator@1.1.0: {} + + repeat-element@1.1.4: {} + + repeat-string@1.6.1: {} + + request-progress@3.0.0: + dependencies: + throttleit: 1.0.1 + optional: true + + require-directory@2.1.1: {} + + require-from-string@2.0.2: {} + + requires-port@1.0.0: {} + + resize-observer-polyfill@1.5.1: {} + + resolve-from@4.0.0: {} + + resolve-from@5.0.0: {} + + resolve-pkg-maps@1.0.0: {} + + resolve-url@0.2.1: {} + + resolve@1.22.10: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + restore-cursor@3.1.0: + dependencies: + onetime: 5.1.2 + signal-exit: 3.0.7 + + ret@0.1.15: {} + + retry@0.12.0: + optional: true + + reusify@1.1.0: {} + + rfdc@1.4.1: + optional: true + + rimraf@2.6.3: + dependencies: + glob: 7.2.3 + + rimraf@2.7.1: + dependencies: + glob: 7.2.3 + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rimraf@5.0.10: + dependencies: + glob: 10.4.5 + + ripemd160@2.0.2: + dependencies: + hash-base: 3.0.5 + inherits: 2.0.4 + + rollup@2.79.2: + optionalDependencies: + fsevents: 2.3.3 + + rollup@3.29.5: + optionalDependencies: + fsevents: 2.3.3 + + rollup@4.34.9: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.34.9 + '@rollup/rollup-android-arm64': 4.34.9 + '@rollup/rollup-darwin-arm64': 4.34.9 + '@rollup/rollup-darwin-x64': 4.34.9 + '@rollup/rollup-freebsd-arm64': 4.34.9 + '@rollup/rollup-freebsd-x64': 4.34.9 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.9 + '@rollup/rollup-linux-arm-musleabihf': 4.34.9 + '@rollup/rollup-linux-arm64-gnu': 4.34.9 + '@rollup/rollup-linux-arm64-musl': 4.34.9 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.9 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.9 + '@rollup/rollup-linux-riscv64-gnu': 4.34.9 + '@rollup/rollup-linux-s390x-gnu': 4.34.9 + '@rollup/rollup-linux-x64-gnu': 4.34.9 + '@rollup/rollup-linux-x64-musl': 4.34.9 + '@rollup/rollup-win32-arm64-msvc': 4.34.9 + '@rollup/rollup-win32-ia32-msvc': 4.34.9 + '@rollup/rollup-win32-x64-msvc': 4.34.9 + fsevents: 2.3.3 + + rope-sequence@1.3.4: {} + + rtl-css-js@1.16.1: + dependencies: + '@babel/runtime': 7.26.9 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + rxjs@7.8.2: + dependencies: + tslib: 2.8.1 + + safe-array-concat@1.1.3: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + get-intrinsic: 1.3.0 + has-symbols: 1.1.0 + isarray: 2.0.5 + + safe-buffer@5.1.2: {} + + safe-buffer@5.2.1: {} + + safe-push-apply@1.0.0: + dependencies: + es-errors: 1.3.0 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-regex: 1.2.1 + + safe-regex@1.1.0: + dependencies: + ret: 0.1.15 + + safer-buffer@2.1.2: {} + + sanitize-filename@1.6.3: + dependencies: + truncate-utf8-bytes: 1.0.2 + + sat@0.9.0: {} + + sax@1.4.1: + optional: true + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 + + screenfull@5.2.0: {} + + sdp@3.2.0: {} + + secure-compare@3.0.1: {} + + semver@5.7.2: {} + + semver@6.3.1: {} + + semver@7.7.1: {} + + send@0.19.0: + dependencies: + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + encodeurl: 1.0.2 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime: 1.6.0 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + send@1.2.0: + dependencies: + debug: 4.4.1 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 2.0.0 + http-errors: 2.0.0 + mime-types: 3.0.1 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.2 + transitivePeerDependencies: + - supports-color + + sentence-case@3.0.4: + dependencies: + no-case: 3.0.4 + tslib: 2.8.1 + upper-case-first: 2.0.2 + + serialize-javascript@6.0.2: + dependencies: + randombytes: 2.1.0 + + serve-index@1.9.1: + dependencies: + accepts: 1.3.8 + batch: 0.6.1 + debug: 2.6.9 + escape-html: 1.0.3 + http-errors: 1.6.3 + mime-types: 2.1.35 + parseurl: 1.3.3 + transitivePeerDependencies: + - supports-color + + serve-static@1.16.2: + dependencies: + encodeurl: 2.0.0 + escape-html: 1.0.3 + parseurl: 1.3.3 + send: 0.19.0 + transitivePeerDependencies: + - supports-color + + set-blocking@2.0.0: + optional: true + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 + + set-harmonic-interval@1.0.1: {} + + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + + set-value@2.0.1: + dependencies: + extend-shallow: 2.0.1 + is-extendable: 0.1.1 + is-plain-object: 2.0.4 + split-string: 3.1.0 + + setimmediate@1.0.5: {} + + setprototypeof@1.1.0: {} + + setprototypeof@1.2.0: {} + + sha.js@2.4.11: + dependencies: + inherits: 2.0.4 + safe-buffer: 5.2.1 + + shallow-clone@3.0.1: + dependencies: + kind-of: 6.0.3 + + sharp@0.30.7: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + node-addon-api: 5.1.0 + prebuild-install: 7.1.3 + semver: 7.7.1 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + + sharp@0.33.5: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + semver: 7.7.1 + optionalDependencies: + '@img/sharp-darwin-arm64': 0.33.5 + '@img/sharp-darwin-x64': 0.33.5 + '@img/sharp-libvips-darwin-arm64': 1.0.4 + '@img/sharp-libvips-darwin-x64': 1.0.4 + '@img/sharp-libvips-linux-arm': 1.0.5 + '@img/sharp-libvips-linux-arm64': 1.0.4 + '@img/sharp-libvips-linux-s390x': 1.0.4 + '@img/sharp-libvips-linux-x64': 1.0.4 + '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 + '@img/sharp-libvips-linuxmusl-x64': 1.0.4 + '@img/sharp-linux-arm': 0.33.5 + '@img/sharp-linux-arm64': 0.33.5 + '@img/sharp-linux-s390x': 0.33.5 + '@img/sharp-linux-x64': 0.33.5 + '@img/sharp-linuxmusl-arm64': 0.33.5 + '@img/sharp-linuxmusl-x64': 0.33.5 + '@img/sharp-wasm32': 0.33.5 + '@img/sharp-win32-ia32': 0.33.5 + '@img/sharp-win32-x64': 0.33.5 + optional: true + + shebang-command@1.2.0: + dependencies: + shebang-regex: 1.0.0 + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@1.0.0: {} + + shebang-regex@3.0.0: {} + + shell-quote@1.8.2: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + + siginfo@2.0.0: {} + + signal-exit@3.0.7: {} + + signal-exit@4.1.0: {} + + simple-concat@1.0.1: {} + + simple-get@3.1.1: + dependencies: + decompress-response: 4.2.1 + once: 1.4.0 + simple-concat: 1.0.1 + optional: true + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + + sisteransi@1.0.5: {} + + skinview-utils@0.7.1: {} + + skinview3d@3.1.0: + dependencies: + '@types/three': 0.156.0 + skinview-utils: 0.7.1 + three: 0.154.0 + + slash@3.0.0: {} + + slice-ansi@3.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + optional: true + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + optional: true + + smart-buffer@4.2.0: {} + + smob@1.5.0: {} + + snake-case@3.0.4: + dependencies: + dot-case: 3.0.4 + tslib: 2.8.1 + + snapdragon-node@2.1.1: + dependencies: + define-property: 1.0.0 + isobject: 3.0.1 + snapdragon-util: 3.0.1 + + snapdragon-util@3.0.1: + dependencies: + kind-of: 3.2.2 + + snapdragon@0.8.2: + dependencies: + base: 0.11.2 + debug: 2.6.9 + define-property: 0.2.5 + extend-shallow: 2.0.1 + map-cache: 0.2.2 + source-map: 0.5.7 + source-map-resolve: 0.5.3 + use: 3.1.1 + transitivePeerDependencies: + - supports-color + + socket.io-adapter@1.1.2: + optional: true + + socket.io-adapter@2.5.5: + dependencies: + debug: 4.3.7 + ws: 8.17.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-client@2.5.0: + dependencies: + backo2: 1.0.2 + component-bind: 1.0.0 + component-emitter: 1.3.1 + debug: 3.1.0 + engine.io-client: 3.5.4 + has-binary2: 1.0.3 + indexof: 0.0.1 + parseqs: 0.0.6 + parseuri: 0.0.6 + socket.io-parser: 3.3.4 + to-array: 0.1.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + + socket.io-client@4.8.1: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-client: 6.6.3 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@3.3.4: + dependencies: + component-emitter: 1.3.1 + debug: 3.1.0 + isarray: 2.0.1 + transitivePeerDependencies: + - supports-color + optional: true + + socket.io-parser@3.4.3: + dependencies: + component-emitter: 1.2.1 + debug: 4.1.1 + isarray: 2.0.1 + transitivePeerDependencies: + - supports-color + optional: true + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + socket.io@2.5.1: + dependencies: + debug: 4.1.1 + engine.io: 3.6.2 + has-binary2: 1.0.3 + socket.io-adapter: 1.1.2 + socket.io-client: 2.5.0 + socket.io-parser: 3.4.3 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + optional: true + + socket.io@4.8.1: + dependencies: + accepts: 1.3.8 + base64id: 2.0.0 + cors: 2.8.5 + debug: 4.3.7 + engine.io: 6.6.4 + socket.io-adapter: 2.5.5 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socks-proxy-agent@7.0.0: + dependencies: + agent-base: 6.0.2 + debug: 4.4.1 + socks: 2.8.4 + transitivePeerDependencies: + - supports-color + optional: true + + socks@2.8.4: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + optional: true + + source-map-js@1.2.1: {} + + source-map-resolve@0.5.3: + dependencies: + atob: 2.1.2 + decode-uri-component: 0.2.2 + resolve-url: 0.2.1 + source-map-url: 0.4.1 + urix: 0.1.0 + + source-map-support@0.5.21: + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + + source-map-url@0.4.1: {} + + source-map@0.5.6: {} + + source-map@0.5.7: {} + + source-map@0.6.1: {} + + source-map@0.8.0-beta.0: + dependencies: + whatwg-url: 7.1.0 + + sourcemap-codec@1.4.8: {} + + space-separated-tokens@1.1.5: {} + + spdx-correct@3.2.0: + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.21 + + spdx-exceptions@2.5.0: {} + + spdx-expression-parse@3.0.1: + dependencies: + spdx-exceptions: 2.5.0 + spdx-license-ids: 3.0.21 + + spdx-license-ids@3.0.21: {} + + split-string@3.1.0: + dependencies: + extend-shallow: 3.0.2 + + split@0.3.3: + dependencies: + through: 2.3.8 + + sprintf-js@1.0.3: {} + + sprintf-js@1.1.3: + optional: true + + sshpk@1.18.0: + dependencies: + asn1: 0.2.6 + assert-plus: 1.0.0 + bcrypt-pbkdf: 1.0.2 + dashdash: 1.14.1 + ecc-jsbn: 0.1.2 + getpass: 0.1.7 + jsbn: 0.1.1 + safer-buffer: 2.1.2 + tweetnacl: 0.14.5 + optional: true + + ssri@9.0.1: + dependencies: + minipass: 3.3.6 + optional: true + + stack-generator@2.0.10: + dependencies: + stackframe: 1.3.4 + + stackback@0.0.2: {} + + stackframe@1.3.4: {} + + stacktrace-gps@3.1.2: + dependencies: + source-map: 0.5.6 + stackframe: 1.3.4 + + stacktrace-js@2.0.2: + dependencies: + error-stack-parser: 2.1.4 + stack-generator: 2.0.10 + stacktrace-gps: 3.1.2 + + state-local@1.0.7: {} + + static-extend@0.1.2: + dependencies: + define-property: 0.2.5 + object-copy: 0.1.0 + + stats-gl@1.0.7: {} + + stats.js@0.17.0: {} + + statuses@1.5.0: {} + + statuses@2.0.1: {} + + statuses@2.0.2: {} + + std-env@3.8.1: {} + + stop-iteration-iterator@1.1.0: + dependencies: + es-errors: 1.3.0 + internal-slot: 1.1.0 + + store2@2.14.4: {} + + storybook@7.6.20(encoding@0.1.13): + dependencies: + '@storybook/cli': 7.6.20(encoding@0.1.13) + transitivePeerDependencies: + - bufferutil + - encoding + - supports-color + - utf-8-validate + + stream-browserify@3.0.0: + dependencies: + inherits: 2.0.4 + readable-stream: 3.6.2 + + stream-combiner@0.0.4: + dependencies: + duplexer: 0.1.2 + + stream-http@3.2.0: + dependencies: + builtin-status-codes: 3.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + xtend: 4.0.2 + + stream-shift@1.0.3: {} + + strict-event-emitter-types@2.0.0: {} + + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + + string-width@5.1.2: + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + + string.prototype.matchall@4.0.12: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + get-intrinsic: 1.3.0 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 + set-function-name: 2.0.2 + side-channel: 1.1.0 + + string.prototype.padend@3.1.6: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.24.0 + + string.prototype.trim@1.2.10: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-data-property: 1.1.4 + define-properties: 1.2.1 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 + + string.prototype.trimend@1.0.9: + dependencies: + call-bind: 1.0.8 + call-bound: 1.0.4 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.1.1 + + string_decoder@0.10.31: + optional: true + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 + + string_decoder@1.3.0: + dependencies: + safe-buffer: 5.2.1 + + stringify-object@3.3.0: + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-ansi@7.1.0: + dependencies: + ansi-regex: 6.1.0 + + strip-bom@3.0.0: {} + + strip-comments@2.0.1: {} + + strip-final-newline@2.0.0: {} + + strip-indent@3.0.0: + dependencies: + min-indent: 1.0.1 + + strip-indent@4.0.0: + dependencies: + min-indent: 1.0.1 + + strip-json-comments@2.0.1: {} + + strip-json-comments@3.1.1: {} + + strip-literal@1.3.0: + dependencies: + acorn: 8.14.1 + + stylis@4.2.0: {} + + stylis@4.3.6: {} + + supports-color@5.5.0: + dependencies: + has-flag: 3.0.0 + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + synchronous-promise@2.0.17: {} + + systeminformation@5.25.11: + optional: true + + tabbable@6.2.0: {} + + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar@6.2.1: + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 5.0.0 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + + telejson@7.2.0: + dependencies: + memoizerific: 1.11.3 + + temp-dir@2.0.0: {} + + temp@0.8.4: + dependencies: + rimraf: 2.6.3 + + tempy@0.6.0: + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + + tempy@1.0.1: + dependencies: + del: 6.1.1 + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + + terser@5.39.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.1 + commander: 2.20.3 + source-map-support: 0.5.21 + + test-exclude@6.0.0: + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.3 + minimatch: 3.1.2 + + text-table@0.2.0: {} + + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + + thingies@1.21.0(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + + three-stdlib@2.35.14(three@0.154.0): + dependencies: + '@types/draco3d': 1.4.10 + '@types/offscreencanvas': 2019.7.3 + '@types/webxr': 0.5.21 + draco3d: 1.5.7 + fflate: 0.6.10 + potpack: 1.0.2 + three: 0.154.0 + + three.meshline@1.4.0: {} + + three@0.154.0: {} + + throttle-debounce@3.0.1: {} + + throttleit@1.0.1: + optional: true + + through2@0.6.5: + dependencies: + readable-stream: 1.0.34 + xtend: 4.0.2 + optional: true + + through2@2.0.5: + dependencies: + readable-stream: 2.3.8 + xtend: 4.0.2 + + through@2.3.8: {} + + timers-browserify@2.0.12: + dependencies: + setimmediate: 1.0.5 + + timm@1.7.1: + optional: true + + tiny-invariant@1.3.3: {} + + tinybench@2.9.0: {} + + tinycolor2@1.6.0: + optional: true + + tinyexec@0.3.2: {} + + tinypool@0.7.0: {} + + tinyspy@2.2.1: {} + + title-case@3.0.3: + dependencies: + tslib: 2.8.1 + + tmp@0.2.3: + optional: true + + tmpl@1.0.5: {} + + to-array@0.1.4: + optional: true + + to-object-path@0.3.0: + dependencies: + kind-of: 3.2.2 + + to-regex-range@2.1.1: + dependencies: + is-number: 3.0.0 + repeat-string: 1.6.1 + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + to-regex@3.0.2: + dependencies: + define-property: 2.0.2 + extend-shallow: 3.0.2 + regex-not: 1.0.2 + safe-regex: 1.1.0 + + tocbot@4.35.0: {} + + toggle-selection@1.0.6: {} + + toidentifier@1.0.1: {} + + tough-cookie@4.1.4: + dependencies: + psl: 1.15.0 + punycode: 2.3.1 + universalify: 0.2.0 + url-parse: 1.5.10 + optional: true + + tr46@0.0.3: {} + + tr46@1.0.1: + dependencies: + punycode: 2.3.1 + + tree-dump@1.0.2(tslib@2.8.1): + dependencies: + tslib: 2.8.1 + + trim-newlines@4.1.1: {} + + trough@2.2.0: {} + + truncate-utf8-bytes@1.0.2: + dependencies: + utf8-byte-length: 1.0.5 + + ts-api-utils@1.4.3(typescript@5.5.4): + dependencies: + typescript: 5.5.4 + + ts-api-utils@2.0.1(typescript@5.5.4): + dependencies: + typescript: 5.5.4 + + ts-checker-rspack-plugin@1.1.1(@rspack/core@1.3.3(@swc/helpers@0.5.15))(typescript@5.5.4): + dependencies: + '@babel/code-frame': 7.26.2 + '@rspack/lite-tapable': 1.0.1 + chokidar: 3.6.0 + memfs: 4.17.0 + minimatch: 9.0.5 + picocolors: 1.1.1 + typescript: 5.5.4 + optionalDependencies: + '@rspack/core': 1.3.3(@swc/helpers@0.5.15) + + ts-dedent@2.2.0: {} + + ts-easing@0.2.0: {} + + tsconfig-paths@3.15.0: + dependencies: + '@types/json5': 0.0.29 + json5: 1.0.2 + minimist: 1.2.8 + strip-bom: 3.0.0 + + tslib@1.14.1: {} + + tslib@2.8.1: {} + + tsx@4.19.3: + dependencies: + esbuild: 0.25.0 + get-tsconfig: 4.10.0 + optionalDependencies: + fsevents: 2.3.3 + + tty-browserify@0.0.1: {} + + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + + tweetnacl@0.14.5: + optional: true + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-detect@4.1.0: {} + + type-fest@0.16.0: {} + + type-fest@0.20.2: {} + + type-fest@0.21.3: + optional: true + + type-fest@0.6.0: {} + + type-fest@0.8.1: {} + + type-fest@1.4.0: {} + + type-fest@2.19.0: {} + + type-is@1.6.18: + dependencies: + media-typer: 0.3.0 + mime-types: 2.1.35 + + typed-array-buffer@1.0.3: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + is-typed-array: 1.1.15 + + typed-array-byte-length@1.0.3: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + + typed-array-byte-offset@1.0.4: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 + + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.5 + gopd: 1.2.0 + is-typed-array: 1.1.15 + possible-typed-array-names: 1.1.0 + reflect.getprototypeof: 1.0.10 + + typed-emitter@1.4.0: {} + + typed-emitter@2.1.0: + optionalDependencies: + rxjs: 7.8.2 + + typedarray@0.0.6: {} + + typescript@5.5.4: {} + + ua-parser-js@1.0.40: {} + + uc.micro@2.1.0: {} + + ufo@1.5.4: {} + + uglify-js@3.19.3: + optional: true + + uint4@0.1.2: {} + + unbox-primitive@1.1.0: + dependencies: + call-bound: 1.0.4 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 + + undici-types@5.26.5: {} + + undici-types@6.20.0: {} + + undici@6.0.1: + dependencies: + '@fastify/busboy': 2.1.1 + + unicode-canonical-property-names-ecmascript@2.0.1: {} + + unicode-match-property-ecmascript@2.0.0: + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.1 + unicode-property-aliases-ecmascript: 2.1.0 + + unicode-match-property-value-ecmascript@2.2.0: {} + + unicode-property-aliases-ecmascript@2.1.0: {} + + unidiff@1.0.2: + dependencies: + diff: 2.2.3 + optional: true + + unified@11.0.5: + dependencies: + '@types/unist': 3.0.3 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.3 + + union-value@1.0.1: + dependencies: + arr-union: 3.1.0 + get-value: 2.0.6 + is-extendable: 0.1.1 + set-value: 2.0.1 + + union@0.5.0: + dependencies: + qs: 6.14.0 + + unique-filename@2.0.1: + dependencies: + unique-slug: 3.0.0 + optional: true + + unique-slug@3.0.0: + dependencies: + imurmurhash: 0.1.4 + optional: true + + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + + unist-util-is@4.1.0: {} + + unist-util-is@6.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-stringify-position@4.0.0: + dependencies: + '@types/unist': 3.0.3 + + unist-util-visit-parents@3.1.1: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 4.1.0 + + unist-util-visit-parents@6.0.1: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + + unist-util-visit@2.0.3: + dependencies: + '@types/unist': 2.0.11 + unist-util-is: 4.1.0 + unist-util-visit-parents: 3.1.1 + + unist-util-visit@5.0.0: + dependencies: + '@types/unist': 3.0.3 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + + universalify@0.1.2: + optional: true + + universalify@0.2.0: + optional: true + + universalify@2.0.1: {} + + unix-crypt-td-js@1.1.4: {} + + unpipe@1.0.0: {} + + unplugin@1.16.1: + dependencies: + acorn: 8.14.1 + webpack-virtual-modules: 0.6.2 + + unset-value@1.0.0: + dependencies: + has-value: 0.3.1 + isobject: 3.0.1 + + untildify@4.0.0: {} + + upath@1.2.0: {} + + update-browserslist-db@1.1.3(browserslist@4.24.4): + dependencies: + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 + + upper-case-first@2.0.2: + dependencies: + tslib: 2.8.1 + + upper-case@2.0.2: + dependencies: + tslib: 2.8.1 + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + urix@0.1.0: {} + + url-join@4.0.1: {} + + url-parse@1.5.10: + dependencies: + querystringify: 2.2.0 + requires-port: 1.0.0 + optional: true + + url@0.11.4: + dependencies: + punycode: 1.4.1 + qs: 6.14.0 + + use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + use-deep-compare@1.3.0(react@18.3.1): + dependencies: + dequal: 2.0.3 + react: 18.3.1 + + use-isomorphic-layout-effect@1.2.0(@types/react@18.3.18)(react@18.3.1): + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.18 + + use-resize-observer@9.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@juggle/resize-observer': 3.4.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): + dependencies: + detect-node-es: 1.1.0 + react: 18.3.1 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 18.3.18 + + use-sync-external-store@1.2.0(react@18.3.1): + dependencies: + react: 18.3.1 + + use-typed-event-listener@4.0.2(react@18.3.1)(typescript@5.5.4): + dependencies: + '@babel/runtime': 7.26.9 + react: 18.3.1 + use-deep-compare: 1.3.0(react@18.3.1) + optionalDependencies: + typescript: 5.5.4 + + use@3.1.1: {} + + utf8-byte-length@1.0.5: {} + + utif@2.0.1: + dependencies: + pako: 1.0.11 + optional: true + + util-deprecate@1.0.2: {} + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.2.0 + is-generator-function: 1.1.0 + is-typed-array: 1.1.15 + which-typed-array: 1.1.18 + + utils-merge@1.0.1: {} + + uuid-1345@1.0.2: + dependencies: + macaddress: 0.5.3 + + uuid@3.4.0: {} + + uuid@8.3.2: {} + + uuid@9.0.1: {} + + validate-npm-package-license@3.0.4: + dependencies: + spdx-correct: 3.2.0 + spdx-expression-parse: 3.0.1 + + valtio@1.11.2(@types/react@18.3.18)(react@18.3.1): + dependencies: + proxy-compare: 2.5.1 + use-sync-external-store: 1.2.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + react: 18.3.1 + + valtio@1.13.2(@types/react@18.3.18)(react@18.3.1): + dependencies: + derive-valtio: 0.1.0(valtio@1.13.2(@types/react@18.3.18)(react@18.3.1)) + proxy-compare: 2.6.0 + use-sync-external-store: 1.2.0(react@18.3.1) + optionalDependencies: + '@types/react': 18.3.18 + react: 18.3.1 + + vary@1.1.2: {} + + vec3@0.1.10: {} + + verror@1.10.0: + dependencies: + assert-plus: 1.0.0 + core-util-is: 1.0.2 + extsprintf: 1.3.0 + optional: true + + vfile-message@4.0.2: + dependencies: + '@types/unist': 3.0.3 + unist-util-stringify-position: 4.0.0 + + vfile@6.0.3: + dependencies: + '@types/unist': 3.0.3 + vfile-message: 4.0.2 + + vite-node@0.34.6(@types/node@22.13.9)(terser@5.39.0): + dependencies: + cac: 6.7.14 + debug: 4.4.0(supports-color@8.1.1) + mlly: 1.7.4 + pathe: 1.1.2 + picocolors: 1.1.1 + vite: 4.5.9(@types/node@22.13.9)(terser@5.39.0) + transitivePeerDependencies: + - '@types/node' + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vite@4.5.9(@types/node@22.13.9)(terser@5.39.0): + dependencies: + esbuild: 0.18.20 + postcss: 8.5.3 + rollup: 3.29.5 + optionalDependencies: + '@types/node': 22.13.9 + fsevents: 2.3.3 + terser: 5.39.0 + + vite@6.2.1(@types/node@22.13.9)(jiti@2.4.2)(terser@5.39.0)(tsx@4.19.3)(yaml@2.7.0): + dependencies: + esbuild: 0.25.0 + postcss: 8.5.3 + rollup: 4.34.9 + optionalDependencies: + '@types/node': 22.13.9 + fsevents: 2.3.3 + jiti: 2.4.2 + terser: 5.39.0 + tsx: 4.19.3 + yaml: 2.7.0 + + vitest@0.34.6(terser@5.39.0): + dependencies: + '@types/chai': 4.3.20 + '@types/chai-subset': 1.3.6(@types/chai@4.3.20) + '@types/node': 22.13.9 + '@vitest/expect': 0.34.6 + '@vitest/runner': 0.34.6 + '@vitest/snapshot': 0.34.6 + '@vitest/spy': 0.34.6 + '@vitest/utils': 0.34.6 + acorn: 8.14.1 + acorn-walk: 8.3.4 + cac: 6.7.14 + chai: 4.5.0 + debug: 4.4.0(supports-color@8.1.1) + local-pkg: 0.4.3 + magic-string: 0.30.17 + pathe: 1.1.2 + picocolors: 1.1.1 + std-env: 3.8.1 + strip-literal: 1.3.0 + tinybench: 2.9.0 + tinypool: 0.7.0 + vite: 4.5.9(@types/node@22.13.9)(terser@5.39.0) + vite-node: 0.34.6(@types/node@22.13.9)(terser@5.39.0) + why-is-node-running: 2.3.0 + transitivePeerDependencies: + - less + - lightningcss + - sass + - stylus + - sugarss + - supports-color + - terser + + vm-browserify@1.1.2: {} + + w3c-keyname@2.2.8: {} + + wait-on@7.2.0(debug@4.4.0): + dependencies: + axios: 1.8.2(debug@4.4.0) + joi: 17.13.3 + lodash: 4.17.21 + minimist: 1.2.8 + rxjs: 7.8.2 + transitivePeerDependencies: + - debug + + walker@1.0.8: + dependencies: + makeerror: 1.0.12 + + warning@4.0.3: + dependencies: + loose-envify: 1.4.0 + + watchpack@2.4.2: + dependencies: + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + + wcwidth@1.0.1: + dependencies: + defaults: 1.0.4 + + webidl-conversions@3.0.1: {} + + webidl-conversions@4.0.2: {} + + webpack-virtual-modules@0.6.2: {} + + webrtc-adapter@9.0.1: + dependencies: + sdp: 3.2.0 + + websocket-driver@0.7.4: + dependencies: + http-parser-js: 0.5.9 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + + websocket-extensions@0.1.4: {} + + whatwg-encoding@2.0.0: + dependencies: + iconv-lite: 0.6.3 + + whatwg-fetch@3.6.20: + optional: true + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + whatwg-url@7.1.0: + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + + which-boxed-primitive@1.1.1: + dependencies: + is-bigint: 1.1.0 + is-boolean-object: 1.2.2 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 + + which-builtin-type@1.2.1: + dependencies: + call-bound: 1.0.4 + function.prototype.name: 1.1.8 + has-tostringtag: 1.0.2 + is-async-function: 2.1.1 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.1 + isarray: 2.0.5 + which-boxed-primitive: 1.1.1 + which-collection: 1.0.2 + which-typed-array: 1.1.18 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.4 + + which-typed-array@1.1.18: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which-typed-array@1.1.19: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.4 + for-each: 0.3.5 + get-proto: 1.0.1 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + + which@1.3.1: + dependencies: + isexe: 2.0.0 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + why-is-node-running@2.3.0: + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + + wide-align@1.1.5: + dependencies: + string-width: 4.2.3 + optional: true + + word-wrap@1.2.5: {} + + wordwrap@1.0.0: {} + + workbox-background-sync@7.3.0: + dependencies: + idb: 7.1.1 + workbox-core: 7.3.0 + + workbox-broadcast-update@7.3.0: + dependencies: + workbox-core: 7.3.0 + + workbox-build@7.3.0(@types/babel__core@7.20.5): + dependencies: + '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) + '@babel/core': 7.26.9 + '@babel/preset-env': 7.26.9(@babel/core@7.26.9) + '@babel/runtime': 7.26.9 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.9)(@types/babel__core@7.20.5)(rollup@2.79.2) + '@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.2) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.2) + '@rollup/plugin-terser': 0.4.4(rollup@2.79.2) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.17.1 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: 2.79.2 + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 7.3.0 + workbox-broadcast-update: 7.3.0 + workbox-cacheable-response: 7.3.0 + workbox-core: 7.3.0 + workbox-expiration: 7.3.0 + workbox-google-analytics: 7.3.0 + workbox-navigation-preload: 7.3.0 + workbox-precaching: 7.3.0 + workbox-range-requests: 7.3.0 + workbox-recipes: 7.3.0 + workbox-routing: 7.3.0 + workbox-strategies: 7.3.0 + workbox-streams: 7.3.0 + workbox-sw: 7.3.0 + workbox-window: 7.3.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + + workbox-cacheable-response@7.3.0: + dependencies: + workbox-core: 7.3.0 + + workbox-core@7.3.0: {} + + workbox-expiration@7.3.0: + dependencies: + idb: 7.1.1 + workbox-core: 7.3.0 + + workbox-google-analytics@7.3.0: + dependencies: + workbox-background-sync: 7.3.0 + workbox-core: 7.3.0 + workbox-routing: 7.3.0 + workbox-strategies: 7.3.0 + + workbox-navigation-preload@7.3.0: + dependencies: + workbox-core: 7.3.0 + + workbox-precaching@7.3.0: + dependencies: + workbox-core: 7.3.0 + workbox-routing: 7.3.0 + workbox-strategies: 7.3.0 + + workbox-range-requests@7.3.0: + dependencies: + workbox-core: 7.3.0 + + workbox-recipes@7.3.0: + dependencies: + workbox-cacheable-response: 7.3.0 + workbox-core: 7.3.0 + workbox-expiration: 7.3.0 + workbox-precaching: 7.3.0 + workbox-routing: 7.3.0 + workbox-strategies: 7.3.0 + + workbox-routing@7.3.0: + dependencies: + workbox-core: 7.3.0 + + workbox-strategies@7.3.0: + dependencies: + workbox-core: 7.3.0 + + workbox-streams@7.3.0: + dependencies: + workbox-core: 7.3.0 + workbox-routing: 7.3.0 + + workbox-sw@7.3.0: {} + + workbox-window@7.3.0: + dependencies: + '@types/trusted-types': 2.0.7 + workbox-core: 7.3.0 + + wrap-ansi@6.2.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + optional: true + + wrap-ansi@7.0.0: + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + + wrap-ansi@8.1.0: + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + + wrappy@1.0.2: {} + + write-file-atomic@2.4.3: + dependencies: + graceful-fs: 4.2.11 + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + write-file-atomic@4.0.2: + dependencies: + imurmurhash: 0.1.4 + signal-exit: 3.0.7 + + ws@5.2.4: + dependencies: + async-limiter: 1.0.1 + + ws@6.2.3: + dependencies: + async-limiter: 1.0.1 + + ws@7.5.10: + optional: true + + ws@8.17.1: {} + + ws@8.18.1: {} + + xhr@2.6.0: + dependencies: + global: 4.4.0 + is-function: 1.0.2 + parse-headers: 2.0.5 + xtend: 4.0.2 + optional: true + + xml-parse-from-string@1.0.1: + optional: true + + xml2js@0.5.0: + dependencies: + sax: 1.4.1 + xmlbuilder: 11.0.1 + optional: true + + xmlbuilder@11.0.1: + optional: true + + xmlhttprequest-ssl@1.6.3: + optional: true + + xmlhttprequest-ssl@2.1.2: {} + + xtend@4.0.2: {} + + xxhash-wasm@0.4.2: {} + + y18n@5.0.8: {} + + yallist@3.1.1: {} + + yallist@4.0.0: {} + + yaml@1.10.2: {} + + yaml@2.7.0: {} + + yargs-parser@20.2.9: {} + + yargs-parser@21.1.1: {} + + yargs@17.7.2: + dependencies: + cliui: 8.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 21.1.1 + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + + yazl@2.5.1: + dependencies: + buffer-crc32: 0.2.13 + + yeast@0.1.2: + optional: true + + yggdrasil@1.7.0(encoding@0.1.13): + dependencies: + node-fetch: 2.7.0(encoding@0.1.13) + uuid: 8.3.2 + transitivePeerDependencies: + - encoding + + yocto-queue@0.1.0: {} + + yocto-queue@1.2.0: {} + + zod@3.24.2: {} + + zustand@3.6.5(react@18.3.1): + optionalDependencies: + react: 18.3.1 + + zwitch@2.0.4: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 00000000..5de14962 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,4 @@ +packages: + - "." + - "renderer" + - "renderer/viewer/sign-renderer/" diff --git a/prismarine-viewer/README.MD b/prismarine-viewer/README.MD new file mode 100644 index 00000000..7273a338 --- /dev/null +++ b/prismarine-viewer/README.MD @@ -0,0 +1,5 @@ +# Prismarine Viewer + +Renamed to `renderer`. + +For more info see [CONTRIBUTING.md](../CONTRIBUTING.md). diff --git a/renderer/.npmrc b/renderer/.npmrc new file mode 100644 index 00000000..3c6e1f1a --- /dev/null +++ b/renderer/.npmrc @@ -0,0 +1,3 @@ +public-hoist-pattern=* +shell-emulator=true +package-lock=false diff --git a/renderer/buildMesherConfig.mjs b/renderer/buildMesherConfig.mjs new file mode 100644 index 00000000..2c867222 --- /dev/null +++ b/renderer/buildMesherConfig.mjs @@ -0,0 +1 @@ +export const dynamicMcDataFiles = ['blocks', 'blockCollisionShapes', 'biomes', 'version'] diff --git a/renderer/buildMesherWorker.mjs b/renderer/buildMesherWorker.mjs new file mode 100644 index 00000000..d88297a5 --- /dev/null +++ b/renderer/buildMesherWorker.mjs @@ -0,0 +1,141 @@ +//@ts-check +import { context } from 'esbuild' +import { build } from 'esbuild' +import { polyfillNode } from 'esbuild-plugin-polyfill-node' +import path from 'path' +import { fileURLToPath } from 'url' +import fs from 'fs' +import { dynamicMcDataFiles } from './buildMesherConfig.mjs' +import { mesherSharedPlugins } from '../scripts/esbuildPlugins.mjs' + +const allowedBundleFiles = ['legacy', 'versions', 'protocolVersions', 'features'] + +const __dirname = path.dirname(fileURLToPath(new URL(import.meta.url))) + +const watch = process.argv.includes('-w') + +/** @type {import('esbuild').BuildOptions} */ +const buildOptions = { + bundle: true, + banner: { + js: `globalThis.global = globalThis;process = {env: {}, versions: {} };`, + }, + platform: 'browser', + entryPoints: [path.join(__dirname, './viewer/lib/mesher/mesher.ts')], + minify: !watch, + logLevel: 'info', + drop: !watch ? [ + 'debugger' + ] : [], + sourcemap: 'linked', + target: watch ? undefined : ['ios14'], + write: false, + metafile: true, + outdir: path.join(__dirname, './dist'), + define: { + 'process.env.BROWSER': '"true"', + }, + loader: { + '.png': 'dataurl', + '.obj': 'text' + }, + plugins: [ + ...mesherSharedPlugins, + { + name: 'external-json', + setup(build) { + build.onResolve({ filter: /\.json$/ }, args => { + const fileName = args.path.split('/').pop().replace('.json', '') + if (args.resolveDir.includes('minecraft-data')) { + if (args.path.replaceAll('\\', '/').endsWith('bedrock/common/protocolVersions.json')) { + return + } + if (args.path.includes('bedrock')) { + return { path: args.path, namespace: 'empty-file', } + } + if (dynamicMcDataFiles.includes(fileName)) { + return { + path: args.path, + namespace: 'mc-data', + } + } + if (!allowedBundleFiles.includes(fileName)) { + return { path: args.path, namespace: 'empty-file', } + } + } + }) + build.onResolve({ + filter: /^zlib$/, + }, ({ path }) => { + return { + path, + namespace: 'empty-file', + } + }) + build.onLoad({ + filter: /.*/, + namespace: 'empty-file', + }, () => { + return { contents: 'module.exports = undefined', loader: 'js' } + }) + build.onLoad({ + namespace: 'mc-data', + filter: /.*/, + }, async ({ path }) => { + const fileName = path.split(/[\\\/]/).pop().replace('.json', '') + return { + contents: `module.exports = globalThis.mcData["${fileName}"]`, + loader: 'js', + resolveDir: process.cwd(), + } + }) + build.onResolve({ + filter: /^esbuild-data$/, + }, () => { + return { + path: 'esbuild-data', + namespace: 'esbuild-data', + } + }) + build.onLoad({ + filter: /.*/, + namespace: 'esbuild-data', + }, () => { + const data = { + // todo always use latest + tints: 'require("minecraft-data/minecraft-data/data/pc/1.16.2/tints.json")' + } + return { + contents: `module.exports = {${Object.entries(data).map(([key, code]) => `${key}: ${code}`).join(', ')}}`, + loader: 'js', + resolveDir: process.cwd(), + } + }) + build.onEnd(({ metafile, outputFiles }) => { + if (!metafile) return + fs.mkdirSync(path.join(__dirname, './dist'), { recursive: true }) + fs.writeFileSync(path.join(__dirname, './dist/metafile.json'), JSON.stringify(metafile)) + for (const outDir of ['../dist/', './dist/']) { + for (const outputFile of outputFiles) { + if (outDir === '../dist/' && outputFile.path.endsWith('.map')) { + // skip writing & browser loading sourcemap there, worker debugging should be done in playground + // continue + } + const writePath = path.join(__dirname, outDir, path.basename(outputFile.path)) + fs.mkdirSync(path.dirname(writePath), { recursive: true }) + fs.writeFileSync(writePath, outputFile.text) + } + } + }) + } + }, + polyfillNode(), + ], +} + +if (watch) { + const ctx = await context(buildOptions) + await ctx.watch() +} else { + await build(buildOptions) +} diff --git a/renderer/package.json b/renderer/package.json new file mode 100644 index 00000000..10049f4f --- /dev/null +++ b/renderer/package.json @@ -0,0 +1,45 @@ +{ + "name": "renderer", + "version": "1.25.0", + "description": "Web based viewer", + "main": "index.js", + "scripts": {}, + "author": "PrismarineJS", + "license": "MIT", + "standard": { + "ignore": [ + "examples/electron/", + "examples/exporter/", + "examples/standalone/", + "examples/web_client/" + ] + }, + "dependencies": { + "@tweenjs/tween.js": "^20.0.3", + "assert": "^2.0.0", + "buffer": "^6.0.3", + "filesize": "^10.0.12", + "fs-extra": "^11.0.0", + "lil-gui": "^0.18.2", + "minecraft-wrap": "^1.3.0", + "minecrafthawkeye": "^1.3.6", + "prismarine-block": "^1.7.3", + "prismarine-chunk": "^1.22.0", + "prismarine-schematic": "^1.2.0", + "renderer": "link:./", + "process": "^0.11.10", + "socket.io": "^4.0.0", + "socket.io-client": "^4.0.0", + "three-stdlib": "^2.26.11", + "three.meshline": "^1.3.0", + "tsx": "^4.7.0", + "vec3": "^0.1.7" + }, + "optionalDependencies": { + "canvas": "^2.11.2", + "node-canvas-webgl": "^0.3.0" + }, + "devDependencies": { + "live-server": "^1.2.2" + } +} diff --git a/renderer/playground.html b/renderer/playground.html new file mode 100644 index 00000000..258426fe --- /dev/null +++ b/renderer/playground.html @@ -0,0 +1,51 @@ + + + + Renderer Playground + + + + + +
+ + diff --git a/renderer/playground/allEntitiesDebug.ts b/renderer/playground/allEntitiesDebug.ts new file mode 100644 index 00000000..5bc56ca6 --- /dev/null +++ b/renderer/playground/allEntitiesDebug.ts @@ -0,0 +1,170 @@ +import { EntityMesh, rendererSpecialHandled, EntityDebugFlags } from '../viewer/three/entity/EntityMesh' + +export const displayEntitiesDebugList = (version: string) => { + // Create results container + const container = document.createElement('div') + container.style.cssText = ` + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + max-height: 90vh; + overflow-y: auto; + background: rgba(0,0,0,0.8); + color: white; + padding: 20px; + border-radius: 8px; + font-family: monospace; + min-width: 400px; + z-index: 1000; + ` + document.body.appendChild(container) + + // Add title + const title = document.createElement('h2') + title.textContent = 'Minecraft Entity Support' + title.style.cssText = 'margin-top: 0; text-align: center;' + container.appendChild(title) + + // Test entities + const results: Array<{ + entity: string; + supported: boolean; + type?: 'obj' | 'bedrock' | 'special'; + mappedFrom?: string; + textureMap?: boolean; + errors?: string[]; + }> = [] + const { mcData } = window + const entityNames = Object.keys(mcData.entitiesArray.reduce((acc, entity) => { + acc[entity.name] = true + return acc + }, {})) + + // Add loading indicator + const loading = document.createElement('div') + loading.textContent = 'Testing entities...' + loading.style.textAlign = 'center' + container.appendChild(loading) + + for (const entity of entityNames) { + const debugFlags: EntityDebugFlags = {} + + if (rendererSpecialHandled.includes(entity)) { + results.push({ + entity, + supported: true, + type: 'special', + }) + continue + } + + try { + + const { mesh: entityMesh } = new EntityMesh(version, entity, undefined, {}, debugFlags) + // find the most distant pos child + window.objects ??= {} + window.objects[entity] = entityMesh + + results.push({ + entity, + supported: !!debugFlags.type || rendererSpecialHandled.includes(entity), + type: debugFlags.type, + mappedFrom: debugFlags.tempMap, + textureMap: debugFlags.textureMap, + errors: debugFlags.errors + }) + } catch (e) { + console.error(e) + results.push({ + entity, + supported: false, + mappedFrom: debugFlags.tempMap + }) + } + } + + // Remove loading indicator + loading.remove() + + const createSection = (title: string, items: any[], filter: (item: any) => boolean) => { + const section = document.createElement('div') + section.style.marginBottom = '20px' + + const sectionTitle = document.createElement('h3') + sectionTitle.textContent = title + sectionTitle.style.textAlign = 'center' + section.appendChild(sectionTitle) + + const list = document.createElement('ul') + list.style.cssText = 'padding-left: 20px; list-style-type: none; margin: 0;' + + const filteredItems = items.filter(filter) + for (const item of filteredItems) { + const listItem = document.createElement('li') + listItem.style.cssText = 'line-height: 1.4; margin: 8px 0;' + + const entityName = document.createElement('strong') + entityName.style.cssText = 'user-select: text;-webkit-user-select: text;' + entityName.textContent = item.entity + listItem.appendChild(entityName) + + let text = '' + if (item.mappedFrom) { + text += ` -> ${item.mappedFrom}` + } + if (item.type) { + text += ` - ${item.type}` + } + if (item.textureMap) { + text += ' ⚠️' + } + if (item.errors) { + text += ' ❌' + } + + listItem.appendChild(document.createTextNode(text)) + list.appendChild(listItem) + } + + section.appendChild(list) + return { section, count: filteredItems.length } + } + + // Sort results - bedrock first + results.sort((a, b) => { + if (a.type === 'bedrock' && b.type !== 'bedrock') return -1 + if (a.type !== 'bedrock' && b.type === 'bedrock') return 1 + return a.entity.localeCompare(b.entity) + }) + + // Add sections + const sections = [ + { + title: '❌ Unsupported Entities', + filter: (r: any) => !r.supported && !r.mappedFrom + }, + { + title: '⚠️ Partially Supported Entities', + filter: (r: any) => r.mappedFrom + }, + { + title: '✅ Supported Entities', + filter: (r: any) => r.supported && !r.mappedFrom + } + ] + + for (const { title, filter } of sections) { + const { section, count } = createSection(title, results, filter) + if (count > 0) { + container.appendChild(section) + } + } + + // log object with errors per entity + const errors = results.filter(r => r.errors).map(r => ({ + entity: r.entity, + errors: r.errors + })) + console.log(errors) +} diff --git a/renderer/playground/baseScene.ts b/renderer/playground/baseScene.ts new file mode 100644 index 00000000..b9e7791d --- /dev/null +++ b/renderer/playground/baseScene.ts @@ -0,0 +1,414 @@ +//@ts-nocheck +import { Vec3 } from 'vec3' +import * as THREE from 'three' +import '../../src/getCollisionShapes' +import { IndexedData } from 'minecraft-data' +import BlockLoader from 'prismarine-block' +import blockstatesModels from 'mc-assets/dist/blockStatesModels.json' +import ChunkLoader from 'prismarine-chunk' +import WorldLoader from 'prismarine-world' + +//@ts-expect-error +import { OrbitControls } from 'three/addons/controls/OrbitControls.js' +// eslint-disable-next-line import/no-named-as-default +import GUI from 'lil-gui' +import _ from 'lodash' +import { toMajorVersion } from '../../src/utils' +import { WorldDataEmitter } from '../viewer' +import { Viewer } from '../viewer/lib/viewer' +import { BlockNames } from '../../src/mcDataTypes' +import { initWithRenderer, statsEnd, statsStart } from '../../src/topRightStats' +import { defaultWorldRendererConfig } from '../viewer/lib/worldrendererCommon' +import { getSyncWorld } from './shared' + +window.THREE = THREE + +export class BasePlaygroundScene { + continuousRender = false + stopRender = false + guiParams = {} + viewDistance = 0 + targetPos = new Vec3(2, 90, 2) + params = {} as Record + paramOptions = {} as Partial> + version = new URLSearchParams(window.location.search).get('version') || globalThis.includedVersions.at(-1) + Chunk: typeof import('prismarine-chunk/types/index').PCChunk + Block: typeof import('prismarine-block').Block + ignoreResize = false + enableCameraControls = true // not finished + enableCameraOrbitControl = true + gui = new GUI() + onParamUpdate = {} as Record void> + alwaysIgnoreQs = [] as string[] + skipUpdateQs = false + controls: any + windowHidden = false + world: ReturnType + + _worldConfig = defaultWorldRendererConfig + get worldConfig () { + return this._worldConfig + } + set worldConfig (value) { + this._worldConfig = value + viewer.world.config = value + } + + constructor () { + void this.initData().then(() => { + this.addKeyboardShortcuts() + }) + } + + onParamsUpdate (paramName: string, object: any) {} + updateQs (paramName: string, valueSet: any) { + if (this.skipUpdateQs) return + const newQs = new URLSearchParams(window.location.search) + // if (oldQs.get('scene')) { + // newQs.set('scene', oldQs.get('scene')!) + // } + for (const [key, value] of Object.entries({ [paramName]: valueSet })) { + if (typeof value === 'function' || this.params.skipQs?.includes(key) || this.alwaysIgnoreQs.includes(key)) continue + if (value) { + newQs.set(key, value) + } else { + newQs.delete(key) + } + } + window.history.replaceState({}, '', `${window.location.pathname}?${newQs.toString()}`) + } + + // async initialSetup () {} + renderFinish () { + this.render() + } + + initGui () { + const qs = new URLSearchParams(window.location.search) + for (const key of Object.keys(this.params)) { + const value = qs.get(key) + if (!value) continue + const parsed = /^-?\d+$/.test(value) ? Number(value) : value === 'true' ? true : value === 'false' ? false : value + this.params[key] = parsed + } + + for (const param of Object.keys(this.params)) { + const option = this.paramOptions[param] + if (option?.hide) continue + this.gui.add(this.params, param, option?.options ?? option?.min, option?.max) + } + if (window.innerHeight < 700) { + this.gui.open(false) + } else { + // const observer = new MutationObserver(() => { + // this.gui.domElement.classList.remove('transition') + // }) + // observer.observe(this.gui.domElement, { + // attributes: true, + // attributeFilter: ['class'], + // }) + setTimeout(() => { + this.gui.domElement.classList.remove('transition') + }, 500) + } + + this.gui.onChange(({ property, object }) => { + if (object === this.params) { + this.onParamUpdate[property]?.() + this.onParamsUpdate(property, object) + const value = this.params[property] + if (this.paramOptions[property]?.reloadOnChange && (typeof value === 'boolean' || this.paramOptions[property].options)) { + setTimeout(() => { + window.location.reload() + }) + } + this.updateQs(property, value) + } else { + this.onParamsUpdate(property, object) + } + }) + } + + // mainChunk: import('prismarine-chunk/types/index').PCChunk + + // overridables + setupWorld () { } + sceneReset () {} + + // eslint-disable-next-line max-params + addWorldBlock (xOffset: number, yOffset: number, zOffset: number, blockName: BlockNames, properties?: Record) { + if (xOffset > 16 || yOffset > 16 || zOffset > 16) throw new Error('Offset too big') + const block = + properties ? + this.Block.fromProperties(loadedData.blocksByName[blockName].id, properties ?? {}, 0) : + this.Block.fromStateId(loadedData.blocksByName[blockName].defaultState, 0) + this.world.setBlock(this.targetPos.offset(xOffset, yOffset, zOffset), block) + } + + resetCamera () { + const { targetPos } = this + this.controls?.target.set(targetPos.x + 0.5, targetPos.y + 0.5, targetPos.z + 0.5) + + const cameraPos = targetPos.offset(2, 2, 2) + const pitch = THREE.MathUtils.degToRad(-45) + const yaw = THREE.MathUtils.degToRad(45) + viewer.camera.rotation.set(pitch, yaw, 0, 'ZYX') + viewer.camera.lookAt(targetPos.x + 0.5, targetPos.y + 0.5, targetPos.z + 0.5) + viewer.camera.position.set(cameraPos.x + 0.5, cameraPos.y + 0.5, cameraPos.z + 0.5) + this.controls?.update() + } + + async initData () { + await window._LOAD_MC_DATA() + const mcData: IndexedData = require('minecraft-data')(this.version) + window.loadedData = window.mcData = mcData + + this.Chunk = (ChunkLoader as any)(this.version) + this.Block = (BlockLoader as any)(this.version) + + const world = getSyncWorld(this.version) + world.setBlockStateId(this.targetPos, 0) + this.world = world + + this.initGui() + + const worldView = new WorldDataEmitter(world, this.viewDistance, this.targetPos) + worldView.addWaitTime = 0 + window.worldView = worldView + + // Create three.js context, add to page + const renderer = new THREE.WebGLRenderer({ alpha: true, ...localStorage['renderer'] }) + renderer.setPixelRatio(window.devicePixelRatio || 1) + renderer.setSize(window.innerWidth, window.innerHeight) + + // Create viewer + const viewer = new Viewer(renderer, this.worldConfig) + window.viewer = viewer + window.world = window.viewer.world + const isWebgpu = false + const promises = [] as Array> + if (isWebgpu) { + // promises.push(initWebgpuRenderer(() => { }, true, true)) // todo + } else { + initWithRenderer(renderer.domElement) + renderer.domElement.id = 'viewer-canvas' + document.body.appendChild(renderer.domElement) + } + viewer.addChunksBatchWaitTime = 0 + viewer.world.blockstatesModels = blockstatesModels + viewer.entities.setDebugMode('basic') + viewer.setVersion(this.version) + viewer.entities.onSkinUpdate = () => { + viewer.render() + } + viewer.world.mesherConfig.enableLighting = false + await Promise.all(promises) + this.setupWorld() + + viewer.connect(worldView) + + await worldView.init(this.targetPos) + + if (this.enableCameraControls) { + const { targetPos } = this + const canvas = document.querySelector('#viewer-canvas') + const controls = this.enableCameraOrbitControl ? new OrbitControls(viewer.camera, canvas) : undefined + this.controls = controls + + this.resetCamera() + + // #region camera rotation param + const cameraSet = this.params.camera || localStorage.camera + if (cameraSet) { + const [x, y, z, rx, ry] = cameraSet.split(',').map(Number) + viewer.camera.position.set(x, y, z) + viewer.camera.rotation.set(rx, ry, 0, 'ZYX') + this.controls?.update() + } + const throttledCamQsUpdate = _.throttle(() => { + const { camera } = viewer + // params.camera = `${camera.rotation.x.toFixed(2)},${camera.rotation.y.toFixed(2)}` + // this.updateQs() + localStorage.camera = [ + camera.position.x.toFixed(2), + camera.position.y.toFixed(2), + camera.position.z.toFixed(2), + camera.rotation.x.toFixed(2), + camera.rotation.y.toFixed(2), + ].join(',') + }, 200) + if (this.controls) { + this.controls.addEventListener('change', () => { + throttledCamQsUpdate() + this.render() + }) + } else { + setInterval(() => { + throttledCamQsUpdate() + }, 200) + } + // #endregion + } + + if (!this.enableCameraOrbitControl) { + // mouse + let mouseMoveCounter = 0 + const mouseMove = (e: PointerEvent) => { + if ((e.target as HTMLElement).closest('.lil-gui')) return + if (e.buttons === 1 || e.pointerType === 'touch') { + mouseMoveCounter++ + viewer.camera.rotation.x -= e.movementY / 100 + //viewer.camera. + viewer.camera.rotation.y -= e.movementX / 100 + if (viewer.camera.rotation.x < -Math.PI / 2) viewer.camera.rotation.x = -Math.PI / 2 + if (viewer.camera.rotation.x > Math.PI / 2) viewer.camera.rotation.x = Math.PI / 2 + + // yaw += e.movementY / 20; + // pitch += e.movementX / 20; + } + if (e.buttons === 2) { + viewer.camera.position.set(0, 0, 0) + } + } + setInterval(() => { + // updateTextEvent(`Mouse Events: ${mouseMoveCounter}`) + mouseMoveCounter = 0 + }, 1000) + window.addEventListener('pointermove', mouseMove) + } + + // await this.initialSetup() + this.onResize() + window.addEventListener('resize', () => this.onResize()) + void viewer.waitForChunksToRender().then(async () => { + this.renderFinish() + }) + + viewer.world.renderUpdateEmitter.addListener('update', () => { + this.render() + }) + + this.loop() + } + + loop () { + if (this.continuousRender && !this.windowHidden) { + this.render(true) + requestAnimationFrame(() => this.loop()) + } + } + + render (fromLoop = false) { + if (!fromLoop && this.continuousRender) return + if (this.stopRender) return + statsStart() + viewer.render() + statsEnd() + } + + addKeyboardShortcuts () { + document.addEventListener('keydown', (e) => { + if (!e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey) { + if (e.code === 'KeyR') { + this.controls?.reset() + this.resetCamera() + } + if (e.code === 'KeyE') { // refresh block (main) + worldView!.setBlockStateId(this.targetPos, this.world.getBlockStateId(this.targetPos)) + } + if (e.code === 'KeyF') { // reload all chunks + this.sceneReset() + worldView!.unloadAllChunks() + void worldView!.init(this.targetPos) + } + } + }) + document.addEventListener('visibilitychange', () => { + this.windowHidden = document.visibilityState === 'hidden' + }) + document.addEventListener('blur', () => { + this.windowHidden = true + }) + document.addEventListener('focus', () => { + this.windowHidden = false + }) + + const updateKeys = () => { + if (pressedKeys.has('ControlLeft') || pressedKeys.has('MetaLeft')) { + return + } + // if (typeof viewer === 'undefined') return + // Create a vector that points in the direction the camera is looking + const direction = new THREE.Vector3(0, 0, 0) + if (pressedKeys.has('KeyW')) { + direction.z = -0.5 + } + if (pressedKeys.has('KeyS')) { + direction.z += 0.5 + } + if (pressedKeys.has('KeyA')) { + direction.x -= 0.5 + } + if (pressedKeys.has('KeyD')) { + direction.x += 0.5 + } + + + if (pressedKeys.has('ShiftLeft')) { + viewer.camera.position.y -= 0.5 + } + if (pressedKeys.has('Space')) { + viewer.camera.position.y += 0.5 + } + direction.applyQuaternion(viewer.camera.quaternion) + direction.y = 0 + + if (pressedKeys.has('ShiftLeft')) { + direction.y *= 2 + direction.x *= 2 + direction.z *= 2 + } + // Add the vector to the camera's position to move the camera + viewer.camera.position.add(direction.normalize()) + this.controls?.update() + this.render() + } + setInterval(updateKeys, 1000 / 30) + + const pressedKeys = new Set() + const keys = (e) => { + const { code } = e + const pressed = e.type === 'keydown' + if (pressed) { + pressedKeys.add(code) + } else { + pressedKeys.delete(code) + } + } + + window.addEventListener('keydown', keys) + window.addEventListener('keyup', keys) + window.addEventListener('blur', (e) => { + for (const key of pressedKeys) { + keys(new KeyboardEvent('keyup', { code: key })) + } + }) + } + + onResize () { + if (this.ignoreResize) return + + const { camera, renderer } = viewer + viewer.camera.aspect = window.innerWidth / window.innerHeight + viewer.camera.updateProjectionMatrix() + renderer.setSize(window.innerWidth, window.innerHeight) + + this.render() + } +} diff --git a/renderer/playground/playground.ts b/renderer/playground/playground.ts new file mode 100644 index 00000000..de201d8f --- /dev/null +++ b/renderer/playground/playground.ts @@ -0,0 +1,12 @@ +if (!new URL(location.href).searchParams.get('playground')) location.href = '/?playground=true' +// import { BasePlaygroundScene } from './baseScene' +// import { playgroundGlobalUiState } from './playgroundUi' +// import * as scenes from './scenes' + +// const qsScene = new URLSearchParams(window.location.search).get('scene') +// const Scene: typeof BasePlaygroundScene = qsScene ? scenes[qsScene] : scenes.main +// playgroundGlobalUiState.scenes = ['main', 'railsCobweb', 'floorRandom', 'lightingStarfield', 'transparencyIssue', 'entities', 'frequentUpdates', 'slabsOptimization', 'allEntities'] +// playgroundGlobalUiState.selected = qsScene ?? 'main' + +// const scene = new Scene() +// globalThis.scene = scene diff --git a/renderer/playground/playgroundUi.tsx b/renderer/playground/playgroundUi.tsx new file mode 100644 index 00000000..ed183d78 --- /dev/null +++ b/renderer/playground/playgroundUi.tsx @@ -0,0 +1,175 @@ +import { renderToDom } from '@zardoy/react-util' +import { useEffect } from 'react' +import { proxy, useSnapshot } from 'valtio' +import { LeftTouchArea, RightTouchArea, useInterfaceState } from '@dimaka/interface' +import { css } from '@emotion/css' +import { Vec3 } from 'vec3' +import useLongPress from '../../src/react/useLongPress' +import { isMobile } from '../viewer/lib/simpleUtils' + +export const playgroundGlobalUiState = proxy({ + scenes: [] as string[], + selected: '', + selectorOpened: false, + actions: {} as Record void>, +}) + +renderToDom() + +function Playground () { + useEffect(() => { + const style = document.createElement('style') + style.innerHTML = /* css */ ` + .lil-gui { + top: 60px !important; + right: 0 !important; + } + ` + document.body.appendChild(style) + return () => { + style.remove() + } + }, []) + + return
+ + + +
+} + +function SceneSelector () { + const mobile = isMobile() + const { scenes, selected } = useSnapshot(playgroundGlobalUiState) + const longPressEvents = useLongPress(() => { + playgroundGlobalUiState.selectorOpened = true + }, () => { }) + + return
+ {scenes.map(scene =>
{ + const qs = new URLSearchParams(window.location.search) + qs.set('scene', scene) + location.search = qs.toString() + }} + >{scene}
)} +
+} + +const ActionsSelector = () => { + const { actions, selectorOpened } = useSnapshot(playgroundGlobalUiState) + + if (!selectorOpened) return null + return
{Object.entries({ + ...actions, + 'Close' () { + playgroundGlobalUiState.selectorOpened = false + } + }).map(([name, action]) =>
{ + action() + playgroundGlobalUiState.selectorOpened = false + }} + >{name}
)}
+} + +const Controls = () => { + // todo setting + const usingTouch = navigator.maxTouchPoints > 0 + + useEffect(() => { + window.addEventListener('touchstart', (e) => { + e.preventDefault() + }) + + const pressedKeys = new Set() + useInterfaceState.setState({ + isFlying: false, + uiCustomization: { + touchButtonSize: 40, + }, + updateCoord ([coord, state]) { + const vec3 = new Vec3(0, 0, 0) + vec3[coord] = state + let key: string | undefined + if (vec3.z < 0) key = 'KeyW' + if (vec3.z > 0) key = 'KeyS' + if (vec3.y > 0) key = 'Space' + if (vec3.y < 0) key = 'ShiftLeft' + if (vec3.x < 0) key = 'KeyA' + if (vec3.x > 0) key = 'KeyD' + if (key) { + if (!pressedKeys.has(key)) { + pressedKeys.add(key) + window.dispatchEvent(new KeyboardEvent('keydown', { code: key })) + } + } + for (const k of pressedKeys) { + if (k !== key) { + window.dispatchEvent(new KeyboardEvent('keyup', { code: k })) + pressedKeys.delete(k) + } + } + } + }) + }, []) + + if (!usingTouch) return null + return ( +
div { + pointer-events: auto; + } + `} + > + +
+ +
+ ) +} diff --git a/renderer/playground/scenes/allEntities.ts b/renderer/playground/scenes/allEntities.ts new file mode 100644 index 00000000..281af807 --- /dev/null +++ b/renderer/playground/scenes/allEntities.ts @@ -0,0 +1,13 @@ +import { BasePlaygroundScene } from '../baseScene' +import { EntityDebugFlags, EntityMesh, rendererSpecialHandled } from '../../viewer/three/entity/EntityMesh' +import { displayEntitiesDebugList } from '../allEntitiesDebug' + +export default class AllEntities extends BasePlaygroundScene { + continuousRender = false + enableCameraControls = false + + async initData () { + await super.initData() + displayEntitiesDebugList(this.version) + } +} diff --git a/renderer/playground/scenes/entities.ts b/renderer/playground/scenes/entities.ts new file mode 100644 index 00000000..5b5d0582 --- /dev/null +++ b/renderer/playground/scenes/entities.ts @@ -0,0 +1,37 @@ +//@ts-nocheck +import * as THREE from 'three' +import { Vec3 } from 'vec3' +import { BasePlaygroundScene } from '../baseScene' +import { WorldRendererThree } from '../../viewer/three/worldrendererThree' + +export default class extends BasePlaygroundScene { + continuousRender = true + + override initGui (): void { + this.params = { + starfield: false, + entity: 'player', + count: 4 + } + } + + override renderFinish (): void { + if (this.params.starfield) { + ;(viewer.world as WorldRendererThree).scene.background = new THREE.Color(0x00_00_00) + ;(viewer.world as WorldRendererThree).starField.enabled = true + ;(viewer.world as WorldRendererThree).starField.addToScene() + } + + for (let i = 0; i < this.params.count; i++) { + for (let j = 0; j < this.params.count; j++) { + for (let k = 0; k < this.params.count; k++) { + viewer.entities.update({ + id: i * 1000 + j * 100 + k, + name: this.params.entity, + pos: this.targetPos.offset(i, j, k) + } as any, {}) + } + } + } + } +} diff --git a/renderer/playground/scenes/floorRandom.ts b/renderer/playground/scenes/floorRandom.ts new file mode 100644 index 00000000..c6d2ccf1 --- /dev/null +++ b/renderer/playground/scenes/floorRandom.ts @@ -0,0 +1,33 @@ +import { BasePlaygroundScene } from '../baseScene' + +export default class RailsCobwebScene extends BasePlaygroundScene { + viewDistance = 5 + continuousRender = true + + override initGui (): void { + this.params = { + squareSize: 50 + } + + super.initGui() + } + + setupWorld () { + const squareSize = this.params.squareSize ?? 30 + const maxSquareSize = this.viewDistance * 16 * 2 + if (squareSize > maxSquareSize) throw new Error(`Square size too big, max is ${maxSquareSize}`) + // const fullBlocks = loadedData.blocksArray.map(x => x.name) + const fullBlocks = loadedData.blocksArray.filter(block => { + const b = this.Block.fromStateId(block.defaultState, 0) + if (b.shapes?.length !== 1) return false + const shape = b.shapes[0] + return shape[0] === 0 && shape[1] === 0 && shape[2] === 0 && shape[3] === 1 && shape[4] === 1 && shape[5] === 1 + }) + for (let x = -squareSize; x <= squareSize; x++) { + for (let z = -squareSize; z <= squareSize; z++) { + const i = Math.abs(x + z) * squareSize + worldView!.world.setBlock(this.targetPos.offset(x, 0, z), this.Block.fromStateId(fullBlocks[i % fullBlocks.length].defaultState, 0)) + } + } + } +} diff --git a/renderer/playground/scenes/frequentUpdates.ts b/renderer/playground/scenes/frequentUpdates.ts new file mode 100644 index 00000000..caaf7207 --- /dev/null +++ b/renderer/playground/scenes/frequentUpdates.ts @@ -0,0 +1,148 @@ +//@ts-nocheck +import { Vec3 } from 'vec3' +import { BasePlaygroundScene } from '../baseScene' + +export default class extends BasePlaygroundScene { + viewDistance = 5 + continuousRender = true + + override initGui (): void { + this.params = { + testActive: false, + testUpdatesPerSecond: 10, + testInitialUpdate: false, + stopGeometryUpdate: false, + manualTest: () => { + this.updateBlock() + }, + testNeighborUpdates: () => { + this.testNeighborUpdates() + } + } + + super.initGui() + } + + lastUpdatedOffset = 0 + lastUpdatedId = 2 + updateBlock () { + const x = this.lastUpdatedOffset % 16 + const z = Math.floor(this.lastUpdatedOffset / 16) + const y = 90 + worldView!.setBlockStateId(new Vec3(x, y, z), this.lastUpdatedId++) + this.lastUpdatedOffset++ + if (this.lastUpdatedOffset > 16 * 16) this.lastUpdatedOffset = 0 + if (this.lastUpdatedId > 500) this.lastUpdatedId = 1 + } + + testNeighborUpdates () { + viewer.world.setBlockStateId(new Vec3(15, 95, 15), 1) + viewer.world.setBlockStateId(new Vec3(0, 95, 15), 1) + viewer.world.setBlockStateId(new Vec3(15, 95, 0), 1) + viewer.world.setBlockStateId(new Vec3(0, 95, 0), 1) + + viewer.world.setBlockStateId(new Vec3(16, 95, 15), 1) + viewer.world.setBlockStateId(new Vec3(-1, 95, 15), 1) + viewer.world.setBlockStateId(new Vec3(15, 95, -1), 1) + viewer.world.setBlockStateId(new Vec3(-1, 95, 0), 1) + setTimeout(() => { + viewer.world.setBlockStateId(new Vec3(16, 96, 16), 1) + viewer.world.setBlockStateId(new Vec3(-1, 96, 16), 1) + viewer.world.setBlockStateId(new Vec3(16, 96, -1), 1) + viewer.world.setBlockStateId(new Vec3(-1, 96, -1), 1) + }, 3000) + } + + setupTimer () { + // this.stopRender = true + + let lastTime = 0 + const tick = () => { + viewer.world.debugStopGeometryUpdate = this.params.stopGeometryUpdate + const updateEach = 1000 / this.params.testUpdatesPerSecond + requestAnimationFrame(tick) + if (!this.params.testActive) return + const updateCount = Math.floor(performance.now() - lastTime) / updateEach + for (let i = 0; i < updateCount; i++) { + this.updateBlock() + } + lastTime = performance.now() + } + + requestAnimationFrame(tick) + + // const limit = 1000 + // const limit = 100 + // const limit = 1 + // const updatedChunks = new Set() + // const updatedBlocks = new Set() + // let lastSecond = 0 + // setInterval(() => { + // const second = Math.floor(performance.now() / 1000) + // if (lastSecond !== second) { + // lastSecond = second + // updatedChunks.clear() + // updatedBlocks.clear() + // } + // const isEven = second % 2 === 0 + // if (updatedBlocks.size > limit) { + // return + // } + // const changeBlock = (x, z) => { + // const chunkKey = `${Math.floor(x / 16)},${Math.floor(z / 16)}` + // const key = `${x},${z}` + // if (updatedBlocks.has(chunkKey)) return + + // updatedChunks.add(chunkKey) + // worldView!.world.setBlock(this.targetPos.offset(x, 0, z), this.Block.fromStateId(isEven ? 2 : 3, 0)) + // updatedBlocks.add(key) + // } + // const { squareSize } = this.params + // const xStart = -squareSize + // const zStart = -squareSize + // const xEnd = squareSize + // const zEnd = squareSize + // for (let x = xStart; x <= xEnd; x += 16) { + // for (let z = zStart; z <= zEnd; z += 16) { + // const key = `${x},${z}` + // if (updatedChunks.has(key)) continue + // changeBlock(x, z) + // return + // } + // } + // for (let x = xStart; x <= xEnd; x += 16) { + // for (let z = zStart; z <= zEnd; z += 16) { + // const key = `${x},${z}` + // if (updatedChunks.has(key)) continue + // changeBlock(x, z) + // return + // } + // } + // }, 1) + } + + setupWorld () { + this.worldConfig.showChunkBorders = true + + const maxSquareRadius = this.viewDistance * 16 + // const fullBlocks = loadedData.blocksArray.map(x => x.name) + const squareSize = maxSquareRadius + for (let x = -squareSize; x <= squareSize; x++) { + for (let z = -squareSize; z <= squareSize; z++) { + const i = Math.abs(x + z) * squareSize + worldView!.world.setBlock(this.targetPos.offset(x, 0, z), this.Block.fromStateId(1, 0)) + } + } + let done = false + viewer.world.renderUpdateEmitter.on('update', () => { + if (!viewer.world.allChunksFinished || done) return + done = true + this.setupTimer() + }) + setTimeout(() => { + if (this.params.testInitialUpdate) { + this.updateBlock() + } + }) + } +} diff --git a/renderer/playground/scenes/index.ts b/renderer/playground/scenes/index.ts new file mode 100644 index 00000000..bf881812 --- /dev/null +++ b/renderer/playground/scenes/index.ts @@ -0,0 +1,11 @@ +// export { default as rotation } from './rotation' +export { default as main } from './main' +export { default as railsCobweb } from './railsCobweb' +export { default as floorRandom } from './floorRandom' +export { default as lightingStarfield } from './lightingStarfield' +export { default as transparencyIssue } from './transparencyIssue' +export { default as rotationIssue } from './rotationIssue' +export { default as entities } from './entities' +export { default as frequentUpdates } from './frequentUpdates' +export { default as slabsOptimization } from './slabsOptimization' +export { default as allEntities } from './allEntities' diff --git a/renderer/playground/scenes/lightingStarfield.ts b/renderer/playground/scenes/lightingStarfield.ts new file mode 100644 index 00000000..eec0a7d3 --- /dev/null +++ b/renderer/playground/scenes/lightingStarfield.ts @@ -0,0 +1,40 @@ +//@ts-nocheck +import * as THREE from 'three' +import { Vec3 } from 'vec3' +import { BasePlaygroundScene } from '../baseScene' +import { WorldRendererThree } from '../../viewer/three/worldrendererThree' + +export default class extends BasePlaygroundScene { + continuousRender = true + + override setupWorld (): void { + viewer.world.mesherConfig.enableLighting = true + viewer.world.mesherConfig.skyLight = 0 + this.addWorldBlock(0, 0, 0, 'stone') + this.addWorldBlock(0, 0, 1, 'stone') + this.addWorldBlock(1, 0, 0, 'stone') + this.addWorldBlock(1, 0, 1, 'stone') + // chess like + worldView?.world.setBlockLight(this.targetPos.offset(0, 1, 0), 15) + worldView?.world.setBlockLight(this.targetPos.offset(0, 1, 1), 0) + worldView?.world.setBlockLight(this.targetPos.offset(1, 1, 0), 0) + worldView?.world.setBlockLight(this.targetPos.offset(1, 1, 1), 15) + } + + override renderFinish (): void { + viewer.scene.background = new THREE.Color(0x00_00_00) + // starfield and test entities + ;(viewer.world as WorldRendererThree).starField.enabled = true + ;(viewer.world as WorldRendererThree).starField.addToScene() + viewer.entities.update({ + id: 0, + name: 'player', + pos: this.targetPos.clone() + } as any, {}) + viewer.entities.update({ + id: 1, + name: 'creeper', + pos: this.targetPos.offset(1, 0, 0) + } as any, {}) + } +} diff --git a/renderer/playground/scenes/main.ts b/renderer/playground/scenes/main.ts new file mode 100644 index 00000000..64925f61 --- /dev/null +++ b/renderer/playground/scenes/main.ts @@ -0,0 +1,314 @@ +//@ts-nocheck +// eslint-disable-next-line import/no-named-as-default +import GUI, { Controller } from 'lil-gui' +import * as THREE from 'three' +import JSZip from 'jszip' +import { BasePlaygroundScene } from '../baseScene' +import { TWEEN_DURATION } from '../../viewer/three/entities' +import { EntityMesh } from '../../viewer/three/entity/EntityMesh' + +class MainScene extends BasePlaygroundScene { + // eslint-disable-next-line @typescript-eslint/no-useless-constructor + constructor (...args) { + //@ts-expect-error + super(...args) + } + + override initGui (): void { + // initial values + this.params = { + version: globalThis.includedVersions.at(-1), + skipQs: '', + block: '', + metadata: 0, + supportBlock: false, + entity: '', + removeEntity () { + this.entity = '' + }, + entityRotate: false, + camera: '', + playSound () { }, + blockIsomorphicRenderBundle () { }, + modelVariant: 0 + } + this.metadataGui = this.gui.add(this.params, 'metadata') + this.paramOptions = { + version: { + options: globalThis.includedVersions, + hide: false + }, + block: { + options: mcData.blocksArray.map(b => b.name).sort((a, b) => a.localeCompare(b)) + }, + entity: { + options: mcData.entitiesArray.map(b => b.name).sort((a, b) => a.localeCompare(b)) + }, + camera: { + hide: true, + } + } + super.initGui() + } + + blockProps = {} + metadataFolder: GUI | undefined + metadataGui: Controller + + override onParamUpdate = { + version () { + // if (initialUpdate) return + // viewer.world.texturesVersion = params.version + // viewer.world.updateTexturesData() + // todo warning + }, + block: () => { + this.blockProps = {} + this.metadataFolder?.destroy() + const block = mcData.blocksByName[this.params.block] + if (!block) return + console.log('block', block.name) + const props = new this.Block(block.id, 0, 0).getProperties() + const { states } = mcData.blocksByStateId[this.getBlock()?.minStateId] ?? {} + this.metadataFolder = this.gui.addFolder('metadata') + if (states) { + for (const state of states) { + let defaultValue: string | number | boolean + if (state.values) { // int, enum + defaultValue = state.values[0] + } else { + switch (state.type) { + case 'bool': + defaultValue = false + break + case 'int': + defaultValue = 0 + break + case 'direction': + defaultValue = 'north' + break + + default: + continue + } + } + this.blockProps[state.name] = defaultValue + if (state.values) { + this.metadataFolder.add(this.blockProps, state.name, state.values) + } else { + this.metadataFolder.add(this.blockProps, state.name) + } + } + } else { + for (const [name, value] of Object.entries(props)) { + this.blockProps[name] = value + this.metadataFolder.add(this.blockProps, name) + } + } + console.log('props', this.blockProps) + this.metadataFolder.open() + }, + entity: () => { + this.continuousRender = this.params.entity === 'player' + this.entityUpdateShared() + if (!this.params.entity) return + if (this.params.entity === 'player') { + viewer.entities.updatePlayerSkin('id', viewer.entities.entities.id.username, undefined, true, true) + viewer.entities.playAnimation('id', 'running') + } + // let prev = false + // setInterval(() => { + // viewer.entities.playAnimation('id', prev ? 'running' : 'idle') + // prev = !prev + // }, 1000) + + EntityMesh.getStaticData(this.params.entity) + // entityRotationFolder.destroy() + // entityRotationFolder = gui.addFolder('entity metadata') + // entityRotationFolder.add(params, 'entityRotate') + // entityRotationFolder.open() + }, + supportBlock: () => { + viewer.setBlockStateId(this.targetPos.offset(0, -1, 0), this.params.supportBlock ? 1 : 0) + }, + modelVariant: () => { + viewer.world.mesherConfig.debugModelVariant = this.params.modelVariant === 0 ? undefined : [this.params.modelVariant] + } + } + + entityUpdateShared () { + viewer.entities.clear() + if (!this.params.entity) return + worldView!.emit('entity', { + id: 'id', name: this.params.entity, pos: this.targetPos.offset(0.5, 1, 0.5), width: 1, height: 1, username: localStorage.testUsername, yaw: Math.PI, pitch: 0 + }) + const enableSkeletonDebug = (obj) => { + const { children, isSkeletonHelper } = obj + if (!Array.isArray(children)) return + if (isSkeletonHelper) { + obj.visible = true + return + } + for (const child of children) { + if (typeof child === 'object') enableSkeletonDebug(child) + } + } + enableSkeletonDebug(viewer.entities.entities['id']) + setTimeout(() => { + viewer.render() + }, TWEEN_DURATION) + } + + blockIsomorphicRenderBundle () { + const { renderer } = viewer + + const canvas = renderer.domElement + const onlyCurrent = !confirm('Ok - render all blocks, Cancel - render only current one') + const sizeRaw = prompt('Size', '512') + if (!sizeRaw) return + const size = parseInt(sizeRaw, 10) + // const size = 512 + + this.ignoreResize = true + canvas.width = size + canvas.height = size + renderer.setSize(size, size) + + viewer.camera = new THREE.OrthographicCamera(-1, 1, 1, -1, 0, 10) + viewer.scene.background = null + + const rad = THREE.MathUtils.degToRad(-120) + viewer.directionalLight.position.set( + Math.cos(rad), + Math.sin(rad), + 0.2 + ).normalize() + viewer.directionalLight.intensity = 1 + + const cameraPos = this.targetPos.offset(2, 2, 2) + const pitch = THREE.MathUtils.degToRad(-30) + const yaw = THREE.MathUtils.degToRad(45) + viewer.camera.rotation.set(pitch, yaw, 0, 'ZYX') + // viewer.camera.lookAt(center.x + 0.5, center.y + 0.5, center.z + 0.5) + viewer.camera.position.set(cameraPos.x + 1, cameraPos.y + 0.5, cameraPos.z + 1) + + const allBlocks = mcData.blocksArray.map(b => b.name) + // const allBlocks = ['stone', 'warped_slab'] + + let blockCount = 1 + let blockName = allBlocks[0] + + const updateBlock = () => { + // viewer.setBlockStateId(targetPos, mcData.blocksByName[blockName].minStateId) + this.params.block = blockName + // todo cleanup (introduce getDefaultState) + // TODO + // onUpdate.block() + // applyChanges(false, true) + } + void viewer.waitForChunksToRender().then(async () => { + // wait for next macro task + await new Promise(resolve => { + setTimeout(resolve, 0) + }) + if (onlyCurrent) { + viewer.render() + onWorldUpdate() + } else { + // will be called on every render update + viewer.world.renderUpdateEmitter.addListener('update', onWorldUpdate) + updateBlock() + } + }) + + const zip = new JSZip() + zip.file('description.txt', 'Generated with mcraft.fun/playground') + + const end = async () => { + // download zip file + + const a = document.createElement('a') + const blob = await zip.generateAsync({ type: 'blob' }) + const dataUrlZip = URL.createObjectURL(blob) + a.href = dataUrlZip + a.download = 'blocks_render.zip' + a.click() + URL.revokeObjectURL(dataUrlZip) + console.log('end') + + viewer.world.renderUpdateEmitter.removeListener('update', onWorldUpdate) + } + + async function onWorldUpdate () { + // await new Promise(resolve => { + // setTimeout(resolve, 50) + // }) + const dataUrl = canvas.toDataURL('image/png') + + zip.file(`${blockName}.png`, dataUrl.split(',')[1], { base64: true }) + + if (onlyCurrent) { + end() + } else { + nextBlock() + } + } + const nextBlock = async () => { + blockName = allBlocks[blockCount++] + console.log(allBlocks.length, '/', blockCount, blockName) + if (blockCount % 5 === 0) { + await new Promise(resolve => { + setTimeout(resolve, 100) + }) + } + if (blockName) { + updateBlock() + } else { + end() + } + } + } + + getBlock () { + return mcData.blocksByName[this.params.block || 'air'] + } + + // applyChanges (metadataUpdate = false, skipQs = false) { + override onParamsUpdate (paramName: string, object: any) { + const metadataUpdate = paramName === 'metadata' + + const blockId = this.getBlock()?.id + let block: import('prismarine-block').Block + if (metadataUpdate) { + block = new this.Block(blockId, 0, this.params.metadata) + Object.assign(this.blockProps, block.getProperties()) + for (const _child of this.metadataFolder!.children) { + const child = _child as import('lil-gui').Controller + child.updateDisplay() + } + } else { + try { + block = this.Block.fromProperties(blockId ?? -1, this.blockProps, 0) + } catch (err) { + console.error(err) + block = this.Block.fromStateId(0, 0) + } + } + + worldView!.setBlockStateId(this.targetPos, block.stateId ?? 0) + console.log('up stateId', block.stateId) + this.params.metadata = block.metadata + this.metadataGui.updateDisplay() + } + + override renderFinish () { + for (const update of Object.values(this.onParamUpdate)) { + // update(true) + update() + } + this.onParamsUpdate('', {}) + this.gui.openAnimated() + } +} + +export default MainScene diff --git a/renderer/playground/scenes/railsCobweb.ts b/renderer/playground/scenes/railsCobweb.ts new file mode 100644 index 00000000..bc1c271a --- /dev/null +++ b/renderer/playground/scenes/railsCobweb.ts @@ -0,0 +1,14 @@ +import { BasePlaygroundScene } from '../baseScene' + +export default class RailsCobwebScene extends BasePlaygroundScene { + setupWorld () { + this.addWorldBlock(0, 0, 0, 'cobweb') + this.addWorldBlock(0, -1, 0, 'cobweb') + this.addWorldBlock(1, -1, 0, 'cobweb') + this.addWorldBlock(1, 0, 0, 'cobweb') + + this.addWorldBlock(0, 0, 1, 'powered_rail', { shape: 'north_south', waterlogged: false }) + this.addWorldBlock(0, 0, 2, 'powered_rail', { shape: 'ascending_south', waterlogged: false }) + this.addWorldBlock(0, 1, 3, 'powered_rail', { shape: 'north_south', waterlogged: false }) + } +} diff --git a/renderer/playground/scenes/rotationIssue.ts b/renderer/playground/scenes/rotationIssue.ts new file mode 100644 index 00000000..2c56876a --- /dev/null +++ b/renderer/playground/scenes/rotationIssue.ts @@ -0,0 +1,7 @@ +import { BasePlaygroundScene } from '../baseScene' + +export default class RotationIssueScene extends BasePlaygroundScene { + setupWorld () { + // todo + } +} diff --git a/renderer/playground/scenes/slabsOptimization.ts b/renderer/playground/scenes/slabsOptimization.ts new file mode 100644 index 00000000..9035a777 --- /dev/null +++ b/renderer/playground/scenes/slabsOptimization.ts @@ -0,0 +1,15 @@ +import { BasePlaygroundScene } from '../baseScene' + +export default class extends BasePlaygroundScene { + expectedNumberOfFaces = 30 + + setupWorld () { + this.addWorldBlock(0, 1, 0, 'stone_slab') + this.addWorldBlock(0, 0, 0, 'stone') + this.addWorldBlock(0, -1, 0, 'stone_slab', { type: 'top', waterlogged: false }) + this.addWorldBlock(0, -1, -1, 'stone_slab', { type: 'top', waterlogged: false }) + this.addWorldBlock(0, -1, 1, 'stone_slab', { type: 'top', waterlogged: false }) + this.addWorldBlock(-1, -1, 0, 'stone_slab', { type: 'top', waterlogged: false }) + this.addWorldBlock(1, -1, 0, 'stone_slab', { type: 'top', waterlogged: false }) + } +} diff --git a/renderer/playground/scenes/transparencyIssue.ts b/renderer/playground/scenes/transparencyIssue.ts new file mode 100644 index 00000000..9ce1b967 --- /dev/null +++ b/renderer/playground/scenes/transparencyIssue.ts @@ -0,0 +1,11 @@ +import { BasePlaygroundScene } from '../baseScene' + +export default class extends BasePlaygroundScene { + setupWorld () { + this.addWorldBlock(0, 0, 0, 'water') + this.addWorldBlock(0, 1, 0, 'lime_stained_glass') + this.addWorldBlock(0, 0, -1, 'lime_stained_glass') + this.addWorldBlock(0, -1, 0, 'lime_stained_glass') + this.addWorldBlock(0, -1, -1, 'stone') + } +} diff --git a/renderer/playground/shared.ts b/renderer/playground/shared.ts new file mode 100644 index 00000000..9d12fae9 --- /dev/null +++ b/renderer/playground/shared.ts @@ -0,0 +1,79 @@ +import WorldLoader, { world } from 'prismarine-world' +import ChunkLoader from 'prismarine-chunk' + +export type BlockFaceType = { + side: number + textureIndex: number + tint?: [number, number, number] + isTransparent?: boolean + + // for testing + face?: string + neighbor?: string + light?: number +} + +export type BlockType = { + faces: BlockFaceType[] + + // for testing + block: string +} + +export const makeError = (str: string) => { + reportError?.(str) +} +export const makeErrorCritical = (str: string) => { + throw new Error(str) +} + +export const getSyncWorld = (version: string): world.WorldSync => { + const World = (WorldLoader as any)(version) + const Chunk = (ChunkLoader as any)(version) + + const world = new World(version).sync + + const methods = getAllMethods(world) + for (const method of methods) { + if (method.startsWith('set') && method !== 'setColumn') { + const oldMethod = world[method].bind(world) + world[method] = (...args) => { + const arg = args[0] + if (arg.x !== undefined && !world.getColumnAt(arg)) { + world.setColumn(Math.floor(arg.x / 16), Math.floor(arg.z / 16), new Chunk(undefined as any)) + } + oldMethod(...args) + } + } + } + + return world +} + +function getAllMethods (obj) { + const methods = new Set() + let currentObj = obj + + do { + for (const name of Object.getOwnPropertyNames(currentObj)) { + if (typeof obj[name] === 'function' && name !== 'constructor') { + methods.add(name) + } + } + } while ((currentObj = Object.getPrototypeOf(currentObj))) + + return [...methods] as string[] +} + +export const delayedIterator = async (arr: T[], delay: number, exec: (item: T, index: number) => Promise, chunkSize = 1) => { + // if delay is 0 then don't use setTimeout + for (let i = 0; i < arr.length; i += chunkSize) { + if (delay) { + // eslint-disable-next-line no-await-in-loop + await new Promise(resolve => { + setTimeout(resolve, delay) + }) + } + await exec(arr[i], i) + } +} diff --git a/renderer/rsbuild.config.ts b/renderer/rsbuild.config.ts new file mode 100644 index 00000000..2b40e79c --- /dev/null +++ b/renderer/rsbuild.config.ts @@ -0,0 +1,59 @@ +import { defineConfig, mergeRsbuildConfig, RsbuildPluginAPI } from '@rsbuild/core'; +import supportedVersions from '../src/supportedVersions.mjs' +import childProcess from 'child_process' +import path, { dirname, join } from 'path' +import { pluginReact } from '@rsbuild/plugin-react'; +import { pluginNodePolyfill } from '@rsbuild/plugin-node-polyfill'; +import fs from 'fs' +import fsExtra from 'fs-extra' +import { appAndRendererSharedConfig, rspackViewerConfig } from './rsbuildSharedConfig'; + +const mcDataPath = join(__dirname, '../generated/minecraft-data-optimized.json') + +// if (!fs.existsSync('./playground/textures')) { +// fsExtra.copySync('node_modules/mc-assets/dist/other-textures/latest/entity', './playground/textures/entity') +// } + +if (!fs.existsSync(mcDataPath)) { + childProcess.execSync('tsx ./scripts/makeOptimizedMcData.mjs', { stdio: 'inherit', cwd: path.join(__dirname, '..') }) +} + +export default mergeRsbuildConfig( + appAndRendererSharedConfig(), + defineConfig({ + html: { + template: join(__dirname, './playground.html'), + }, + output: { + cleanDistPath: false, + distPath: { + root: join(__dirname, './dist'), + }, + }, + server: { + port: 9090, + }, + source: { + entry: { + index: join(__dirname, './playground/playground.ts') + }, + define: { + 'globalThis.includedVersions': JSON.stringify(supportedVersions), + }, + }, + plugins: [ + { + name: 'test', + setup (build: RsbuildPluginAPI) { + const prep = async () => { + fsExtra.copySync(join(__dirname, '../node_modules/mc-assets/dist/other-textures/latest/entity'), join(__dirname, './dist/textures/entity')) + } + build.onBeforeBuild(async () => { + await prep() + }) + build.onBeforeStartDevServer(() => prep()) + }, + }, + ], + }) +) diff --git a/renderer/rsbuildSharedConfig.ts b/renderer/rsbuildSharedConfig.ts new file mode 100644 index 00000000..45da30b1 --- /dev/null +++ b/renderer/rsbuildSharedConfig.ts @@ -0,0 +1,124 @@ +import { defineConfig, ModifyRspackConfigUtils } from '@rsbuild/core'; +import { pluginNodePolyfill } from '@rsbuild/plugin-node-polyfill'; +import { pluginReact } from '@rsbuild/plugin-react'; +import path from 'path' +import fs from 'fs' + +export const appAndRendererSharedConfig = () => defineConfig({ + dev: { + progressBar: true, + writeToDisk: true, + watchFiles: { + paths: [ + path.join(__dirname, './dist/webgpuRendererWorker.js'), + path.join(__dirname, './dist/mesher.js'), + ] + }, + }, + output: { + polyfill: 'usage', + // 50kb limit for data uri + dataUriLimit: 50 * 1024, + assetPrefix: './', + }, + source: { + alias: { + fs: path.join(__dirname, `../src/shims/fs.js`), + http: 'http-browserify', + stream: 'stream-browserify', + net: 'net-browserify', + 'minecraft-protocol$': 'minecraft-protocol/src/index.js', + 'buffer$': 'buffer', + // avoid bundling, not used on client side + 'prismarine-auth': path.join(__dirname, `../src/shims/prismarineAuthReplacement.ts`), + perf_hooks: path.join(__dirname, `../src/shims/perf_hooks_replacement.js`), + crypto: path.join(__dirname, `../src/shims/crypto.js`), + dns: path.join(__dirname, `../src/shims/dns.js`), + yggdrasil: path.join(__dirname, `../src/shims/yggdrasilReplacement.ts`), + 'three$': 'three/src/Three.js', + 'stats.js$': 'stats.js/src/Stats.js', + }, + define: { + 'process.platform': '"browser"', + }, + decorators: { + version: 'legacy', // default is a lie + }, + }, + server: { + htmlFallback: false, + // publicDir: false, + headers: { + // enable shared array buffer + 'Cross-Origin-Opener-Policy': 'same-origin', + 'Cross-Origin-Embedder-Policy': 'require-corp', + }, + open: process.env.OPEN_BROWSER === 'true', + }, + plugins: [ + pluginReact(), + pluginNodePolyfill() + ], + tools: { + rspack (config, helpers) { + const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../package.json'), 'utf8')) + const hasFileProtocol = Object.values(packageJson.pnpm.overrides).some((dep) => (dep as string).startsWith('file:')) + if (hasFileProtocol) { + // enable node_modules watching + config.watchOptions.ignored = /\.git/ + } + rspackViewerConfig(config, helpers) + } + }, +}) + +export const rspackViewerConfig = (config, { appendPlugins, addRules, rspack }: ModifyRspackConfigUtils) => { + appendPlugins(new rspack.NormalModuleReplacementPlugin(/data|prismarine-physics/, (resource) => { + let absolute: string + const request = resource.request.replaceAll('\\', '/') + absolute = path.join(resource.context, request).replaceAll('\\', '/') + if (request.includes('minecraft-data/data/pc/1.') || request.includes('prismarine-physics')) { + console.log('Error: incompatible resource', request, 'from', resource.contextInfo.issuer) + process.exit(1) + // throw new Error(`${resource.request} was requested by ${resource.contextInfo.issuer}`) + } + if (absolute.endsWith('/minecraft-data/data.js')) { + resource.request = path.join(__dirname, `../src/shims/minecraftData.ts`) + } + if (absolute.endsWith('/minecraft-data/data/bedrock/common/legacy.json')) { + resource.request = path.join(__dirname, `../src/shims/empty.ts`) + } + if (absolute.endsWith('/minecraft-data/data/pc/common/legacy.json')) { + resource.request = path.join(__dirname, `../src/preflatMap.json`) + } + })) + addRules([ + { + test: /\.obj$/, + type: 'asset/source', + }, + { + test: /\.wgsl$/, + type: 'asset/source', + }, + { + test: /\.mp3$/, + type: 'asset/source', + }, + { + test: /\.txt$/, + type: 'asset/source', + }, + { + test: /\.log$/, + type: 'asset/source', + } + ]) + config.ignoreWarnings = [ + /the request of a dependency is an expression/, + /Unsupported pseudo class or element: xr-overlay/ + ] + if (process.env.SINGLE_FILE_BUILD === 'true') { + config.module!.parser!.javascript!.dynamicImportMode = 'eager' + } +} diff --git a/renderer/viewer/.gitignore b/renderer/viewer/.gitignore new file mode 100644 index 00000000..7ae1b2cd --- /dev/null +++ b/renderer/viewer/.gitignore @@ -0,0 +1,2 @@ +public/* +!public/.empty \ No newline at end of file diff --git a/renderer/viewer/baseGraphicsBackend.ts b/renderer/viewer/baseGraphicsBackend.ts new file mode 100644 index 00000000..486c930f --- /dev/null +++ b/renderer/viewer/baseGraphicsBackend.ts @@ -0,0 +1,27 @@ +import { proxy } from 'valtio' +import { NonReactiveState, RendererReactiveState } from '../../src/appViewer' + +export const getDefaultRendererState = (): { + reactive: RendererReactiveState + nonReactive: NonReactiveState +} => { + return { + reactive: proxy({ + world: { + chunksLoaded: new Set(), + heightmaps: new Map(), + allChunksLoaded: true, + mesherWork: false, + intersectMedia: null + }, + renderer: '', + preventEscapeMenu: false + }), + nonReactive: { + world: { + chunksLoaded: new Set(), + chunksTotalNumber: 0, + } + } + } +} diff --git a/renderer/viewer/common/utils.ts b/renderer/viewer/common/utils.ts new file mode 100644 index 00000000..958273f3 --- /dev/null +++ b/renderer/viewer/common/utils.ts @@ -0,0 +1,18 @@ +export const versionToNumber = (ver: string) => { + const [x, y = '0', z = '0'] = ver.split('.') + return +`${x.padStart(2, '0')}${y.padStart(2, '0')}${z.padStart(2, '0')}` +} + +export const versionToMajor = (version: string) => { + const [x, y = '0'] = version.split('.') + return `${x.padStart(2, '0')}.${y.padStart(2, '0')}` +} + +export const versionsMapToMajor = (versionsMap: Record) => { + const majorVersions = {} as Record + for (const [ver, data] of Object.entries(versionsMap)) { + const major = versionToMajor(ver) + majorVersions[major] = data + } + return majorVersions +} diff --git a/renderer/viewer/lib/DebugGui.ts b/renderer/viewer/lib/DebugGui.ts new file mode 100644 index 00000000..f296c873 --- /dev/null +++ b/renderer/viewer/lib/DebugGui.ts @@ -0,0 +1,174 @@ +// eslint-disable-next-line import/no-named-as-default +import GUI from 'lil-gui' + +export interface ParamMeta { + min?: number + max?: number + step?: number +} + +export class DebugGui { + private gui: GUI + private readonly storageKey: string + private target: any + private readonly params: string[] + private readonly paramsMeta: Record + private _visible = false // Default to not visible + private readonly initialValues: Record = {} // Store initial values + private initialized = false + + constructor (id: string, target: any, params?: string[], paramsMeta?: Record) { + this.gui = new GUI() + this.storageKey = `debug_params_${id}` + this.target = target + this.paramsMeta = paramsMeta ?? {} + this.params = params ?? Object.keys(target) + + // Store initial values + for (const param of this.params) { + this.initialValues[param] = target[param] + } + + // Hide by default + this.gui.domElement.style.display = 'none' + } + + // Initialize and show the GUI + activate () { + if (!this.initialized) { + this.loadSavedValues() + this.setupControls() + this.initialized = true + } + this.show() + return this + } + + // Getter for visibility + get visible (): boolean { + return this._visible + } + + // Setter for visibility + set visible (value: boolean) { + this._visible = value + this.gui.domElement.style.display = value ? 'block' : 'none' + this.saveVisibility() + } + + private loadSavedValues () { + try { + const saved = localStorage.getItem(this.storageKey) + if (saved) { + const values = JSON.parse(saved) + // Apply saved values to target + for (const param of this.params) { + if (param in values) { + const value = values[param] + if (value !== null) { + this.target[param] = value + } + } + } + } + } catch (e) { + console.warn('Failed to load debug values:', e) + } + } + + private saveValues (deleteKey = false) { + try { + const values = {} + for (const param of this.params) { + values[param] = this.target[param] + } + if (deleteKey) { + localStorage.removeItem(this.storageKey) + } else { + localStorage.setItem(this.storageKey, JSON.stringify(values)) + } + } catch (e) { + console.warn('Failed to save debug values:', e) + } + } + + private saveVisibility () { + try { + localStorage.setItem(`${this.storageKey}_visible`, this._visible.toString()) + } catch (e) { + console.warn('Failed to save debug visibility:', e) + } + } + + private setupControls () { + // Add visibility toggle at the top + this.gui.add(this, 'visible').name('Show Controls') + this.gui.add({ resetAll: () => { + for (const param of this.params) { + this.target[param] = this.initialValues[param] + } + this.saveValues(true) + this.gui.destroy() + this.gui = new GUI() + this.setupControls() + } }, 'resetAll').name('Reset All Parameters') + + for (const param of this.params) { + const value = this.target[param] + const meta = this.paramsMeta[param] ?? {} + + if (typeof value === 'number') { + // For numbers, use meta values or calculate reasonable defaults + const min = meta.min ?? value - Math.abs(value * 2) + const max = meta.max ?? value + Math.abs(value * 2) + const step = meta.step ?? Math.abs(value) / 100 + + this.gui.add(this.target, param, min, max, step) + .onChange(() => this.saveValues()) + } else if (typeof value === 'boolean') { + // For booleans, create a checkbox + this.gui.add(this.target, param) + .onChange(() => this.saveValues()) + } else if (typeof value === 'string' && ['x', 'y', 'z'].includes(param)) { + // Special case for xyz coordinates + const min = meta.min ?? -10 + const max = meta.max ?? 10 + const step = meta.step ?? 0.1 + + this.gui.add(this.target, param, min, max, step) + .onChange(() => this.saveValues()) + } else if (Array.isArray(value)) { + // For arrays, create a dropdown + this.gui.add(this.target, param, value) + .onChange(() => this.saveValues()) + } + } + } + + // Method to manually trigger save + save () { + this.saveValues() + this.saveVisibility() + } + + // Method to destroy the GUI and clean up + destroy () { + this.saveVisibility() + this.gui.destroy() + } + + // Toggle visibility + toggle () { + this.visible = !this.visible + } + + // Show the GUI + show () { + this.visible = true + } + + // Hide the GUI + hide () { + this.visible = false + } +} diff --git a/renderer/viewer/lib/animationController.ts b/renderer/viewer/lib/animationController.ts new file mode 100644 index 00000000..329d0e24 --- /dev/null +++ b/renderer/viewer/lib/animationController.ts @@ -0,0 +1,85 @@ +import * as tweenJs from '@tweenjs/tween.js' + +export class AnimationController { + private currentAnimation: tweenJs.Group | null = null + private isAnimating = false + private cancelRequested = false + private completionCallbacks: Array<() => void> = [] + private currentCancelCallback: (() => void) | null = null + + /** Main method */ + async startAnimation (createAnimation: () => tweenJs.Group, onCancelled?: () => void): Promise { + if (this.isAnimating) { + await this.cancelCurrentAnimation() + } + + return new Promise((resolve) => { + this.isAnimating = true + this.cancelRequested = false + this.currentCancelCallback = onCancelled ?? null + this.currentAnimation = createAnimation() + + this.completionCallbacks.push(() => { + this.isAnimating = false + this.currentAnimation = null + resolve() + }) + }) + } + + /** Main method */ + async cancelCurrentAnimation (): Promise { + if (!this.isAnimating) return + + if (this.currentCancelCallback) { + const callback = this.currentCancelCallback + this.currentCancelCallback = null + callback() + } + + return new Promise((resolve) => { + this.cancelRequested = true + this.completionCallbacks.push(() => { + resolve() + }) + }) + } + + animationCycleFinish () { + if (this.cancelRequested) this.forceFinish() + } + + forceFinish (callComplete = true) { + if (!this.isAnimating) return + + if (this.currentAnimation) { + for (const tween of this.currentAnimation.getAll()) tween.stop() + this.currentAnimation.removeAll() + this.currentAnimation = null + } + + this.isAnimating = false + this.cancelRequested = false + + const callbacks = [...this.completionCallbacks] + this.completionCallbacks = [] + if (callComplete) { + for (const cb of callbacks) cb() + } + } + + /** Required method */ + update () { + if (this.currentAnimation) { + this.currentAnimation.update() + } + } + + get isActive () { + return this.isAnimating + } + + get shouldCancel () { + return this.cancelRequested + } +} diff --git a/renderer/viewer/lib/basePlayerState.ts b/renderer/viewer/lib/basePlayerState.ts new file mode 100644 index 00000000..9cf1350a --- /dev/null +++ b/renderer/viewer/lib/basePlayerState.ts @@ -0,0 +1,87 @@ +import { ItemSelector } from 'mc-assets/dist/itemDefinitions' +import { GameMode, Team } from 'mineflayer' +import { proxy } from 'valtio' +import type { HandItemBlock } from '../three/holdingBlock' + +export type MovementState = 'NOT_MOVING' | 'WALKING' | 'SPRINTING' | 'SNEAKING' +export type ItemSpecificContextProperties = Partial> +export type CameraPerspective = 'first_person' | 'third_person_back' | 'third_person_front' + +export type BlockShape = { position: any; width: any; height: any; depth: any; } +export type BlocksShapes = BlockShape[] + +// edit src/mineflayer/playerState.ts for implementation of player state from mineflayer +export const getInitialPlayerState = () => proxy({ + playerSkin: undefined as string | undefined, + inWater: false, + waterBreathing: false, + backgroundColor: [0, 0, 0] as [number, number, number], + ambientLight: 0, + directionalLight: 0, + eyeHeight: 0, + gameMode: undefined as GameMode | undefined, + lookingAtBlock: undefined as { + x: number + y: number + z: number + face?: number + shapes: BlocksShapes + } | undefined, + diggingBlock: undefined as { + x: number + y: number + z: number + stage: number + face?: number + mergedShape: BlockShape | undefined + } | undefined, + movementState: 'NOT_MOVING' as MovementState, + onGround: true, + sneaking: false, + flying: false, + sprinting: false, + itemUsageTicks: 0, + username: '', + onlineMode: false, + lightingDisabled: false, + shouldHideHand: false, + heldItemMain: undefined as HandItemBlock | undefined, + heldItemOff: undefined as HandItemBlock | undefined, + perspective: 'first_person' as CameraPerspective, + onFire: false, + + cameraSpectatingEntity: undefined as number | undefined, + + team: undefined as Team | undefined, +}) + +export const getPlayerStateUtils = (reactive: PlayerStateReactive) => ({ + isSpectator () { + return reactive.gameMode === 'spectator' + }, + isSpectatingEntity () { + return reactive.cameraSpectatingEntity !== undefined && reactive.gameMode === 'spectator' + }, + isThirdPerson () { + if ((this as PlayerStateUtils).isSpectatingEntity()) return false + return reactive.perspective === 'third_person_back' || reactive.perspective === 'third_person_front' + } +}) + +export const getInitialPlayerStateRenderer = () => ({ + reactive: getInitialPlayerState() +}) + +export type PlayerStateReactive = ReturnType +export type PlayerStateUtils = ReturnType + +export type PlayerStateRenderer = PlayerStateReactive + +export const getItemSelector = (playerState: PlayerStateRenderer, specificProperties: ItemSpecificContextProperties, item?: import('prismarine-item').Item) => { + return { + ...specificProperties, + 'minecraft:date': new Date(), + // "minecraft:context_dimension": bot.entityp, + // 'minecraft:time': bot.time.timeOfDay / 24_000, + } +} diff --git a/renderer/viewer/lib/cameraBobbing.ts b/renderer/viewer/lib/cameraBobbing.ts new file mode 100644 index 00000000..6bf32c76 --- /dev/null +++ b/renderer/viewer/lib/cameraBobbing.ts @@ -0,0 +1,94 @@ +export class CameraBobbing { + private walkDistance = 0 + private prevWalkDistance = 0 + private bobAmount = 0 + private prevBobAmount = 0 + private readonly gameTimer = new GameTimer() + + // eslint-disable-next-line max-params + constructor ( + private readonly BOB_FREQUENCY: number = Math.PI, // How fast the bob cycles + private readonly BOB_BASE_AMPLITUDE: number = 0.5, // Base amplitude of the bob + private readonly VERTICAL_MULTIPLIER: number = 1, // Vertical movement multiplier + private readonly ROTATION_MULTIPLIER_Z: number = 3, // Roll rotation multiplier + private readonly ROTATION_MULTIPLIER_X: number = 5 // Pitch rotation multiplier + ) {} + + // Call this when player is moving + public updateWalkDistance (distance: number): void { + this.prevWalkDistance = this.walkDistance + this.walkDistance = distance + } + + // Call this when player is moving to update bob amount + public updateBobAmount (isMoving: boolean): void { + const targetBob = isMoving ? 1 : 0 + this.prevBobAmount = this.bobAmount + + // Update timing + const ticks = this.gameTimer.update() + const deltaTime = ticks / 20 // Convert ticks to seconds assuming 20 TPS + + // Smooth transition for bob amount + const bobDelta = (targetBob - this.bobAmount) * Math.min(1, deltaTime * 10) + this.bobAmount += bobDelta + } + + // Call this in your render/animation loop + public getBobbing (): { position: { x: number, y: number }, rotation: { x: number, z: number } } { + // Interpolate walk distance + const walkDist = this.prevWalkDistance + + (this.walkDistance - this.prevWalkDistance) * this.gameTimer.partialTick + + // Interpolate bob amount + const bob = this.prevBobAmount + + (this.bobAmount - this.prevBobAmount) * this.gameTimer.partialTick + + // Calculate total distance for bob cycle + const totalDist = -(walkDist * this.BOB_FREQUENCY) + + // Calculate offsets + const xOffset = Math.sin(totalDist) * bob * this.BOB_BASE_AMPLITUDE + const yOffset = -Math.abs(Math.cos(totalDist) * bob) * this.VERTICAL_MULTIPLIER + + // Calculate rotations (in radians) + const zRot = (Math.sin(totalDist) * bob * this.ROTATION_MULTIPLIER_Z) * (Math.PI / 180) + const xRot = (Math.abs(Math.cos(totalDist - 0.2) * bob) * this.ROTATION_MULTIPLIER_X) * (Math.PI / 180) + + return { + position: { x: xOffset, y: yOffset }, + rotation: { x: xRot, z: zRot } + } + } +} + +class GameTimer { + private readonly msPerTick: number + private lastMs: number + public partialTick = 0 + + constructor (tickRate = 20) { + this.msPerTick = 1000 / tickRate + this.lastMs = performance.now() + } + + update (): number { + const currentMs = performance.now() + const deltaSinceLastTick = currentMs - this.lastMs + + // Calculate how much of a tick has passed + const tickDelta = deltaSinceLastTick / this.msPerTick + this.lastMs = currentMs + + // Add to accumulated partial ticks + this.partialTick += tickDelta + + // Get whole number of ticks that should occur + const wholeTicks = Math.floor(this.partialTick) + + // Keep the remainder as the new partial tick + this.partialTick -= wholeTicks + + return wholeTicks + } +} diff --git a/renderer/viewer/lib/cleanupDecorator.ts b/renderer/viewer/lib/cleanupDecorator.ts new file mode 100644 index 00000000..79b35828 --- /dev/null +++ b/renderer/viewer/lib/cleanupDecorator.ts @@ -0,0 +1,29 @@ +export function buildCleanupDecorator (cleanupMethod: string) { + return function () { + return function (_target: { snapshotInitialValues }, propertyKey: string) { + const target = _target as any + // Store the initial value of the property + if (!target._snapshotMethodPatched) { + target.snapshotInitialValues = function () { + this._initialValues = {} + for (const key of target._toCleanup) { + this._initialValues[key] = this[key] + } + } + target._snapshotMethodPatched = true + } + (target._toCleanup ??= []).push(propertyKey) + if (!target._cleanupPatched) { + const originalMethod = target[cleanupMethod] + target[cleanupMethod] = function () { + for (const key of target._toCleanup) { + this[key] = this._initialValues[key] + } + // eslint-disable-next-line prefer-rest-params + Reflect.apply(originalMethod, this, arguments) + } + } + target._cleanupPatched = true + } + } +} diff --git a/renderer/viewer/lib/createPlayerObject.ts b/renderer/viewer/lib/createPlayerObject.ts new file mode 100644 index 00000000..836c8062 --- /dev/null +++ b/renderer/viewer/lib/createPlayerObject.ts @@ -0,0 +1,55 @@ +import { PlayerObject, PlayerAnimation } from 'skinview3d' +import * as THREE from 'three' +import { WalkingGeneralSwing } from '../three/entity/animations' +import { loadSkinImage, stevePngUrl } from './utils/skins' + +export type PlayerObjectType = PlayerObject & { + animation?: PlayerAnimation + realPlayerUuid: string + realUsername: string +} + +export function createPlayerObject (options: { + username?: string + uuid?: string + scale?: number +}): { + playerObject: PlayerObjectType + wrapper: THREE.Group + } { + const wrapper = new THREE.Group() + const playerObject = new PlayerObject() as PlayerObjectType + + playerObject.realPlayerUuid = options.uuid ?? '' + playerObject.realUsername = options.username ?? '' + playerObject.position.set(0, 16, 0) + + // fix issues with starfield + playerObject.traverse((obj) => { + if (obj instanceof THREE.Mesh && obj.material instanceof THREE.MeshStandardMaterial) { + obj.material.transparent = true + } + }) + + wrapper.add(playerObject as any) + const scale = options.scale ?? (1 / 16) + wrapper.scale.set(scale, scale, scale) + wrapper.rotation.set(0, Math.PI, 0) + + // Set up animation + playerObject.animation = new WalkingGeneralSwing() + ;(playerObject.animation as WalkingGeneralSwing).isMoving = false + playerObject.animation.update(playerObject, 0) + + return { playerObject, wrapper } +} + +export const applySkinToPlayerObject = async (playerObject: PlayerObjectType, skinUrl: string) => { + return loadSkinImage(skinUrl || stevePngUrl).then(({ canvas }) => { + const skinTexture = new THREE.CanvasTexture(canvas) + skinTexture.magFilter = THREE.NearestFilter + skinTexture.minFilter = THREE.NearestFilter + skinTexture.needsUpdate = true + playerObject.skin.map = skinTexture as any + }).catch(console.error) +} diff --git a/renderer/viewer/lib/guiRenderer.ts b/renderer/viewer/lib/guiRenderer.ts new file mode 100644 index 00000000..709941dc --- /dev/null +++ b/renderer/viewer/lib/guiRenderer.ts @@ -0,0 +1,282 @@ +// Import placeholders - replace with actual imports for your environment +import { ItemRenderer, Identifier, ItemStack, NbtString, Structure, StructureRenderer, ItemRendererResources, BlockDefinition, BlockModel, TextureAtlas, Resources, ItemModel } from 'deepslate' +import { mat4, vec3 } from 'gl-matrix' +import { AssetsParser } from 'mc-assets/dist/assetsParser' +import { getLoadedImage, versionToNumber } from 'mc-assets/dist/utils' +import { BlockModel as BlockModelMcAssets, AtlasParser } from 'mc-assets' +import { getLoadedBlockstatesStore, getLoadedModelsStore } from 'mc-assets/dist/stores' +import { makeTextureAtlas } from 'mc-assets/dist/atlasCreator' +import { proxy, ref } from 'valtio' +import { getItemDefinition } from 'mc-assets/dist/itemDefinitions' + +export const getNonFullBlocksModels = () => { + let version = appViewer.resourcesManager.currentResources!.version ?? 'latest' + if (versionToNumber(version) < versionToNumber('1.13')) version = '1.13' + const itemsDefinitions = appViewer.resourcesManager.itemsDefinitionsStore.data.latest + const blockModelsResolved = {} as Record + const itemsModelsResolved = {} as Record + const fullBlocksWithNonStandardDisplay = [] as string[] + const handledItemsWithDefinitions = new Set() + const assetsParser = new AssetsParser(version, getLoadedBlockstatesStore(appViewer.resourcesManager.currentResources!.blockstatesModels), getLoadedModelsStore(appViewer.resourcesManager.currentResources!.blockstatesModels)) + + const standardGuiDisplay = { + 'rotation': [ + 30, + 225, + 0 + ], + 'translation': [ + 0, + 0, + 0 + ], + 'scale': [ + 0.625, + 0.625, + 0.625 + ] + } + + const arrEqual = (a: number[], b: number[]) => a.length === b.length && a.every((x, i) => x === b[i]) + const addModelIfNotFullblock = (name: string, model: BlockModelMcAssets) => { + if (blockModelsResolved[name]) return + if (!model?.elements?.length) return + const isFullBlock = model.elements.length === 1 && arrEqual(model.elements[0].from, [0, 0, 0]) && arrEqual(model.elements[0].to, [16, 16, 16]) + if (isFullBlock) return + const hasBetterPrerender = assetsParser.blockModelsStore.data.latest[`item/${name}`]?.textures?.['layer0']?.startsWith('invsprite_') + if (hasBetterPrerender) return + model['display'] ??= {} + model['display']['gui'] ??= standardGuiDisplay + blockModelsResolved[name] = model + } + + for (const [name, definition] of Object.entries(itemsDefinitions)) { + const item = getItemDefinition(appViewer.resourcesManager.itemsDefinitionsStore, { + version, + name, + properties: { + 'minecraft:display_context': 'gui', + }, + }) + if (item) { + const { resolvedModel } = assetsParser.getResolvedModelsByModel((item.special ? name : item.model).replace('minecraft:', '')) ?? {} + if (resolvedModel) { + handledItemsWithDefinitions.add(name) + } + if (resolvedModel?.elements) { + let hasStandardDisplay = true + if (resolvedModel['display']?.gui) { + hasStandardDisplay = + arrEqual(resolvedModel['display'].gui.rotation, standardGuiDisplay.rotation) + && arrEqual(resolvedModel['display'].gui.translation, standardGuiDisplay.translation) + && arrEqual(resolvedModel['display'].gui.scale, standardGuiDisplay.scale) + } + + addModelIfNotFullblock(name, resolvedModel) + + if (!blockModelsResolved[name] && !hasStandardDisplay) { + fullBlocksWithNonStandardDisplay.push(name) + } + const notSideLight = resolvedModel['gui_light'] && resolvedModel['gui_light'] !== 'side' + if (!hasStandardDisplay || notSideLight) { + blockModelsResolved[name] = resolvedModel + } + } + if (!blockModelsResolved[name] && item.tints && resolvedModel) { + resolvedModel['tints'] = item.tints + if (resolvedModel.elements) { + blockModelsResolved[name] = resolvedModel + } else { + itemsModelsResolved[name] = resolvedModel + } + } + } + } + + for (const [name, blockstate] of Object.entries(appViewer.resourcesManager.currentResources!.blockstatesModels.blockstates.latest)) { + if (handledItemsWithDefinitions.has(name)) { + continue + } + const resolvedModel = assetsParser.getResolvedModelFirst({ name: name.replace('minecraft:', ''), properties: {} }, true) + if (resolvedModel) { + addModelIfNotFullblock(name, resolvedModel[0]) + } + } + + return { + blockModelsResolved, + itemsModelsResolved + } +} + +// customEvents.on('gameLoaded', () => { +// const res = getNonFullBlocksModels() +// }) + +const RENDER_SIZE = 64 + +const generateItemsGui = async (models: Record, isItems = false) => { + const { currentResources } = appViewer.resourcesManager + const imgBitmap = isItems ? currentResources!.itemsAtlasImage : currentResources!.blocksAtlasImage + const canvasTemp = document.createElement('canvas') + canvasTemp.width = imgBitmap.width + canvasTemp.height = imgBitmap.height + canvasTemp.style.imageRendering = 'pixelated' + const ctx = canvasTemp.getContext('2d')! + ctx.imageSmoothingEnabled = false + ctx.drawImage(imgBitmap, 0, 0) + + const atlasParser = isItems ? appViewer.resourcesManager.itemsAtlasParser : appViewer.resourcesManager.blocksAtlasParser + const textureAtlas = new TextureAtlas( + ctx.getImageData(0, 0, imgBitmap.width, imgBitmap.height), + Object.fromEntries(Object.entries(atlasParser.atlas.latest.textures).map(([key, value]) => { + return [key, [ + value.u, + value.v, + (value.u + (value.su ?? atlasParser.atlas.latest.suSv)), + (value.v + (value.sv ?? atlasParser.atlas.latest.suSv)), + ]] as [string, [number, number, number, number]] + })) + ) + + const PREVIEW_ID = Identifier.parse('preview:preview') + const PREVIEW_DEFINITION = new BlockDefinition({ '': { model: PREVIEW_ID.toString() } }, undefined) + + let textureWasRequested = false + let modelData: any + let currentModelName: string | undefined + const resources: ItemRendererResources = { + getBlockModel (id) { + if (id.equals(PREVIEW_ID)) { + return BlockModel.fromJson(modelData ?? {}) + } + return null + }, + getTextureUV (texture) { + textureWasRequested = true + return textureAtlas.getTextureUV(texture.toString().replace('minecraft:', '').replace('block/', '').replace('item/', '').replace('blocks/', '').replace('items/', '') as any) + }, + getTextureAtlas () { + return textureAtlas.getTextureAtlas() + }, + getItemComponents (id) { + return new Map() + }, + getItemModel (id) { + // const isSpecial = currentModelName === 'shield' || currentModelName === 'conduit' || currentModelName === 'trident' + const isSpecial = false + if (id.equals(PREVIEW_ID)) { + return ItemModel.fromJson({ + type: isSpecial ? 'minecraft:special' : 'minecraft:model', + model: isSpecial ? { + type: currentModelName, + } : PREVIEW_ID.toString(), + base: PREVIEW_ID.toString(), + tints: modelData?.tints, + }) + } + return null + }, + } + + const canvas = document.createElement('canvas') + canvas.width = RENDER_SIZE + canvas.height = RENDER_SIZE + const gl = canvas.getContext('webgl2', { preserveDrawingBuffer: true }) + if (!gl) { + throw new Error('Cannot get WebGL2 context') + } + + function resetGLContext (gl) { + gl.clearColor(0, 0, 0, 0) + gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT | gl.STENCIL_BUFFER_BIT) + } + + // const includeOnly = ['powered_repeater', 'wooden_door'] + const includeOnly = [] as string[] + + const images: Record = {} + const item = new ItemStack(PREVIEW_ID, 1, new Map(Object.entries({ + 'minecraft:item_model': new NbtString(PREVIEW_ID.toString()), + }))) + const renderer = new ItemRenderer(gl, item, resources, { display_context: 'gui' }) + const missingTextures = new Set() + for (const [modelName, model] of Object.entries(models)) { + textureWasRequested = false + if (includeOnly.length && !includeOnly.includes(modelName)) continue + + const patchMissingTextures = () => { + for (const element of model.elements ?? []) { + for (const [faceName, face] of Object.entries(element.faces)) { + if (face.texture.startsWith('#')) { + missingTextures.add(`${modelName} ${faceName}: ${face.texture}`) + face.texture = 'block/unknown' + } + } + } + } + patchMissingTextures() + // TODO eggs + + modelData = model + currentModelName = modelName + resetGLContext(gl) + if (!modelData) continue + renderer.setItem(item, { display_context: 'gui' }) + renderer.drawItem() + if (!textureWasRequested) continue + const url = canvas.toDataURL() + // eslint-disable-next-line no-await-in-loop + const img = await getLoadedImage(url) + images[modelName] = img + } + + if (missingTextures.size) { + console.warn(`[guiRenderer] Missing textures in ${[...missingTextures].join(', ')}`) + } + + return images +} + +/** + * @mainThread + */ +const generateAtlas = async (images: Record) => { + const atlas = makeTextureAtlas({ + input: Object.keys(images), + tileSize: RENDER_SIZE, + getLoadedImage (name) { + return { + image: images[name], + } + }, + }) + + // const atlasParser = new AtlasParser({ latest: atlas.json }, atlas.canvas.toDataURL()) + // const a = document.createElement('a') + // a.href = await atlasParser.createDebugImage(true) + // a.download = 'blocks_atlas.png' + // a.click() + + appViewer.resourcesManager.currentResources!.guiAtlas = { + json: atlas.json, + image: await createImageBitmap(atlas.canvas), + } + + return atlas +} + +export const generateGuiAtlas = async () => { + const { blockModelsResolved, itemsModelsResolved } = getNonFullBlocksModels() + + // Generate blocks atlas + console.time('generate blocks gui atlas') + const blockImages = await generateItemsGui(blockModelsResolved, false) + console.timeEnd('generate blocks gui atlas') + console.time('generate items gui atlas') + const itemImages = await generateItemsGui(itemsModelsResolved, true) + console.timeEnd('generate items gui atlas') + await generateAtlas({ ...blockImages, ...itemImages }) + appViewer.resourcesManager.currentResources!.guiAtlasVersion++ + // await generateAtlas(blockImages) +} diff --git a/renderer/viewer/lib/mesher/mesher.ts b/renderer/viewer/lib/mesher/mesher.ts new file mode 100644 index 00000000..a063d77f --- /dev/null +++ b/renderer/viewer/lib/mesher/mesher.ts @@ -0,0 +1,239 @@ +import { Vec3 } from 'vec3' +import { World } from './world' +import { getSectionGeometry, setBlockStatesData as setMesherData } from './models' +import { BlockStateModelInfo } from './shared' +import { INVISIBLE_BLOCKS } from './worldConstants' + +globalThis.structuredClone ??= (value) => JSON.parse(JSON.stringify(value)) + +if (module.require) { + // If we are in a node environement, we need to fake some env variables + const r = module.require + const { parentPort } = r('worker_threads') + global.self = parentPort + global.postMessage = (value, transferList) => { parentPort.postMessage(value, transferList) } + global.performance = r('perf_hooks').performance +} + +let workerIndex = 0 +let world: World +let dirtySections = new Map() +let allDataReady = false + +function sectionKey (x, y, z) { + return `${x},${y},${z}` +} + +const batchMessagesLimit = 100 + +let queuedMessages = [] as any[] +let queueWaiting = false +const postMessage = (data, transferList = []) => { + queuedMessages.push({ data, transferList }) + if (queuedMessages.length > batchMessagesLimit) { + drainQueue(0, batchMessagesLimit) + } + if (queueWaiting) return + queueWaiting = true + setTimeout(() => { + queueWaiting = false + drainQueue(0, queuedMessages.length) + }) +} + +function drainQueue (from, to) { + const messages = queuedMessages.slice(from, to) + global.postMessage(messages.map(m => m.data), messages.flatMap(m => m.transferList) as unknown as string) + queuedMessages = queuedMessages.slice(to) +} + +function setSectionDirty (pos, value = true) { + const x = Math.floor(pos.x / 16) * 16 + const y = Math.floor(pos.y / 16) * 16 + const z = Math.floor(pos.z / 16) * 16 + const key = sectionKey(x, y, z) + if (!value) { + dirtySections.delete(key) + postMessage({ type: 'sectionFinished', key, workerIndex }) + return + } + + const chunk = world.getColumn(x, z) + if (chunk?.getSection(pos)) { + dirtySections.set(key, (dirtySections.get(key) || 0) + 1) + } else { + postMessage({ type: 'sectionFinished', key, workerIndex }) + } +} + +const softCleanup = () => { + // clean block cache and loaded chunks + world = new World(world.config.version) + globalThis.world = world +} + +const handleMessage = data => { + const globalVar: any = globalThis + + if (data.type === 'mcData') { + globalVar.mcData = data.mcData + globalVar.loadedData = data.mcData + } + + if (data.config) { + if (data.type === 'mesherData' && world) { + // reset models + world.blockCache = {} + world.erroredBlockModel = undefined + } + + world ??= new World(data.config.version) + world.config = { ...world.config, ...data.config } + globalThis.world = world + globalThis.Vec3 = Vec3 + } + + switch (data.type) { + case 'mesherData': { + setMesherData(data.blockstatesModels, data.blocksAtlas, data.config.outputFormat === 'webgpu') + allDataReady = true + workerIndex = data.workerIndex + + break + } + case 'dirty': { + const loc = new Vec3(data.x, data.y, data.z) + setSectionDirty(loc, data.value) + + break + } + case 'chunk': { + world.addColumn(data.x, data.z, data.chunk) + if (data.customBlockModels) { + const chunkKey = `${data.x},${data.z}` + world.customBlockModels.set(chunkKey, data.customBlockModels) + } + break + } + case 'unloadChunk': { + world.removeColumn(data.x, data.z) + world.customBlockModels.delete(`${data.x},${data.z}`) + if (Object.keys(world.columns).length === 0) softCleanup() + break + } + case 'blockUpdate': { + const loc = new Vec3(data.pos.x, data.pos.y, data.pos.z).floored() + if (data.stateId !== undefined && data.stateId !== null) { + world?.setBlockStateId(loc, data.stateId) + } + + const chunkKey = `${Math.floor(loc.x / 16) * 16},${Math.floor(loc.z / 16) * 16}` + if (data.customBlockModels) { + world?.customBlockModels.set(chunkKey, data.customBlockModels) + } + break + } + case 'reset': { + world = undefined as any + // blocksStates = null + dirtySections = new Map() + // todo also remove cached + globalVar.mcData = null + globalVar.loadedData = null + allDataReady = false + + break + } + case 'getCustomBlockModel': { + const pos = new Vec3(data.pos.x, data.pos.y, data.pos.z) + const chunkKey = `${Math.floor(pos.x / 16) * 16},${Math.floor(pos.z / 16) * 16}` + const customBlockModel = world.customBlockModels.get(chunkKey)?.[`${pos.x},${pos.y},${pos.z}`] + global.postMessage({ type: 'customBlockModel', chunkKey, customBlockModel }) + break + } + case 'getHeightmap': { + const heightmap = new Uint8Array(256) + + const blockPos = new Vec3(0, 0, 0) + for (let z = 0; z < 16; z++) { + for (let x = 0; x < 16; x++) { + const blockX = x + data.x + const blockZ = z + data.z + blockPos.x = blockX + blockPos.z = blockZ + blockPos.y = world.config.worldMaxY + let block = world.getBlock(blockPos) + while (block && INVISIBLE_BLOCKS.has(block.name) && blockPos.y > world.config.worldMinY) { + blockPos.y -= 1 + block = world.getBlock(blockPos) + } + const index = z * 16 + x + heightmap[index] = block ? blockPos.y : 0 + } + } + postMessage({ type: 'heightmap', key: `${Math.floor(data.x / 16)},${Math.floor(data.z / 16)}`, heightmap }) + + break + } + // No default + } +} + +// eslint-disable-next-line no-restricted-globals -- TODO +self.onmessage = ({ data }) => { + if (Array.isArray(data)) { + // eslint-disable-next-line unicorn/no-array-for-each + data.forEach(handleMessage) + return + } + + handleMessage(data) +} + +setInterval(() => { + if (world === null || !allDataReady) return + + if (dirtySections.size === 0) return + // console.log(sections.length + ' dirty sections') + + // const start = performance.now() + for (const key of dirtySections.keys()) { + const [x, y, z] = key.split(',').map(v => parseInt(v, 10)) + const chunk = world.getColumn(x, z) + let processTime = 0 + if (chunk?.getSection(new Vec3(x, y, z))) { + const start = performance.now() + const geometry = getSectionGeometry(x, y, z, world) + const transferable = [geometry.positions?.buffer, geometry.normals?.buffer, geometry.colors?.buffer, geometry.uvs?.buffer].filter(Boolean) + //@ts-expect-error + postMessage({ type: 'geometry', key, geometry, workerIndex }, transferable) + processTime = performance.now() - start + } else { + // console.info('[mesher] Missing section', x, y, z) + } + const dirtyTimes = dirtySections.get(key) + if (!dirtyTimes) throw new Error('dirtySections.get(key) is falsy') + for (let i = 0; i < dirtyTimes; i++) { + postMessage({ type: 'sectionFinished', key, workerIndex, processTime }) + processTime = 0 + } + dirtySections.delete(key) + } + + // Send new block state model info if any + if (world.blockStateModelInfo.size > 0) { + const newBlockStateInfo: Record = {} + for (const [cacheKey, info] of world.blockStateModelInfo) { + if (!world.sentBlockStateModels.has(cacheKey)) { + newBlockStateInfo[cacheKey] = info + world.sentBlockStateModels.add(cacheKey) + } + } + if (Object.keys(newBlockStateInfo).length > 0) { + postMessage({ type: 'blockStateModelInfo', info: newBlockStateInfo }) + } + } + + // const time = performance.now() - start + // console.log(`Processed ${sections.length} sections in ${time} ms (${time / sections.length} ms/section)`) +}, 50) diff --git a/renderer/viewer/lib/mesher/models.ts b/renderer/viewer/lib/mesher/models.ts new file mode 100644 index 00000000..aca47e15 --- /dev/null +++ b/renderer/viewer/lib/mesher/models.ts @@ -0,0 +1,745 @@ +import { Vec3 } from 'vec3' +import worldBlockProvider, { WorldBlockProvider } from 'mc-assets/dist/worldBlockProvider' +import legacyJson from '../../../../src/preflatMap.json' +import { BlockType } from '../../../playground/shared' +import { World, BlockModelPartsResolved, WorldBlock as Block, WorldBlock } from './world' +import { BlockElement, buildRotationMatrix, elemFaces, matmul3, matmulmat3, vecadd3, vecsub3 } from './modelsGeometryCommon' +import { INVISIBLE_BLOCKS } from './worldConstants' +import { MesherGeometryOutput, HighestBlockInfo } from './shared' + + +let blockProvider: WorldBlockProvider + +const tints: any = {} +let needTiles = false + +let tintsData +try { + tintsData = require('esbuild-data').tints +} catch (err) { + tintsData = require('minecraft-data/minecraft-data/data/pc/1.16.2/tints.json') +} +for (const key of Object.keys(tintsData)) { + tints[key] = prepareTints(tintsData[key]) +} + +type Tiles = { + [blockPos: string]: BlockType +} + +function prepareTints (tints) { + const map = new Map() + const defaultValue = tintToGl(tints.default) + for (let { keys, color } of tints.data) { + color = tintToGl(color) + for (const key of keys) { + map.set(`${key}`, color) + } + } + return new Proxy(map, { + get (target, key) { + return target.has(key) ? target.get(key) : defaultValue + } + }) +} + +const calculatedBlocksEntries = Object.entries(legacyJson.clientCalculatedBlocks) +export function preflatBlockCalculation (block: Block, world: World, position: Vec3) { + const type = calculatedBlocksEntries.find(([name, blocks]) => blocks.includes(block.name))?.[0] + if (!type) return + switch (type) { + case 'directional': { + const isSolidConnection = !block.name.includes('redstone') && !block.name.includes('tripwire') + const neighbors = [ + world.getBlock(position.offset(0, 0, 1)), + world.getBlock(position.offset(0, 0, -1)), + world.getBlock(position.offset(1, 0, 0)), + world.getBlock(position.offset(-1, 0, 0)) + ] + // set needed props to true: east:'false',north:'false',south:'false',west:'false' + const props = {} + let changed = false + for (const [i, neighbor] of neighbors.entries()) { + const isConnectedToSolid = isSolidConnection ? (neighbor && !neighbor.transparent) : false + if (isConnectedToSolid || neighbor?.name === block.name) { + props[['south', 'north', 'east', 'west'][i]] = 'true' + changed = true + } + } + return changed ? props : undefined + } + // case 'gate_in_wall': {} + case 'block_snowy': { + const aboveIsSnow = world.getBlock(position.offset(0, 1, 0))?.name === 'snow' + if (aboveIsSnow) { + return { + snowy: `${aboveIsSnow}` + } + } else { + return + } + } + case 'door': { + // upper half matches lower in + const { half } = block.getProperties() + if (half === 'upper') { + // copy other properties + const lower = world.getBlock(position.offset(0, -1, 0)) + if (lower?.name === block.name) { + return { + ...lower.getProperties(), + half: 'upper' + } + } + } + } + } +} + +function tintToGl (tint) { + const r = (tint >> 16) & 0xff + const g = (tint >> 8) & 0xff + const b = tint & 0xff + return [r / 255, g / 255, b / 255] +} + +function getLiquidRenderHeight (world: World, block: WorldBlock | null, type: number, pos: Vec3, isWater: boolean, isRealWater: boolean) { + if ((isWater && !isRealWater) || (block && isBlockWaterlogged(block))) return 8 / 9 + if (!block || block.type !== type) return 1 / 9 + if (block.metadata === 0) { // source block + const blockAbove = world.getBlock(pos.offset(0, 1, 0)) + if (blockAbove && blockAbove.type === type) return 1 + return 8 / 9 + } + return ((block.metadata >= 8 ? 8 : 7 - block.metadata) + 1) / 9 +} + + +const isCube = (block: Block) => { + if (!block || block.transparent) return false + if (block.isCube) return true + if (!block.models?.length || block.models.length !== 1) return false + // all variants + return block.models[0].every(v => v.elements.every(e => { + return e.from[0] === 0 && e.from[1] === 0 && e.from[2] === 0 && e.to[0] === 16 && e.to[1] === 16 && e.to[2] === 16 + })) +} + +const getVec = (v: Vec3, dir: Vec3) => { + for (const coord of ['x', 'y', 'z']) { + if (Math.abs(dir[coord]) > 0) v[coord] = 0 + } + return v.plus(dir) +} + +function renderLiquid (world: World, cursor: Vec3, texture: any | undefined, type: number, biome: string, water: boolean, attr: MesherGeometryOutput, isRealWater: boolean) { + const heights: number[] = [] + for (let z = -1; z <= 1; z++) { + for (let x = -1; x <= 1; x++) { + const pos = cursor.offset(x, 0, z) + heights.push(getLiquidRenderHeight(world, world.getBlock(pos), type, pos, water, isRealWater)) + } + } + const cornerHeights = [ + Math.max(Math.max(heights[0], heights[1]), Math.max(heights[3], heights[4])), + Math.max(Math.max(heights[1], heights[2]), Math.max(heights[4], heights[5])), + Math.max(Math.max(heights[3], heights[4]), Math.max(heights[6], heights[7])), + Math.max(Math.max(heights[4], heights[5]), Math.max(heights[7], heights[8])) + ] + + // eslint-disable-next-line guard-for-in + for (const face in elemFaces) { + const { dir, corners, mask1, mask2 } = elemFaces[face] + const isUp = dir[1] === 1 + + const neighborPos = cursor.offset(...dir as [number, number, number]) + const neighbor = world.getBlock(neighborPos) + if (!neighbor) continue + if (neighbor.type === type || (water && (neighbor.name === 'water' || isBlockWaterlogged(neighbor)))) continue + if (isCube(neighbor) && !isUp) continue + + let tint = [1, 1, 1] + if (water) { + let m = 1 // Fake lighting to improve lisibility + if (Math.abs(dir[0]) > 0) m = 0.6 + else if (Math.abs(dir[2]) > 0) m = 0.8 + tint = tints.water[biome] + tint = [tint[0] * m, tint[1] * m, tint[2] * m] + } + + if (needTiles) { + const tiles = attr.tiles as Tiles + tiles[`${cursor.x},${cursor.y},${cursor.z}`] ??= { + block: 'water', + faces: [], + } + tiles[`${cursor.x},${cursor.y},${cursor.z}`].faces.push({ + face, + neighbor: `${neighborPos.x},${neighborPos.y},${neighborPos.z}`, + side: 0, // todo + textureIndex: 0, + // texture: eFace.texture.name, + }) + } + + const { u } = texture + const { v } = texture + const { su } = texture + const { sv } = texture + + // Get base light value for the face + const baseLight = world.getLight(neighborPos, undefined, undefined, water ? 'water' : 'lava') / 15 + + for (const pos of corners) { + const height = cornerHeights[pos[2] * 2 + pos[0]] + const OFFSET = 0.0001 + attr.t_positions!.push( + (pos[0] ? 1 - OFFSET : OFFSET) + (cursor.x & 15) - 8, + (pos[1] ? height - OFFSET : OFFSET) + (cursor.y & 15) - 8, + (pos[2] ? 1 - OFFSET : OFFSET) + (cursor.z & 15) - 8 + ) + attr.t_normals!.push(...dir) + attr.t_uvs!.push(pos[3] * su + u, pos[4] * sv * (pos[1] ? 1 : height) + v) + + let cornerLightResult = baseLight + if (world.config.smoothLighting) { + const dx = pos[0] * 2 - 1 + const dy = pos[1] * 2 - 1 + const dz = pos[2] * 2 - 1 + const cornerDir: [number, number, number] = [dx, dy, dz] + const side1Dir: [number, number, number] = [dx * mask1[0], dy * mask1[1], dz * mask1[2]] + const side2Dir: [number, number, number] = [dx * mask2[0], dy * mask2[1], dz * mask2[2]] + + const dirVec = new Vec3(...dir as [number, number, number]) + + const side1LightDir = getVec(new Vec3(...side1Dir), dirVec) + const side1Light = world.getLight(cursor.plus(side1LightDir)) / 15 + const side2DirLight = getVec(new Vec3(...side2Dir), dirVec) + const side2Light = world.getLight(cursor.plus(side2DirLight)) / 15 + const cornerLightDir = getVec(new Vec3(...cornerDir), dirVec) + const cornerLight = world.getLight(cursor.plus(cornerLightDir)) / 15 + // interpolate + const lights = [side1Light, side2Light, cornerLight, baseLight] + cornerLightResult = lights.reduce((acc, cur) => acc + cur, 0) / lights.length + } + + // Apply light value to tint + attr.t_colors!.push(tint[0] * cornerLightResult, tint[1] * cornerLightResult, tint[2] * cornerLightResult) + } + } +} + +const identicalCull = (currentElement: BlockElement, neighbor: Block, direction: Vec3) => { + const dirStr = `${direction.x},${direction.y},${direction.z}` + const lookForOppositeSide = { + '0,1,0': 'down', + '0,-1,0': 'up', + '1,0,0': 'east', + '-1,0,0': 'west', + '0,0,1': 'south', + '0,0,-1': 'north', + }[dirStr]! + const elemCompareForm = { + '0,1,0': (e: BlockElement) => `${e.from[0]},${e.from[2]}:${e.to[0]},${e.to[2]}`, + '0,-1,0': (e: BlockElement) => `${e.to[0]},${e.to[2]}:${e.from[0]},${e.from[2]}`, + '1,0,0': (e: BlockElement) => `${e.from[2]},${e.from[1]}:${e.to[2]},${e.to[1]}`, + '-1,0,0': (e: BlockElement) => `${e.to[2]},${e.to[1]}:${e.from[2]},${e.from[1]}`, + '0,0,1': (e: BlockElement) => `${e.from[1]},${e.from[2]}:${e.to[1]},${e.to[2]}`, + '0,0,-1': (e: BlockElement) => `${e.to[1]},${e.to[2]}:${e.from[1]},${e.from[2]}`, + }[dirStr]! + const elementEdgeValidator = { + '0,1,0': (e: BlockElement) => currentElement.from[1] === 0 && e.to[2] === 16, + '0,-1,0': (e: BlockElement) => currentElement.from[1] === 0 && e.to[2] === 16, + '1,0,0': (e: BlockElement) => currentElement.from[0] === 0 && e.to[1] === 16, + '-1,0,0': (e: BlockElement) => currentElement.from[0] === 0 && e.to[1] === 16, + '0,0,1': (e: BlockElement) => currentElement.from[2] === 0 && e.to[0] === 16, + '0,0,-1': (e: BlockElement) => currentElement.from[2] === 0 && e.to[0] === 16, + }[dirStr]! + const useVar = 0 + const models = neighbor.models?.map(m => m[useVar] ?? m[0]) ?? [] + // TODO we should support it! rewrite with optimizing general pipeline + if (models.some(m => m.x || m.y || m.z)) return + return models.every(model => { + return (model.elements ?? []).every(element => { + // todo check alfa on texture + return !!(element.faces[lookForOppositeSide]?.cullface && elemCompareForm(currentElement) === elemCompareForm(element) && elementEdgeValidator(element)) + }) + }) +} + +let needSectionRecomputeOnChange = false + +function renderElement (world: World, cursor: Vec3, element: BlockElement, doAO: boolean, attr: MesherGeometryOutput, globalMatrix: any, globalShift: any, block: Block, biome: string) { + const position = cursor + // const key = `${position.x},${position.y},${position.z}` + // if (!globalThis.allowedBlocks.includes(key)) return + const cullIfIdentical = block.name.includes('glass') || block.name.includes('ice') + + // eslint-disable-next-line guard-for-in + for (const face in element.faces) { + const eFace = element.faces[face] + const { corners, mask1, mask2, side } = elemFaces[face] + const dir = matmul3(globalMatrix, elemFaces[face].dir) + + if (eFace.cullface) { + const neighbor = world.getBlock(cursor.plus(new Vec3(...dir)), blockProvider, {}) + if (neighbor) { + if (cullIfIdentical && neighbor.stateId === block.stateId) continue + if (!neighbor.transparent && (isCube(neighbor) || identicalCull(element, neighbor, new Vec3(...dir)))) continue + } else { + needSectionRecomputeOnChange = true + // continue + } + } + + const minx = element.from[0] + const miny = element.from[1] + const minz = element.from[2] + const maxx = element.to[0] + const maxy = element.to[1] + const maxz = element.to[2] + + const texture = eFace.texture as any + const { u } = texture + const { v } = texture + const { su } = texture + const { sv } = texture + + const ndx = Math.floor(attr.positions.length / 3) + + let tint = [1, 1, 1] + if (eFace.tintindex !== undefined) { + if (eFace.tintindex === 0) { + if (block.name === 'redstone_wire') { + tint = tints.redstone[`${block.getProperties().power}`] + } else if (block.name === 'birch_leaves' || + block.name === 'spruce_leaves' || + block.name === 'lily_pad') { + tint = tints.constant[block.name] + } else if (block.name.includes('leaves') || block.name === 'vine') { + tint = tints.foliage[biome] + } else { + tint = tints.grass[biome] + } + } + } + + // UV rotation + let r = eFace.rotation || 0 + if (face === 'down') { + r += 180 + } + const uvcs = Math.cos(r * Math.PI / 180) + const uvsn = -Math.sin(r * Math.PI / 180) + + let localMatrix = null as any + let localShift = null as any + + if (element.rotation && !needTiles) { + // Rescale support for block model rotations + localMatrix = buildRotationMatrix( + element.rotation.axis, + element.rotation.angle + ) + + localShift = vecsub3( + element.rotation.origin, + matmul3( + localMatrix, + element.rotation.origin + ) + ) + + // Apply rescale if specified + if (element.rotation.rescale) { + const FIT_TO_BLOCK_SCALE_MULTIPLIER = 2 - Math.sqrt(2) + const angleRad = element.rotation.angle * Math.PI / 180 + const scale = Math.abs(Math.sin(angleRad)) * FIT_TO_BLOCK_SCALE_MULTIPLIER + + // Get axis vector components (1 for the rotation axis, 0 for others) + const axisX = element.rotation.axis === 'x' ? 1 : 0 + const axisY = element.rotation.axis === 'y' ? 1 : 0 + const axisZ = element.rotation.axis === 'z' ? 1 : 0 + + // Create scale matrix: scale = (1 - axisComponent) * scaleFactor + 1 + const scaleMatrix = [ + [(1 - axisX) * scale + 1, 0, 0], + [0, (1 - axisY) * scale + 1, 0], + [0, 0, (1 - axisZ) * scale + 1] + ] + + // Apply scaling to the transformation matrix + localMatrix = matmulmat3(localMatrix, scaleMatrix) + + // Recalculate shift with the new matrix + localShift = vecsub3( + element.rotation.origin, + matmul3( + localMatrix, + element.rotation.origin + ) + ) + } + } + + const aos: number[] = [] + const neighborPos = position.plus(new Vec3(...dir)) + // 10% + const baseLight = world.getLight(neighborPos, undefined, undefined, block.name) / 15 + for (const pos of corners) { + let vertex = [ + (pos[0] ? maxx : minx), + (pos[1] ? maxy : miny), + (pos[2] ? maxz : minz) + ] + + if (!needTiles) { // 10% + vertex = vecadd3(matmul3(localMatrix, vertex), localShift) + vertex = vecadd3(matmul3(globalMatrix, vertex), globalShift) + vertex = vertex.map(v => v / 16) + + attr.positions.push( + vertex[0] + (cursor.x & 15) - 8, + vertex[1] + (cursor.y & 15) - 8, + vertex[2] + (cursor.z & 15) - 8 + ) + + attr.normals.push(...dir) + + const baseu = (pos[3] - 0.5) * uvcs - (pos[4] - 0.5) * uvsn + 0.5 + const basev = (pos[3] - 0.5) * uvsn + (pos[4] - 0.5) * uvcs + 0.5 + attr.uvs.push(baseu * su + u, basev * sv + v) + } + + let light = 1 + const { smoothLighting } = world.config + // const smoothLighting = true + if (doAO) { + const dx = pos[0] * 2 - 1 + const dy = pos[1] * 2 - 1 + const dz = pos[2] * 2 - 1 + const cornerDir = matmul3(globalMatrix, [dx, dy, dz]) + const side1Dir = matmul3(globalMatrix, [dx * mask1[0], dy * mask1[1], dz * mask1[2]]) + const side2Dir = matmul3(globalMatrix, [dx * mask2[0], dy * mask2[1], dz * mask2[2]]) + const side1 = world.getBlock(cursor.offset(...side1Dir)) + const side2 = world.getBlock(cursor.offset(...side2Dir)) + const corner = world.getBlock(cursor.offset(...cornerDir)) + + let cornerLightResult = baseLight * 15 + + if (smoothLighting) { + const dirVec = new Vec3(...dir) + const getVec = (v: Vec3) => { + for (const coord of ['x', 'y', 'z']) { + if (Math.abs(dirVec[coord]) > 0) v[coord] = 0 + } + return v.plus(dirVec) + } + const side1LightDir = getVec(new Vec3(...side1Dir)) + const side1Light = world.getLight(cursor.plus(side1LightDir)) + const side2DirLight = getVec(new Vec3(...side2Dir)) + const side2Light = world.getLight(cursor.plus(side2DirLight)) + const cornerLightDir = getVec(new Vec3(...cornerDir)) + const cornerLight = world.getLight(cursor.plus(cornerLightDir)) + // interpolate + const lights = [side1Light, side2Light, cornerLight, baseLight * 15] + cornerLightResult = lights.reduce((acc, cur) => acc + cur, 0) / lights.length + } + + const side1Block = world.shouldMakeAo(side1) ? 1 : 0 + const side2Block = world.shouldMakeAo(side2) ? 1 : 0 + const cornerBlock = world.shouldMakeAo(corner) ? 1 : 0 + + // TODO: correctly interpolate ao light based on pos (evaluate once for each corner of the block) + + const ao = (side1Block && side2Block) ? 0 : (3 - (side1Block + side2Block + cornerBlock)) + // todo light should go upper on lower blocks + light = (ao + 1) / 4 * (cornerLightResult / 15) + aos.push(ao) + } + + if (!needTiles) { + attr.colors.push(tint[0] * light, tint[1] * light, tint[2] * light) + } + } + + const lightWithColor = [baseLight * tint[0], baseLight * tint[1], baseLight * tint[2]] as [number, number, number] + + if (needTiles) { + const tiles = attr.tiles as Tiles + tiles[`${cursor.x},${cursor.y},${cursor.z}`] ??= { + block: block.name, + faces: [], + } + const needsOnlyOneFace = false + const isTilesEmpty = tiles[`${cursor.x},${cursor.y},${cursor.z}`].faces.length < 1 + if (isTilesEmpty || !needsOnlyOneFace) { + tiles[`${cursor.x},${cursor.y},${cursor.z}`].faces.push({ + face, + side, + textureIndex: eFace.texture.tileIndex, + neighbor: `${neighborPos.x},${neighborPos.y},${neighborPos.z}`, + light: baseLight, + tint: lightWithColor, + //@ts-expect-error debug prop + texture: eFace.texture.debugName || block.name, + } satisfies BlockType['faces'][number]) + } + } + + if (!needTiles) { + if (doAO && aos[0] + aos[3] >= aos[1] + aos[2]) { + attr.indices[attr.indicesCount++] = ndx + attr.indices[attr.indicesCount++] = ndx + 3 + attr.indices[attr.indicesCount++] = ndx + 2 + attr.indices[attr.indicesCount++] = ndx + attr.indices[attr.indicesCount++] = ndx + 1 + attr.indices[attr.indicesCount++] = ndx + 3 + } else { + attr.indices[attr.indicesCount++] = ndx + attr.indices[attr.indicesCount++] = ndx + 1 + attr.indices[attr.indicesCount++] = ndx + 2 + attr.indices[attr.indicesCount++] = ndx + 2 + attr.indices[attr.indicesCount++] = ndx + 1 + attr.indices[attr.indicesCount++] = ndx + 3 + } + } + } +} + +const ALWAYS_WATERLOGGED = new Set([ + 'seagrass', + 'tall_seagrass', + 'kelp', + 'kelp_plant', + 'bubble_column' +]) +const isBlockWaterlogged = (block: Block) => { + return block.getProperties().waterlogged === true || block.getProperties().waterlogged === 'true' || ALWAYS_WATERLOGGED.has(block.name) +} + +let unknownBlockModel: BlockModelPartsResolved +export function getSectionGeometry (sx: number, sy: number, sz: number, world: World) { + let delayedRender = [] as Array<() => void> + + const attr: MesherGeometryOutput = { + sx: sx + 8, + sy: sy + 8, + sz: sz + 8, + positions: [], + normals: [], + colors: [], + uvs: [], + t_positions: [], + t_normals: [], + t_colors: [], + t_uvs: [], + indices: [], + indicesCount: 0, // Track current index position + using32Array: true, + tiles: {}, + // todo this can be removed here + heads: {}, + signs: {}, + // isFull: true, + hadErrors: false, + blocksCount: 0 + } + + const cursor = new Vec3(0, 0, 0) + for (cursor.y = sy; cursor.y < sy + 16; cursor.y++) { + for (cursor.z = sz; cursor.z < sz + 16; cursor.z++) { + for (cursor.x = sx; cursor.x < sx + 16; cursor.x++) { + let block = world.getBlock(cursor, blockProvider, attr)! + if (INVISIBLE_BLOCKS.has(block.name)) continue + if ((block.name.includes('_sign') || block.name === 'sign') && !world.config.disableSignsMapsSupport) { + const key = `${cursor.x},${cursor.y},${cursor.z}` + const props: any = block.getProperties() + const facingRotationMap = { + 'north': 2, + 'south': 0, + 'west': 1, + 'east': 3 + } + const isWall = block.name.endsWith('wall_sign') || block.name.endsWith('wall_hanging_sign') + const isHanging = block.name.endsWith('hanging_sign') + attr.signs[key] = { + isWall, + isHanging, + rotation: isWall ? facingRotationMap[props.facing] : +props.rotation + } + } else if (block.name === 'player_head' || block.name === 'player_wall_head') { + const key = `${cursor.x},${cursor.y},${cursor.z}` + const props: any = block.getProperties() + const facingRotationMap = { + 'north': 0, + 'south': 2, + 'west': 3, + 'east': 1 + } + const isWall = block.name === 'player_wall_head' + attr.heads[key] = { + isWall, + rotation: isWall ? facingRotationMap[props.facing] : +props.rotation + } + } + const biome = block.biome.name + + if (world.preflat) { // 10% perf + const patchProperties = preflatBlockCalculation(block, world, cursor) + if (patchProperties) { + block._originalProperties ??= block._properties + block._properties = { ...block._originalProperties, ...patchProperties } + if (block.models && JSON.stringify(block._originalProperties) !== JSON.stringify(block._properties)) { + // recompute models + block.models = undefined + block = world.getBlock(cursor, blockProvider, attr)! + } + } else { + block._properties = block._originalProperties ?? block._properties + block._originalProperties = undefined + } + } + + const isWaterlogged = isBlockWaterlogged(block) + if (block.name === 'water' || isWaterlogged) { + const pos = cursor.clone() + // eslint-disable-next-line @typescript-eslint/no-loop-func + delayedRender.push(() => { + renderLiquid(world, pos, blockProvider.getTextureInfo('water_still'), block.type, biome, true, attr, !isWaterlogged) + }) + attr.blocksCount++ + } else if (block.name === 'lava') { + renderLiquid(world, cursor, blockProvider.getTextureInfo('lava_still'), block.type, biome, false, attr, false) + attr.blocksCount++ + } + if (block.name !== 'water' && block.name !== 'lava' && !INVISIBLE_BLOCKS.has(block.name)) { + // cache + let { models } = block + + models ??= unknownBlockModel + + const firstForceVar = world.config.debugModelVariant?.[0] + let part = 0 + for (const modelVars of models ?? []) { + const pos = cursor.clone() + // const variantRuntime = mod(Math.floor(pos.x / 16) + Math.floor(pos.y / 16) + Math.floor(pos.z / 16), modelVars.length) + const variantRuntime = 0 + const useVariant = world.config.debugModelVariant?.[part] ?? firstForceVar ?? variantRuntime + part++ + const model = modelVars[useVariant] ?? modelVars[0] + if (!model) continue + + // #region 10% + let globalMatrix = null as any + let globalShift = null as any + for (const axis of ['x', 'y', 'z'] as const) { + if (axis in model) { + globalMatrix = globalMatrix ? + matmulmat3(globalMatrix, buildRotationMatrix(axis, -(model[axis] ?? 0))) : + buildRotationMatrix(axis, -(model[axis] ?? 0)) + } + } + if (globalMatrix) { + globalShift = [8, 8, 8] + globalShift = vecsub3(globalShift, matmul3(globalMatrix, globalShift)) + } + // #endregion + + for (const element of model.elements ?? []) { + const ao = model.ao ?? true + if (block.transparent) { + const pos = cursor.clone() + delayedRender.push(() => { + renderElement(world, pos, element, ao, attr, globalMatrix, globalShift, block, biome) + }) + } else { + // 60% + renderElement(world, cursor, element, ao, attr, globalMatrix, globalShift, block, biome) + } + } + } + if (part > 0) attr.blocksCount++ + } + } + } + } + + for (const render of delayedRender) { + render() + } + delayedRender = [] + + let ndx = attr.positions.length / 3 + for (let i = 0; i < attr.t_positions!.length / 12; i++) { + attr.indices[attr.indicesCount++] = ndx + attr.indices[attr.indicesCount++] = ndx + 1 + attr.indices[attr.indicesCount++] = ndx + 2 + attr.indices[attr.indicesCount++] = ndx + 2 + attr.indices[attr.indicesCount++] = ndx + 1 + attr.indices[attr.indicesCount++] = ndx + 3 + // back face + attr.indices[attr.indicesCount++] = ndx + attr.indices[attr.indicesCount++] = ndx + 2 + attr.indices[attr.indicesCount++] = ndx + 1 + attr.indices[attr.indicesCount++] = ndx + 2 + attr.indices[attr.indicesCount++] = ndx + 3 + attr.indices[attr.indicesCount++] = ndx + 1 + ndx += 4 + } + + attr.positions.push(...attr.t_positions!) + attr.normals.push(...attr.t_normals!) + attr.colors.push(...attr.t_colors!) + attr.uvs.push(...attr.t_uvs!) + + delete attr.t_positions + delete attr.t_normals + delete attr.t_colors + delete attr.t_uvs + + attr.positions = new Float32Array(attr.positions) as any + attr.normals = new Float32Array(attr.normals) as any + attr.colors = new Float32Array(attr.colors) as any + attr.uvs = new Float32Array(attr.uvs) as any + attr.using32Array = arrayNeedsUint32(attr.indices) + if (attr.using32Array) { + attr.indices = new Uint32Array(attr.indices) + } else { + attr.indices = new Uint16Array(attr.indices) + } + + if (needTiles) { + delete attr.positions + delete attr.normals + delete attr.colors + delete attr.uvs + } + + return attr +} + +// copied from three.js +function arrayNeedsUint32 (array) { + + // assumes larger values usually on last + + for (let i = array.length - 1; i >= 0; -- i) { + + if (array[i] >= 65_535) return true // account for PRIMITIVE_RESTART_FIXED_INDEX, #24565 + + } + + return false + +} + +export const setBlockStatesData = (blockstatesModels, blocksAtlas: any, _needTiles = false, useUnknownBlockModel = true, version = 'latest') => { + blockProvider = worldBlockProvider(blockstatesModels, blocksAtlas, version) + globalThis.blockProvider = blockProvider + if (useUnknownBlockModel) { + unknownBlockModel = blockProvider.getAllResolvedModels0_1({ name: 'unknown', properties: {} }) + } + + needTiles = _needTiles +} diff --git a/renderer/viewer/lib/mesher/modelsGeometryCommon.ts b/renderer/viewer/lib/mesher/modelsGeometryCommon.ts new file mode 100644 index 00000000..3df20556 --- /dev/null +++ b/renderer/viewer/lib/mesher/modelsGeometryCommon.ts @@ -0,0 +1,142 @@ +import { BlockModelPartsResolved } from './world' + +export type BlockElement = NonNullable[0] + + +export function buildRotationMatrix (axis, degree) { + const radians = degree / 180 * Math.PI + const cos = Math.cos(radians) + const sin = Math.sin(radians) + + const axis0 = { x: 0, y: 1, z: 2 }[axis] + const axis1 = (axis0 + 1) % 3 + const axis2 = (axis0 + 2) % 3 + + const matrix = [ + [0, 0, 0], + [0, 0, 0], + [0, 0, 0] + ] + + matrix[axis0][axis0] = 1 + matrix[axis1][axis1] = cos + matrix[axis1][axis2] = -sin + matrix[axis2][axis1] = +sin + matrix[axis2][axis2] = cos + + return matrix +} + +export function vecadd3 (a, b) { + if (!b) return a + return [a[0] + b[0], a[1] + b[1], a[2] + b[2]] +} + +export function vecsub3 (a, b) { + if (!b) return a + return [a[0] - b[0], a[1] - b[1], a[2] - b[2]] +} + +export function matmul3 (matrix, vector): [number, number, number] { + if (!matrix) return vector + return [ + matrix[0][0] * vector[0] + matrix[0][1] * vector[1] + matrix[0][2] * vector[2], + matrix[1][0] * vector[0] + matrix[1][1] * vector[1] + matrix[1][2] * vector[2], + matrix[2][0] * vector[0] + matrix[2][1] * vector[1] + matrix[2][2] * vector[2] + ] +} + +export function matmulmat3 (a, b) { + const te = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] + + const a11 = a[0][0]; const a12 = a[1][0]; const a13 = a[2][0] + const a21 = a[0][1]; const a22 = a[1][1]; const a23 = a[2][1] + const a31 = a[0][2]; const a32 = a[1][2]; const a33 = a[2][2] + + const b11 = b[0][0]; const b12 = b[1][0]; const b13 = b[2][0] + const b21 = b[0][1]; const b22 = b[1][1]; const b23 = b[2][1] + const b31 = b[0][2]; const b32 = b[1][2]; const b33 = b[2][2] + + te[0][0] = a11 * b11 + a12 * b21 + a13 * b31 + te[1][0] = a11 * b12 + a12 * b22 + a13 * b32 + te[2][0] = a11 * b13 + a12 * b23 + a13 * b33 + + te[0][1] = a21 * b11 + a22 * b21 + a23 * b31 + te[1][1] = a21 * b12 + a22 * b22 + a23 * b32 + te[2][1] = a21 * b13 + a22 * b23 + a23 * b33 + + te[0][2] = a31 * b11 + a32 * b21 + a33 * b31 + te[1][2] = a31 * b12 + a32 * b22 + a33 * b32 + te[2][2] = a31 * b13 + a32 * b23 + a33 * b33 + + return te +} + +export const elemFaces = { + up: { + dir: [0, 1, 0], + mask1: [1, 1, 0], + mask2: [0, 1, 1], + corners: [ + [0, 1, 1, 0, 1], + [1, 1, 1, 1, 1], + [0, 1, 0, 0, 0], + [1, 1, 0, 1, 0] + ] + }, + down: { + dir: [0, -1, 0], + mask1: [1, 1, 0], + mask2: [0, 1, 1], + corners: [ + [1, 0, 1, 0, 1], + [0, 0, 1, 1, 1], + [1, 0, 0, 0, 0], + [0, 0, 0, 1, 0] + ] + }, + east: { + dir: [1, 0, 0], + mask1: [1, 1, 0], + mask2: [1, 0, 1], + corners: [ + [1, 1, 1, 0, 0], + [1, 0, 1, 0, 1], + [1, 1, 0, 1, 0], + [1, 0, 0, 1, 1] + ] + }, + west: { + dir: [-1, 0, 0], + mask1: [1, 1, 0], + mask2: [1, 0, 1], + corners: [ + [0, 1, 0, 0, 0], + [0, 0, 0, 0, 1], + [0, 1, 1, 1, 0], + [0, 0, 1, 1, 1] + ] + }, + north: { + dir: [0, 0, -1], + mask1: [1, 0, 1], + mask2: [0, 1, 1], + corners: [ + [1, 0, 0, 1, 1], + [0, 0, 0, 0, 1], + [1, 1, 0, 1, 0], + [0, 1, 0, 0, 0] + ] + }, + south: { + dir: [0, 0, 1], + mask1: [1, 0, 1], + mask2: [0, 1, 1], + corners: [ + [0, 0, 1, 0, 1], + [1, 0, 1, 1, 1], + [0, 1, 1, 0, 0], + [1, 1, 1, 1, 0] + ] + } +} diff --git a/renderer/viewer/lib/mesher/shared.ts b/renderer/viewer/lib/mesher/shared.ts new file mode 100644 index 00000000..230db6b9 --- /dev/null +++ b/renderer/viewer/lib/mesher/shared.ts @@ -0,0 +1,70 @@ +import { BlockType } from '../../../playground/shared' + +// only here for easier testing +export const defaultMesherConfig = { + version: '', + worldMaxY: 256, + worldMinY: 0, + enableLighting: true, + skyLight: 15, + smoothLighting: true, + outputFormat: 'threeJs' as 'threeJs' | 'webgpu', + // textureSize: 1024, // for testing + debugModelVariant: undefined as undefined | number[], + clipWorldBelowY: undefined as undefined | number, + disableSignsMapsSupport: false +} + +export type CustomBlockModels = { + [blockPosKey: string]: string // blockPosKey is "x,y,z" -> model name +} + +export type MesherConfig = typeof defaultMesherConfig + +export type MesherGeometryOutput = { + sx: number, + sy: number, + sz: number, + // resulting: float32array + positions: any, + normals: any, + colors: any, + uvs: any, + t_positions?: number[], + t_normals?: number[], + t_colors?: number[], + t_uvs?: number[], + + indices: Uint32Array | Uint16Array | number[], + indicesCount: number, + using32Array: boolean, + tiles: Record, + heads: Record, + signs: Record, + // isFull: boolean + hadErrors: boolean + blocksCount: number + customBlockModels?: CustomBlockModels +} + +export interface MesherMainEvents { + geometry: { type: 'geometry'; key: string; geometry: MesherGeometryOutput; workerIndex: number }; + sectionFinished: { type: 'sectionFinished'; key: string; workerIndex: number; processTime?: number }; + blockStateModelInfo: { type: 'blockStateModelInfo'; info: Record }; + heightmap: { type: 'heightmap'; key: string; heightmap: Uint8Array }; +} + +export type MesherMainEvent = MesherMainEvents[keyof MesherMainEvents] + +export type HighestBlockInfo = { y: number, stateId: number | undefined, biomeId: number | undefined } + +export type BlockStateModelInfo = { + cacheKey: string + issues: string[] + modelNames: string[] + conditions: string[] +} + +export const getBlockAssetsCacheKey = (stateId: number, modelNameOverride?: string) => { + return modelNameOverride ? `${stateId}:${modelNameOverride}` : String(stateId) +} diff --git a/renderer/viewer/lib/mesher/standaloneRenderer.ts b/renderer/viewer/lib/mesher/standaloneRenderer.ts new file mode 100644 index 00000000..3d468dce --- /dev/null +++ b/renderer/viewer/lib/mesher/standaloneRenderer.ts @@ -0,0 +1,270 @@ +/* eslint-disable @stylistic/function-call-argument-newline */ +import { Vec3 } from 'vec3' +import { Block } from 'prismarine-block' +import { IndexedData } from 'minecraft-data' +import * as THREE from 'three' +import { BlockModelPartsResolved } from './world' +import { BlockElement, buildRotationMatrix, elemFaces, matmul3, matmulmat3, vecadd3, vecsub3 } from './modelsGeometryCommon' + +type NeighborSide = 'up' | 'down' | 'east' | 'west' | 'north' | 'south' + +function tintToGl (tint) { + const r = (tint >> 16) & 0xff + const g = (tint >> 8) & 0xff + const b = tint & 0xff + return [r / 255, g / 255, b / 255] +} + +type Neighbors = Partial> +function renderElement (element: BlockElement, doAO: boolean, attr, globalMatrix, globalShift, block: Block | undefined, biome: string, neighbors: Neighbors) { + const cursor = new Vec3(0, 0, 0) + + // const key = `${position.x},${position.y},${position.z}` + // if (!globalThis.allowedBlocks.includes(key)) return + // const cullIfIdentical = block.name.indexOf('glass') >= 0 + + // eslint-disable-next-line guard-for-in + for (const face in element.faces) { + const eFace = element.faces[face] + const { corners, mask1, mask2 } = elemFaces[face] + const dir = matmul3(globalMatrix, elemFaces[face].dir) + + if (eFace.cullface) { + if (neighbors[face]) continue + } + + const minx = element.from[0] + const miny = element.from[1] + const minz = element.from[2] + const maxx = element.to[0] + const maxy = element.to[1] + const maxz = element.to[2] + + const texture = eFace.texture as any + const { u } = texture + const { v } = texture + const { su } = texture + const { sv } = texture + + const ndx = Math.floor(attr.positions.length / 3) + + let tint = [1, 1, 1] + if (eFace.tintindex !== undefined) { + if (eFace.tintindex === 0) { + // TODO + // if (block.name === 'redstone_wire') { + // tint = tints.redstone[`${block.getProperties().power}`] + // } else if (block.name === 'birch_leaves' || + // block.name === 'spruce_leaves' || + // block.name === 'lily_pad') { + // tint = tints.constant[block.name] + // } else if (block.name.includes('leaves') || block.name === 'vine') { + // tint = tints.foliage[biome] + // } else { + // tint = tints.grass[biome] + // } + const grassTint = [145 / 255, 189 / 255, 89 / 255] + tint = grassTint + } + } + + // UV rotation + const r = eFace.rotation || 0 + const uvcs = Math.cos(r * Math.PI / 180) + const uvsn = -Math.sin(r * Math.PI / 180) + + let localMatrix = null as any + let localShift = null as any + + if (element.rotation) { + // todo do we support rescale? + localMatrix = buildRotationMatrix( + element.rotation.axis, + element.rotation.angle + ) + + localShift = vecsub3( + element.rotation.origin, + matmul3( + localMatrix, + element.rotation.origin + ) + ) + } + + const aos: number[] = [] + // const neighborPos = position.plus(new Vec3(...dir)) + // const baseLight = world.getLight(neighborPos, undefined, undefined, block.name) / 15 + const baseLight = 1 + for (const pos of corners) { + let vertex = [ + (pos[0] ? maxx : minx), + (pos[1] ? maxy : miny), + (pos[2] ? maxz : minz) + ] + + vertex = vecadd3(matmul3(localMatrix, vertex), localShift) + vertex = vecadd3(matmul3(globalMatrix, vertex), globalShift) + vertex = vertex.map(v => v / 16) + + attr.positions.push( + vertex[0]/* + (cursor.x & 15) - 8 */, + vertex[1]/* + (cursor.y & 15) x */, + vertex[2]/* + (cursor.z & 15) - 8 */ + ) + + attr.normals.push(...dir) + + const baseu = (pos[3] - 0.5) * uvcs - (pos[4] - 0.5) * uvsn + 0.5 + const basev = (pos[3] - 0.5) * uvsn + (pos[4] - 0.5) * uvcs + 0.5 + attr.uvs.push(baseu * su + u, basev * sv + v) + + let light = 1 + if (doAO) { + const cornerLightResult = 15 + + const side1Block = 0 + const side2Block = 0 + const cornerBlock = 0 + + const ao = (side1Block && side2Block) ? 0 : (3 - (side1Block + side2Block + cornerBlock)) + // todo light should go upper on lower blocks + light = (ao + 1) / 4 * (cornerLightResult / 15) + aos.push(ao) + } + + attr.colors.push(baseLight * tint[0] * light, baseLight * tint[1] * light, baseLight * tint[2] * light) + } + + // if (needTiles) { + // attr.tiles[`${cursor.x},${cursor.y},${cursor.z}`] ??= { + // block: block.name, + // faces: [], + // } + // attr.tiles[`${cursor.x},${cursor.y},${cursor.z}`].faces.push({ + // face, + // neighbor: `${neighborPos.x},${neighborPos.y},${neighborPos.z}`, + // light: baseLight + // // texture: eFace.texture.name, + // }) + // } + + if (doAO && aos[0] + aos[3] >= aos[1] + aos[2]) { + attr.indices.push( + + ndx, ndx + 3, ndx + 2, + ndx, ndx + 1, ndx + 3 + ) + } else { + attr.indices.push( + + ndx, ndx + 1, ndx + 2, + ndx + 2, ndx + 1, ndx + 3 + ) + } + } +} + +export const renderBlockThreeAttr = (models: BlockModelPartsResolved, block: Block | undefined, biome: string, mcData: IndexedData, variants = [], neighbors: Neighbors = {}) => { + const sx = 0 + const sy = 0 + const sz = 0 + + const attr = { + sx: sx + 0.5, + sy: sy + 0.5, + sz: sz + 0.5, + positions: [], + normals: [], + colors: [], + uvs: [], + t_positions: [], + t_normals: [], + t_colors: [], + t_uvs: [], + indices: [], + tiles: {}, + } as Record + + for (const [i, modelVars] of models.entries()) { + const model = modelVars[variants[i]] ?? modelVars[0] + if (!model) continue + let globalMatrix = null as any + let globalShift = null as any + for (const axis of ['x', 'y', 'z'] as const) { + if (axis in model) { + if (globalMatrix) { globalMatrix = matmulmat3(globalMatrix, buildRotationMatrix(axis, -(model[axis] ?? 0))) } else { globalMatrix = buildRotationMatrix(axis, -(model[axis] ?? 0)) } + } + } + if (globalMatrix) { + globalShift = [8, 8, 8] + globalShift = vecsub3(globalShift, matmul3(globalMatrix, globalShift)) + } + + const ao = model.ao ?? true + + for (const element of model.elements ?? []) { + renderElement(element, ao, attr, globalMatrix, globalShift, block, biome, neighbors) + } + } + + let ndx = attr.positions.length / 3 + for (let i = 0; i < attr.t_positions.length / 12; i++) { + attr.indices.push( + ndx, ndx + 1, ndx + 2, ndx + 2, ndx + 1, ndx + 3, + // back face + ndx, ndx + 2, ndx + 1, ndx + 2, ndx + 3, ndx + 1 + ) + ndx += 4 + } + + attr.positions.push(...attr.t_positions) + attr.normals.push(...attr.t_normals) + attr.colors.push(...attr.t_colors) + attr.uvs.push(...attr.t_uvs) + + delete attr.t_positions + delete attr.t_normals + delete attr.t_colors + delete attr.t_uvs + + attr.positions = new Float32Array(attr.positions) as any + attr.normals = new Float32Array(attr.normals) as any + attr.colors = new Float32Array(attr.colors) as any + attr.uvs = new Float32Array(attr.uvs) as any + + return attr +} + +export const renderBlockThree = (...args: Parameters) => { + const attr = renderBlockThreeAttr(...args) + const data = { + geometry: attr + } + + const geometry = new THREE.BufferGeometry() + geometry.setAttribute('position', new THREE.BufferAttribute(data.geometry.positions, 3)) + geometry.setAttribute('normal', new THREE.BufferAttribute(data.geometry.normals, 3)) + geometry.setAttribute('color', new THREE.BufferAttribute(data.geometry.colors, 3)) + geometry.setAttribute('uv', new THREE.BufferAttribute(data.geometry.uvs, 2)) + geometry.setIndex(data.geometry.indices) + geometry.name = 'block-geometry' + + return geometry +} + +export const getThreeBlockModelGroup = (material: THREE.Material, ...args: Parameters) => { + const geometry = renderBlockThree(...args) + const mesh = new THREE.Mesh(geometry, material) + mesh.position.set(-0.5, -0.5, -0.5) + const group = new THREE.Group() + group.add(mesh) + group.rotation.set(0, -THREE.MathUtils.degToRad(90), 0, 'ZYX') + globalThis.mesh = group + return group + // return new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1), new THREE.MeshPhongMaterial({ color: 0x00_00_ff, transparent: true, opacity: 0.5 })) +} + +export const setBlockPosition = (object: THREE.Object3D, position: { x: number, y: number, z: number }) => { + object.position.set(position.x + 0.5, position.y + 0.5, position.z + 0.5) +} diff --git a/renderer/viewer/lib/mesher/test/mesherTester.ts b/renderer/viewer/lib/mesher/test/mesherTester.ts new file mode 100644 index 00000000..e75d803d --- /dev/null +++ b/renderer/viewer/lib/mesher/test/mesherTester.ts @@ -0,0 +1,76 @@ +import ChunkLoader, { PCChunk } from 'prismarine-chunk' +import { Vec3 } from 'vec3' +import MinecraftData from 'minecraft-data' +import blocksAtlasesJson from 'mc-assets/dist/blocksAtlases.json' +import { World as MesherWorld } from '../world' +import { setBlockStatesData, getSectionGeometry } from '../models' + +export const setup = (version, initialBlocks: Array<[number[], string]>) => { + const mcData = MinecraftData(version) + const blockStatesModels = require(`mc-assets/dist/blockStatesModels.json`) + const mesherWorld = new MesherWorld(version) + const Chunk = ChunkLoader(version) + const chunk1 = new Chunk(undefined as any) + + const pos = new Vec3(2, 5, 2) + for (const [addPos, name] of initialBlocks) { + chunk1.setBlockStateId(pos.offset(addPos[0], addPos[1], addPos[2]), mcData.blocksByName[name].defaultState) + } + + const getGeometry = () => { + const sectionGeometry = getSectionGeometry(0, 0, 0, mesherWorld) + const centerFaces = sectionGeometry.tiles[`${pos.x},${pos.y},${pos.z}`]?.faces.length ?? 0 + const totalTiles = Object.values(sectionGeometry.tiles).reduce((acc, val: any) => acc + val.faces.length, 0) + const centerTileNeighbors = Object.entries(sectionGeometry.tiles).reduce((acc, [key, val]: any) => { + return acc + val.faces.filter((face: any) => face.neighbor === `${pos.x},${pos.y},${pos.z}`).length + }, 0) + return { + centerFaces, + totalTiles, + centerTileNeighbors, + faces: sectionGeometry.tiles[`${pos.x},${pos.y},${pos.z}`]?.faces ?? [], + attr: sectionGeometry + } + } + + setBlockStatesData(blockStatesModels, blocksAtlasesJson, true, false, version) + const reload = () => { + mesherWorld.removeColumn(0, 0) + mesherWorld.addColumn(0, 0, chunk1.toJson()) + } + reload() + + const getLights = () => { + return Object.fromEntries(getGeometry().faces.map(({ face, light }) => ([face, (light ?? 0) * 15 - 2]))) + } + + const setLight = (x: number, y: number, z: number, val = 0) => { + // create columns first + chunk1.setBlockLight(pos.offset(x, y, z), 15) + chunk1.setSkyLight(pos.offset(x, y, z), 15) + chunk1.setBlockLight(pos.offset(x, y, z), val) + chunk1.setSkyLight(pos.offset(x, y, z), 0) + } + + return { + mesherWorld, + setLight, + getLights, + getGeometry, + pos, + mcData, + reload, + chunk: chunk1 as PCChunk + } +} + +// surround it +const addPositions = [ + // [[0, 0, 0], 'diamond_block'], + [[1, 0, 0], 'stone'], + [[-1, 0, 0], 'stone'], + [[0, 1, 0], 'stone'], + [[0, -1, 0], 'stone'], + [[0, 0, 1], 'stone'], + [[0, 0, -1], 'stone'], +] diff --git a/renderer/viewer/lib/mesher/test/playground.ts b/renderer/viewer/lib/mesher/test/playground.ts new file mode 100644 index 00000000..0441dd60 --- /dev/null +++ b/renderer/viewer/lib/mesher/test/playground.ts @@ -0,0 +1,20 @@ +import { BlockNames } from '../../../../../src/mcDataTypes' +import { setup } from './mesherTester' + +const addPositions = [ + // [[0, 0, 0], 'diamond_block'], + [[1, 0, 0], 'stone'], + [[-1, 0, 0], 'stone'], + [[0, 1, 0], 'stone'], + [[0, -1, 0], 'stone'], + [[0, 0, 1], 'stone'], + [[0, 0, -1], 'stone'], +] as const + +const { mesherWorld, getGeometry, pos, mcData } = setup('1.21.1', addPositions as any) + +// mesherWorld.setBlockStateId(pos, 712) +// mesherWorld.setBlockStateId(pos, mcData.blocksByName.stone_slab.defaultState) +mesherWorld.setBlockStateId(pos, 11_225) + +console.log(getGeometry().centerTileNeighbors) diff --git a/renderer/viewer/lib/mesher/test/tests.test.ts b/renderer/viewer/lib/mesher/test/tests.test.ts new file mode 100644 index 00000000..2c3dc6a5 --- /dev/null +++ b/renderer/viewer/lib/mesher/test/tests.test.ts @@ -0,0 +1,56 @@ +import { test, expect } from 'vitest' +import supportedVersions from '../../../../../src/supportedVersions.mjs' +import { INVISIBLE_BLOCKS } from '../worldConstants' +import { setup } from './mesherTester' + +const lastVersion = supportedVersions.at(-1) + +const addPositions = [ + // [[0, 0, 0], 'diamond_block'], + // [[1, 0, 0], 'stone'], + // [[-1, 0, 0], 'stone'], + // [[0, 1, 0], 'stone'], + // [[0, -1, 0], 'stone'], + // [[0, 0, 1], 'stone'], + // [[0, 0, -1], 'stone'], +] as const + +test('Known blocks are not rendered', () => { + const { mesherWorld, getGeometry, pos, mcData } = setup(lastVersion, addPositions as any) + const ignoreAsExpected = new Set([...INVISIBLE_BLOCKS, 'water', 'lava']) + + let time = 0 + let times = 0 + const missingBlocks = {}/* as {[number, number]} */ + const erroredBlocks = {}/* as {[number, number]} */ + for (const block of mcData.blocksArray) { + if (ignoreAsExpected.has(block.name)) continue + // if (block.maxStateId! - block.minStateId! > 100) continue + // for (let i = block.minStateId!; i <= block.maxStateId!; i++) { + for (let i = block.defaultState; i <= block.defaultState; i++) { + // if (block.transparent) continue + mesherWorld.setBlockStateId(pos, i) + const start = performance.now() + const { centerFaces, totalTiles, centerTileNeighbors, attr } = getGeometry() + time += performance.now() - start + times++ + if (centerFaces === 0) { + const objAdd = attr.hadErrors ? erroredBlocks : missingBlocks + if (objAdd[block.name]) continue + objAdd[block.name] = true + // invalidBlocks[block.name] = [i - block.defaultState!, centerTileNeighbors] + // console.log('INVALID', block.name, centerTileNeighbors, i - block.minStateId) + } + } + } + console.log('Checking blocks of version', lastVersion) + console.log('Average time', time / times) + // should be fixed, but to avoid regressions & for visibility + // TODO resolve creaking_heart issue (1.21.3) + expect(missingBlocks).toMatchInlineSnapshot(` + { + "structure_void": true, + } + `) + expect(erroredBlocks).toMatchInlineSnapshot('{}') +}) diff --git a/renderer/viewer/lib/mesher/world.ts b/renderer/viewer/lib/mesher/world.ts new file mode 100644 index 00000000..f2757ae6 --- /dev/null +++ b/renderer/viewer/lib/mesher/world.ts @@ -0,0 +1,270 @@ +import Chunks from 'prismarine-chunk' +import mcData from 'minecraft-data' +import { Block } from 'prismarine-block' +import { Vec3 } from 'vec3' +import { WorldBlockProvider } from 'mc-assets/dist/worldBlockProvider' +import moreBlockDataGeneratedJson from '../moreBlockDataGenerated.json' +import legacyJson from '../../../../src/preflatMap.json' +import { defaultMesherConfig, CustomBlockModels, BlockStateModelInfo, getBlockAssetsCacheKey } from './shared' +import { INVISIBLE_BLOCKS } from './worldConstants' + +const ignoreAoBlocks = Object.keys(moreBlockDataGeneratedJson.noOcclusions) + +function columnKey (x, z) { + return `${x},${z}` +} + +function isCube (shapes) { + if (!shapes || shapes.length !== 1) return false + const shape = shapes[0] + return shape[0] === 0 && shape[1] === 0 && shape[2] === 0 && shape[3] === 1 && shape[4] === 1 && shape[5] === 1 +} + +export type BlockModelPartsResolved = ReturnType + +export type WorldBlock = Omit & { + // todo + isCube: boolean + /** cache */ + models?: BlockModelPartsResolved | null + _originalProperties?: Record + _properties?: Record +} + +export class World { + config = defaultMesherConfig + Chunk: typeof import('prismarine-chunk/types/index').PCChunk + columns = {} as { [key: string]: import('prismarine-chunk/types/index').PCChunk } + blockCache = {} + biomeCache: { [id: number]: mcData.Biome } + preflat: boolean + erroredBlockModel?: BlockModelPartsResolved + customBlockModels = new Map() // chunkKey -> blockModels + sentBlockStateModels = new Set() + blockStateModelInfo = new Map() + + constructor (version) { + this.Chunk = Chunks(version) as any + this.biomeCache = mcData(version).biomes + this.preflat = !mcData(version).supportFeature('blockStateId') + this.config.version = version + } + + getLight (pos: Vec3, isNeighbor = false, skipMoreChecks = false, curBlockName = '') { + // for easier testing + if (!(pos instanceof Vec3)) pos = new Vec3(...pos as [number, number, number]) + const { enableLighting, skyLight } = this.config + if (!enableLighting) return 15 + // const key = `${pos.x},${pos.y},${pos.z}` + // if (lightsCache.has(key)) return lightsCache.get(key) + const column = this.getColumnByPos(pos) + if (!column || !hasChunkSection(column, pos)) return 15 + let result = Math.min( + 15, + Math.max( + column.getBlockLight(posInChunk(pos)), + Math.min(skyLight, column.getSkyLight(posInChunk(pos))) + ) + 2 + ) + // lightsCache.set(key, result) + if (result === 2 && [this.getBlock(pos)?.name ?? '', curBlockName].some(x => /_stairs|slab|glass_pane/.exec(x)) && !skipMoreChecks) { // todo this is obviously wrong + const lights = [ + this.getLight(pos.offset(0, 1, 0), undefined, true), + this.getLight(pos.offset(0, -1, 0), undefined, true), + this.getLight(pos.offset(0, 0, 1), undefined, true), + this.getLight(pos.offset(0, 0, -1), undefined, true), + this.getLight(pos.offset(1, 0, 0), undefined, true), + this.getLight(pos.offset(-1, 0, 0), undefined, true) + ].filter(x => x !== 2) + if (lights.length) { + const min = Math.min(...lights) + result = min + } + } + if (isNeighbor && result === 2) result = 15 // TODO + return result + } + + addColumn (x, z, json) { + const chunk = this.Chunk.fromJson(json) + this.columns[columnKey(x, z)] = chunk as any + return chunk + } + + removeColumn (x, z) { + delete this.columns[columnKey(x, z)] + } + + getColumn (x, z) { + return this.columns[columnKey(x, z)] + } + + setBlockStateId (pos: Vec3, stateId) { + if (stateId === undefined) throw new Error('stateId is undefined') + const key = columnKey(Math.floor(pos.x / 16) * 16, Math.floor(pos.z / 16) * 16) + + const column = this.columns[key] + // null column means chunk not loaded + if (!column) return false + + column.setBlockStateId(posInChunk(pos.floored()), stateId) + + return true + } + + getColumnByPos (pos: Vec3) { + return this.getColumn(Math.floor(pos.x / 16) * 16, Math.floor(pos.z / 16) * 16) + } + + getBlock (pos: Vec3, blockProvider?: WorldBlockProvider, attr?: { hadErrors?: boolean }): WorldBlock | null { + // for easier testing + if (!(pos instanceof Vec3)) pos = new Vec3(...pos as [number, number, number]) + const key = columnKey(Math.floor(pos.x / 16) * 16, Math.floor(pos.z / 16) * 16) + const blockPosKey = `${pos.x},${pos.y},${pos.z}` + const modelOverride = this.customBlockModels.get(key)?.[blockPosKey] + + const column = this.columns[key] + // null column means chunk not loaded + if (!column) return null + + const loc = pos.floored() + const locInChunk = posInChunk(loc) + const stateId = column.getBlockStateId(locInChunk) + + const cacheKey = getBlockAssetsCacheKey(stateId, modelOverride) + + if (!this.blockCache[cacheKey]) { + const b = column.getBlock(locInChunk) as unknown as WorldBlock + if (modelOverride) { + b.name = modelOverride + } + b.isCube = isCube(b.shapes) + this.blockCache[cacheKey] = b + Object.defineProperty(b, 'position', { + get () { + throw new Error('position is not reliable, use pos parameter instead of block.position') + } + }) + if (this.preflat) { + b._properties = {} + + const namePropsStr = legacyJson.blocks[b.type + ':' + b.metadata] || findClosestLegacyBlockFallback(b.type, b.metadata, pos) + if (namePropsStr) { + b.name = namePropsStr.split('[')[0] + const propsStr = namePropsStr.split('[')?.[1]?.split(']') + if (propsStr) { + const newProperties = Object.fromEntries(propsStr.join('').split(',').map(x => { + let [key, val] = x.split('=') + if (!isNaN(val)) val = parseInt(val, 10) + return [key, val] + })) + b._properties = newProperties + } + } + } + } + + const block: WorldBlock = this.blockCache[cacheKey] + + if (block.models === undefined && blockProvider) { + if (!attr) throw new Error('attr is required') + const props = block.getProperties() + + try { + // fixme + if (this.preflat) { + if (block.name === 'cobblestone_wall') { + props.up = 'true' + for (const key of ['north', 'south', 'east', 'west']) { + const val = props[key] + if (val === 'false' || val === 'true') { + props[key] = val === 'true' ? 'low' : 'none' + } + } + } + } + + const useFallbackModel = !!(this.preflat || modelOverride) + const issues = [] as string[] + const resolvedModelNames = [] as string[] + const resolvedConditions = [] as string[] + block.models = blockProvider.getAllResolvedModels0_1( + { + name: block.name, + properties: props, + }, + useFallbackModel, + issues, + resolvedModelNames, + resolvedConditions + )! + + // Track block state model info + if (!this.sentBlockStateModels.has(cacheKey)) { + this.blockStateModelInfo.set(cacheKey, { + cacheKey, + issues, + modelNames: resolvedModelNames, + conditions: resolvedConditions + }) + } + + if (!block.models.length) { + if (block.name !== 'water' && block.name !== 'lava' && !INVISIBLE_BLOCKS.has(block.name)) { + console.debug('[mesher] block to render not found', block.name, props) + } + block.models = null + } + + if (block.models && modelOverride) { + const model = block.models[0] + block.transparent = model[0]?.['transparent'] ?? block.transparent + } + } catch (err) { + this.erroredBlockModel ??= blockProvider.getAllResolvedModels0_1({ name: 'errored', properties: {} }) + block.models ??= this.erroredBlockModel + console.error(`Critical assets error. Unable to get block model for ${block.name}[${JSON.stringify(props)}]: ` + err.message, err.stack) + attr.hadErrors = true + } + } + + if (block.name === 'flowing_water') block.name = 'water' + if (block.name === 'flowing_lava') block.name = 'lava' + if (block.name === 'bubble_column') block.name = 'water' // TODO need to distinguish between water and bubble column + // block.position = loc // it overrides position of all currently loaded blocks + //@ts-expect-error + block.biome = this.biomeCache[column.getBiome(locInChunk)] ?? this.biomeCache[1] ?? this.biomeCache[0] + if (block.name === 'redstone_ore') block.transparent = false + return block + } + + shouldMakeAo (block: WorldBlock | null) { + return block?.isCube && !ignoreAoBlocks.includes(block.name) + } +} + +const findClosestLegacyBlockFallback = (id, metadata, pos) => { + console.warn(`[mesher] Unknown block with ${id}:${metadata} at ${pos}, falling back`) // todo has known issues + for (const [key, value] of Object.entries(legacyJson.blocks)) { + const [idKey, meta] = key.split(':') + if (idKey === id) return value + } + return null +} + +// todo export in chunk instead +const hasChunkSection = (column, pos) => { + if (column._getSection) return column._getSection(pos) + if (column.skyLightSections) { + return column.skyLightSections[getLightSectionIndex(pos, column.minY)] || column.blockLightSections[getLightSectionIndex(pos, column.minY)] + } + if (column.sections) return column.sections[pos.y >> 4] +} + +function posInChunk (pos) { + return new Vec3(Math.floor(pos.x) & 15, Math.floor(pos.y), Math.floor(pos.z) & 15) +} + +function getLightSectionIndex (pos, minY = 0) { + return Math.floor((pos.y - minY) / 16) + 1 +} diff --git a/renderer/viewer/lib/mesher/worldConstants.ts b/renderer/viewer/lib/mesher/worldConstants.ts new file mode 100644 index 00000000..6aa0e0fc --- /dev/null +++ b/renderer/viewer/lib/mesher/worldConstants.ts @@ -0,0 +1 @@ +export const INVISIBLE_BLOCKS = new Set(['air', 'void_air', 'cave_air', 'barrier', 'light', 'moving_piston']) diff --git a/renderer/viewer/lib/mesherlogReader.ts b/renderer/viewer/lib/mesherlogReader.ts new file mode 100644 index 00000000..0f1e74c0 --- /dev/null +++ b/renderer/viewer/lib/mesherlogReader.ts @@ -0,0 +1,131 @@ +/* eslint-disable no-await-in-loop */ +import { Vec3 } from 'vec3' + +// import log from '../../../../../Downloads/mesher (2).log' +import { WorldRendererCommon } from './worldrendererCommon' +const log = '' + + +export class MesherLogReader { + chunksToReceive: Array<{ + x: number + z: number + chunkLength: number + }> = [] + messagesQueue: Array<{ + fromWorker: boolean + workerIndex: number + message: any + }> = [] + + sectionFinishedToReceive = null as { + messagesLeft: string[] + resolve: () => void + } | null + replayStarted = false + + constructor (private readonly worldRenderer: WorldRendererCommon) { + this.parseMesherLog() + } + + chunkReceived (x: number, z: number, chunkLength: number) { + // remove existing chunks with same x and z + const existingChunkIndex = this.chunksToReceive.findIndex(chunk => chunk.x === x && chunk.z === z) + if (existingChunkIndex === -1) { + // console.error('Chunk not found', x, z) + } else { + // warn if chunkLength is different + if (this.chunksToReceive[existingChunkIndex].chunkLength !== chunkLength) { + // console.warn('Chunk length mismatch', x, z, this.chunksToReceive[existingChunkIndex].chunkLength, chunkLength) + } + // remove chunk + this.chunksToReceive = this.chunksToReceive.filter((chunk, index) => chunk.x !== x || chunk.z !== z) + } + this.maybeStartReplay() + } + + async maybeStartReplay () { + if (this.chunksToReceive.length !== 0 || this.replayStarted) return + const lines = log.split('\n') + console.log('starting replay') + this.replayStarted = true + const waitForWorkersMessages = async () => { + if (!this.sectionFinishedToReceive) return + await new Promise(resolve => { + this.sectionFinishedToReceive!.resolve = resolve + }) + } + + for (const line of lines) { + if (line.includes('dispatchMessages dirty')) { + await waitForWorkersMessages() + this.worldRenderer.stopMesherMessagesProcessing = true + const message = JSON.parse(line.slice(line.indexOf('{'), line.lastIndexOf('}') + 1)) + if (!message.value) continue + const index = line.split(' ')[1] + const type = line.split(' ')[3] + // console.log('sending message', message.x, message.y, message.z) + this.worldRenderer.forceCallFromMesherReplayer = true + this.worldRenderer.setSectionDirty(new Vec3(message.x, message.y, message.z), message.value) + this.worldRenderer.forceCallFromMesherReplayer = false + } + if (line.includes('-> blockUpdate')) { + await waitForWorkersMessages() + this.worldRenderer.stopMesherMessagesProcessing = true + const message = JSON.parse(line.slice(line.indexOf('{'), line.lastIndexOf('}') + 1)) + this.worldRenderer.forceCallFromMesherReplayer = true + this.worldRenderer.setBlockStateIdInner(new Vec3(message.pos.x, message.pos.y, message.pos.z), message.stateId) + this.worldRenderer.forceCallFromMesherReplayer = false + } + + if (line.includes(' sectionFinished ')) { + if (!this.sectionFinishedToReceive) { + console.log('starting worker message processing validating') + this.worldRenderer.stopMesherMessagesProcessing = false + this.sectionFinishedToReceive = { + messagesLeft: [], + resolve: () => { + this.sectionFinishedToReceive = null + } + } + } + const parts = line.split(' ') + const coordsPart = parts.find(part => part.split(',').length === 3) + if (!coordsPart) throw new Error(`no coords part found ${line}`) + const [x, y, z] = coordsPart.split(',').map(Number) + this.sectionFinishedToReceive.messagesLeft.push(`${x},${y},${z}`) + } + } + } + + workerMessageReceived (type: string, message: any) { + if (type === 'sectionFinished') { + const { key } = message + if (!this.sectionFinishedToReceive) { + console.warn(`received sectionFinished message but no sectionFinishedToReceive ${key}`) + return + } + + const idx = this.sectionFinishedToReceive.messagesLeft.indexOf(key) + if (idx === -1) { + console.warn(`received sectionFinished message for non-outstanding section ${key}`) + return + } + this.sectionFinishedToReceive.messagesLeft.splice(idx, 1) + if (this.sectionFinishedToReceive.messagesLeft.length === 0) { + this.sectionFinishedToReceive.resolve() + } + } + } + + parseMesherLog () { + const lines = log.split('\n') + for (const line of lines) { + if (line.startsWith('-> chunk')) { + const chunk = JSON.parse(line.slice('-> chunk'.length)) + this.chunksToReceive.push(chunk) + continue + } + } + } +} diff --git a/renderer/viewer/lib/moreBlockDataGenerated.json b/renderer/viewer/lib/moreBlockDataGenerated.json new file mode 100644 index 00000000..a2ca2087 --- /dev/null +++ b/renderer/viewer/lib/moreBlockDataGenerated.json @@ -0,0 +1,714 @@ +{ + "lightLevels": { + "lava": 15, + "brown_mushroom": 1, + "torch": 14, + "wall_torch": 14, + "fire": 15, + "soul_fire": 10, + "soul_torch": 10, + "soul_wall_torch": 10, + "glowstone": 15, + "nether_portal": 11, + "jack_o_lantern": 15, + "enchanting_table": 7, + "brewing_stand": 1, + "lava_cauldron": 15, + "end_portal": 15, + "end_portal_frame": 1, + "dragon_egg": 1, + "ender_chest": 7, + "beacon": 15, + "sea_lantern": 15, + "end_rod": 14, + "end_gateway": 15, + "magma_block": 3, + "conduit": 15, + "lantern": 15, + "soul_lantern": 10, + "shroomlight": 15, + "crying_obsidian": 10, + "amethyst_cluster": 5, + "large_amethyst_bud": 4, + "medium_amethyst_bud": 2, + "small_amethyst_bud": 1, + "sculk_sensor": 1, + "sculk_catalyst": 6, + "ochre_froglight": 15, + "verdant_froglight": 15, + "pearlescent_froglight": 15 + }, + "noOcclusions": { + "mangrove_roots": true, + "oak_leaves": true, + "spruce_leaves": true, + "birch_leaves": true, + "jungle_leaves": true, + "acacia_leaves": true, + "cherry_leaves": true, + "dark_oak_leaves": true, + "mangrove_leaves": true, + "azalea_leaves": true, + "flowering_azalea_leaves": true, + "glass": true, + "white_bed": true, + "orange_bed": true, + "magenta_bed": true, + "light_blue_bed": true, + "yellow_bed": true, + "lime_bed": true, + "pink_bed": true, + "gray_bed": true, + "light_gray_bed": true, + "cyan_bed": true, + "purple_bed": true, + "blue_bed": true, + "brown_bed": true, + "green_bed": true, + "red_bed": true, + "black_bed": true, + "moving_piston": true, + "spawner": true, + "oak_door": true, + "ladder": true, + "iron_door": true, + "ice": true, + "white_stained_glass": true, + "orange_stained_glass": true, + "magenta_stained_glass": true, + "light_blue_stained_glass": true, + "yellow_stained_glass": true, + "lime_stained_glass": true, + "pink_stained_glass": true, + "gray_stained_glass": true, + "light_gray_stained_glass": true, + "cyan_stained_glass": true, + "purple_stained_glass": true, + "blue_stained_glass": true, + "brown_stained_glass": true, + "green_stained_glass": true, + "red_stained_glass": true, + "black_stained_glass": true, + "oak_trapdoor": true, + "spruce_trapdoor": true, + "birch_trapdoor": true, + "jungle_trapdoor": true, + "acacia_trapdoor": true, + "cherry_trapdoor": true, + "dark_oak_trapdoor": true, + "mangrove_trapdoor": true, + "bamboo_trapdoor": true, + "iron_bars": true, + "chain": true, + "glass_pane": true, + "lily_pad": true, + "brewing_stand": true, + "cauldron": true, + "dragon_egg": true, + "cocoa": true, + "beacon": true, + "hopper": true, + "white_stained_glass_pane": true, + "orange_stained_glass_pane": true, + "magenta_stained_glass_pane": true, + "light_blue_stained_glass_pane": true, + "yellow_stained_glass_pane": true, + "lime_stained_glass_pane": true, + "pink_stained_glass_pane": true, + "gray_stained_glass_pane": true, + "light_gray_stained_glass_pane": true, + "cyan_stained_glass_pane": true, + "purple_stained_glass_pane": true, + "blue_stained_glass_pane": true, + "brown_stained_glass_pane": true, + "green_stained_glass_pane": true, + "red_stained_glass_pane": true, + "black_stained_glass_pane": true, + "slime_block": true, + "barrier": true, + "light": true, + "iron_trapdoor": true, + "spruce_door": true, + "birch_door": true, + "jungle_door": true, + "acacia_door": true, + "cherry_door": true, + "dark_oak_door": true, + "mangrove_door": true, + "bamboo_door": true, + "end_rod": true, + "chorus_plant": true, + "chorus_flower": true, + "frosted_ice": true, + "turtle_egg": true, + "sniffer_egg": true, + "sea_pickle": true, + "conduit": true, + "bamboo": true, + "lantern": true, + "soul_lantern": true, + "campfire": true, + "soul_campfire": true, + "crimson_trapdoor": true, + "warped_trapdoor": true, + "crimson_door": true, + "warped_door": true, + "honey_block": true, + "candle": true, + "white_candle": true, + "orange_candle": true, + "magenta_candle": true, + "light_blue_candle": true, + "yellow_candle": true, + "lime_candle": true, + "pink_candle": true, + "gray_candle": true, + "light_gray_candle": true, + "cyan_candle": true, + "purple_candle": true, + "blue_candle": true, + "brown_candle": true, + "green_candle": true, + "red_candle": true, + "black_candle": true, + "amethyst_cluster": true, + "tinted_glass": true, + "lightning_rod": true, + "pointed_dripstone": true, + "azalea": true, + "flowering_azalea": true, + "frogspawn": true, + "decorated_pot": true + }, + "colors": { + "stone": "rgb(112, 112, 112)", + "granite": "rgb(151, 109, 77)", + "polished_granite": "rgb(151, 109, 77)", + "diorite": "rgb(255, 252, 245)", + "polished_diorite": "rgb(255, 252, 245)", + "andesite": "rgb(112, 112, 112)", + "polished_andesite": "rgb(112, 112, 112)", + "grass_block": "rgb(127, 178, 56)", + "dirt": "rgb(151, 109, 77)", + "coarse_dirt": "rgb(151, 109, 77)", + "podzol": "rgb(129, 86, 49)", + "cobblestone": "rgb(112, 112, 112)", + "oak_planks": "rgb(143, 119, 72)", + "spruce_planks": "rgb(129, 86, 49)", + "birch_planks": "rgb(247, 233, 163)", + "jungle_planks": "rgb(151, 109, 77)", + "acacia_planks": "rgb(216, 127, 51)", + "cherry_planks": "rgb(209, 177, 161)", + "dark_oak_planks": "rgb(102, 76, 51)", + "mangrove_planks": "rgb(153, 51, 51)", + "bamboo_planks": "rgb(229, 229, 51)", + "bamboo_mosaic": "rgb(229, 229, 51)", + "oak_sapling": "rgb(0, 124, 0)", + "spruce_sapling": "rgb(0, 124, 0)", + "birch_sapling": "rgb(0, 124, 0)", + "jungle_sapling": "rgb(0, 124, 0)", + "acacia_sapling": "rgb(0, 124, 0)", + "cherry_sapling": "rgb(242, 127, 165)", + "dark_oak_sapling": "rgb(0, 124, 0)", + "mangrove_propagule": "rgb(0, 124, 0)", + "bedrock": "rgb(112, 112, 112)", + "water": "rgb(64, 64, 255)", + "lava": "rgb(255, 0, 0)", + "sand": "rgb(247, 233, 163)", + "suspicious_sand": "rgb(247, 233, 163)", + "red_sand": "rgb(216, 127, 51)", + "gravel": "rgb(112, 112, 112)", + "suspicious_gravel": "rgb(112, 112, 112)", + "gold_ore": "rgb(112, 112, 112)", + "deepslate_gold_ore": "rgb(100, 100, 100)", + "iron_ore": "rgb(112, 112, 112)", + "deepslate_iron_ore": "rgb(100, 100, 100)", + "coal_ore": "rgb(112, 112, 112)", + "deepslate_coal_ore": "rgb(100, 100, 100)", + "nether_gold_ore": "rgb(112, 2, 0)", + "mangrove_roots": "rgb(129, 86, 49)", + "muddy_mangrove_roots": "rgb(129, 86, 49)", + "oak_wood": "rgb(143, 119, 72)", + "spruce_wood": "rgb(129, 86, 49)", + "birch_wood": "rgb(247, 233, 163)", + "jungle_wood": "rgb(151, 109, 77)", + "acacia_wood": "rgb(76, 76, 76)", + "cherry_wood": "rgb(57, 41, 35)", + "dark_oak_wood": "rgb(102, 76, 51)", + "mangrove_wood": "rgb(153, 51, 51)", + "stripped_oak_wood": "rgb(143, 119, 72)", + "stripped_spruce_wood": "rgb(129, 86, 49)", + "stripped_birch_wood": "rgb(247, 233, 163)", + "stripped_jungle_wood": "rgb(151, 109, 77)", + "stripped_acacia_wood": "rgb(216, 127, 51)", + "stripped_cherry_wood": "rgb(160, 77, 78)", + "stripped_dark_oak_wood": "rgb(102, 76, 51)", + "oak_leaves": "rgb(0, 124, 0)", + "spruce_leaves": "rgb(0, 124, 0)", + "birch_leaves": "rgb(0, 124, 0)", + "jungle_leaves": "rgb(0, 124, 0)", + "acacia_leaves": "rgb(0, 124, 0)", + "cherry_leaves": "rgb(242, 127, 165)", + "dark_oak_leaves": "rgb(0, 124, 0)", + "mangrove_leaves": "rgb(0, 124, 0)", + "azalea_leaves": "rgb(0, 124, 0)", + "flowering_azalea_leaves": "rgb(0, 124, 0)", + "sponge": "rgb(229, 229, 51)", + "wet_sponge": "rgb(229, 229, 51)", + "lapis_ore": "rgb(112, 112, 112)", + "deepslate_lapis_ore": "rgb(100, 100, 100)", + "lapis_block": "rgb(74, 128, 255)", + "dispenser": "rgb(112, 112, 112)", + "sandstone": "rgb(247, 233, 163)", + "chiseled_sandstone": "rgb(247, 233, 163)", + "cut_sandstone": "rgb(247, 233, 163)", + "note_block": "rgb(143, 119, 72)", + "sticky_piston": "rgb(112, 112, 112)", + "cobweb": "rgb(199, 199, 199)", + "grass": "rgb(0, 124, 0)", + "fern": "rgb(0, 124, 0)", + "dead_bush": "rgb(143, 119, 72)", + "seagrass": "rgb(64, 64, 255)", + "tall_seagrass": "rgb(64, 64, 255)", + "piston": "rgb(112, 112, 112)", + "piston_head": "rgb(112, 112, 112)", + "white_wool": "rgb(255, 255, 255)", + "orange_wool": "rgb(216, 127, 51)", + "magenta_wool": "rgb(178, 76, 216)", + "light_blue_wool": "rgb(102, 153, 216)", + "yellow_wool": "rgb(229, 229, 51)", + "lime_wool": "rgb(127, 204, 25)", + "pink_wool": "rgb(242, 127, 165)", + "gray_wool": "rgb(76, 76, 76)", + "light_gray_wool": "rgb(153, 153, 153)", + "cyan_wool": "rgb(76, 127, 153)", + "purple_wool": "rgb(127, 63, 178)", + "blue_wool": "rgb(51, 76, 178)", + "brown_wool": "rgb(102, 76, 51)", + "green_wool": "rgb(102, 127, 51)", + "red_wool": "rgb(153, 51, 51)", + "black_wool": "rgb(25, 25, 25)", + "moving_piston": "rgb(112, 112, 112)", + "dandelion": "rgb(0, 124, 0)", + "torchflower": "rgb(0, 124, 0)", + "poppy": "rgb(0, 124, 0)", + "blue_orchid": "rgb(0, 124, 0)", + "allium": "rgb(0, 124, 0)", + "azure_bluet": "rgb(0, 124, 0)", + "red_tulip": "rgb(0, 124, 0)", + "orange_tulip": "rgb(0, 124, 0)", + "white_tulip": "rgb(0, 124, 0)", + "pink_tulip": "rgb(0, 124, 0)", + "oxeye_daisy": "rgb(0, 124, 0)", + "cornflower": "rgb(0, 124, 0)", + "wither_rose": "rgb(0, 124, 0)", + "lily_of_the_valley": "rgb(0, 124, 0)", + "brown_mushroom": "rgb(102, 76, 51)", + "red_mushroom": "rgb(153, 51, 51)", + "gold_block": "rgb(250, 238, 77)", + "iron_block": "rgb(167, 167, 167)", + "bricks": "rgb(153, 51, 51)", + "tnt": "rgb(255, 0, 0)", + "bookshelf": "rgb(143, 119, 72)", + "chiseled_bookshelf": "rgb(143, 119, 72)", + "mossy_cobblestone": "rgb(112, 112, 112)", + "obsidian": "rgb(25, 25, 25)", + "fire": "rgb(255, 0, 0)", + "soul_fire": "rgb(102, 153, 216)", + "spawner": "rgb(112, 112, 112)", + "chest": "rgb(143, 119, 72)", + "diamond_ore": "rgb(112, 112, 112)", + "deepslate_diamond_ore": "rgb(100, 100, 100)", + "diamond_block": "rgb(92, 219, 213)", + "crafting_table": "rgb(143, 119, 72)", + "wheat": "rgb(0, 124, 0)", + "farmland": "rgb(151, 109, 77)", + "furnace": "rgb(112, 112, 112)", + "oak_sign": "rgb(143, 119, 72)", + "birch_sign": "rgb(247, 233, 163)", + "acacia_sign": "rgb(216, 127, 51)", + "oak_wall_sign": "rgb(143, 119, 72)", + "birch_wall_sign": "rgb(247, 233, 163)", + "acacia_wall_sign": "rgb(216, 127, 51)", + "birch_hanging_sign": "rgb(247, 233, 163)", + "acacia_hanging_sign": "rgb(216, 127, 51)", + "cherry_hanging_sign": "rgb(160, 77, 78)", + "crimson_hanging_sign": "rgb(148, 63, 97)", + "warped_hanging_sign": "rgb(58, 142, 140)", + "bamboo_hanging_sign": "rgb(229, 229, 51)", + "spruce_wall_hanging_sign": "rgb(143, 119, 72)", + "birch_wall_hanging_sign": "rgb(247, 233, 163)", + "acacia_wall_hanging_sign": "rgb(216, 127, 51)", + "cherry_wall_hanging_sign": "rgb(160, 77, 78)", + "crimson_wall_hanging_sign": "rgb(148, 63, 97)", + "warped_wall_hanging_sign": "rgb(58, 142, 140)", + "bamboo_wall_hanging_sign": "rgb(229, 229, 51)", + "stone_pressure_plate": "rgb(112, 112, 112)", + "iron_door": "rgb(167, 167, 167)", + "redstone_ore": "rgb(112, 112, 112)", + "deepslate_redstone_ore": "rgb(100, 100, 100)", + "snow": "rgb(255, 255, 255)", + "ice": "rgb(160, 160, 255)", + "snow_block": "rgb(255, 255, 255)", + "cactus": "rgb(0, 124, 0)", + "clay": "rgb(164, 168, 184)", + "sugar_cane": "rgb(0, 124, 0)", + "jukebox": "rgb(151, 109, 77)", + "pumpkin": "rgb(216, 127, 51)", + "netherrack": "rgb(112, 2, 0)", + "soul_sand": "rgb(102, 76, 51)", + "soul_soil": "rgb(102, 76, 51)", + "basalt": "rgb(25, 25, 25)", + "polished_basalt": "rgb(25, 25, 25)", + "glowstone": "rgb(247, 233, 163)", + "carved_pumpkin": "rgb(216, 127, 51)", + "jack_o_lantern": "rgb(216, 127, 51)", + "oak_trapdoor": "rgb(143, 119, 72)", + "spruce_trapdoor": "rgb(129, 86, 49)", + "birch_trapdoor": "rgb(247, 233, 163)", + "jungle_trapdoor": "rgb(151, 109, 77)", + "acacia_trapdoor": "rgb(216, 127, 51)", + "cherry_trapdoor": "rgb(209, 177, 161)", + "dark_oak_trapdoor": "rgb(102, 76, 51)", + "mangrove_trapdoor": "rgb(153, 51, 51)", + "bamboo_trapdoor": "rgb(229, 229, 51)", + "stone_bricks": "rgb(112, 112, 112)", + "mossy_stone_bricks": "rgb(112, 112, 112)", + "cracked_stone_bricks": "rgb(112, 112, 112)", + "chiseled_stone_bricks": "rgb(112, 112, 112)", + "mud_bricks": "rgb(135, 107, 98)", + "infested_stone": "rgb(164, 168, 184)", + "infested_cobblestone": "rgb(164, 168, 184)", + "infested_stone_bricks": "rgb(164, 168, 184)", + "infested_mossy_stone_bricks": "rgb(164, 168, 184)", + "infested_cracked_stone_bricks": "rgb(164, 168, 184)", + "infested_chiseled_stone_bricks": "rgb(164, 168, 184)", + "brown_mushroom_block": "rgb(151, 109, 77)", + "red_mushroom_block": "rgb(153, 51, 51)", + "mushroom_stem": "rgb(199, 199, 199)", + "melon": "rgb(127, 204, 25)", + "attached_pumpkin_stem": "rgb(0, 124, 0)", + "attached_melon_stem": "rgb(0, 124, 0)", + "pumpkin_stem": "rgb(0, 124, 0)", + "melon_stem": "rgb(0, 124, 0)", + "vine": "rgb(0, 124, 0)", + "glow_lichen": "rgb(127, 167, 150)", + "mycelium": "rgb(127, 63, 178)", + "lily_pad": "rgb(0, 124, 0)", + "nether_bricks": "rgb(112, 2, 0)", + "nether_brick_fence": "rgb(112, 2, 0)", + "nether_wart": "rgb(153, 51, 51)", + "enchanting_table": "rgb(153, 51, 51)", + "brewing_stand": "rgb(167, 167, 167)", + "cauldron": "rgb(112, 112, 112)", + "end_portal": "rgb(25, 25, 25)", + "end_portal_frame": "rgb(102, 127, 51)", + "end_stone": "rgb(247, 233, 163)", + "dragon_egg": "rgb(25, 25, 25)", + "cocoa": "rgb(0, 124, 0)", + "emerald_ore": "rgb(112, 112, 112)", + "deepslate_emerald_ore": "rgb(100, 100, 100)", + "ender_chest": "rgb(112, 112, 112)", + "emerald_block": "rgb(0, 217, 58)", + "command_block": "rgb(102, 76, 51)", + "beacon": "rgb(92, 219, 213)", + "carrots": "rgb(0, 124, 0)", + "potatoes": "rgb(0, 124, 0)", + "anvil": "rgb(167, 167, 167)", + "chipped_anvil": "rgb(167, 167, 167)", + "damaged_anvil": "rgb(167, 167, 167)", + "trapped_chest": "rgb(143, 119, 72)", + "light_weighted_pressure_plate": "rgb(250, 238, 77)", + "heavy_weighted_pressure_plate": "rgb(167, 167, 167)", + "daylight_detector": "rgb(143, 119, 72)", + "redstone_block": "rgb(255, 0, 0)", + "nether_quartz_ore": "rgb(112, 2, 0)", + "hopper": "rgb(112, 112, 112)", + "quartz_block": "rgb(255, 252, 245)", + "chiseled_quartz_block": "rgb(255, 252, 245)", + "quartz_pillar": "rgb(255, 252, 245)", + "dropper": "rgb(112, 112, 112)", + "white_terracotta": "rgb(209, 177, 161)", + "orange_terracotta": "rgb(159, 82, 36)", + "magenta_terracotta": "rgb(149, 87, 108)", + "light_blue_terracotta": "rgb(112, 108, 138)", + "yellow_terracotta": "rgb(186, 133, 36)", + "lime_terracotta": "rgb(103, 117, 53)", + "pink_terracotta": "rgb(160, 77, 78)", + "gray_terracotta": "rgb(57, 41, 35)", + "light_gray_terracotta": "rgb(135, 107, 98)", + "cyan_terracotta": "rgb(87, 92, 92)", + "purple_terracotta": "rgb(122, 73, 88)", + "blue_terracotta": "rgb(76, 62, 92)", + "brown_terracotta": "rgb(76, 50, 35)", + "green_terracotta": "rgb(76, 82, 42)", + "red_terracotta": "rgb(142, 60, 46)", + "black_terracotta": "rgb(37, 22, 16)", + "slime_block": "rgb(127, 178, 56)", + "iron_trapdoor": "rgb(167, 167, 167)", + "prismarine": "rgb(76, 127, 153)", + "prismarine_bricks": "rgb(92, 219, 213)", + "dark_prismarine": "rgb(92, 219, 213)", + "prismarine_slab": "rgb(76, 127, 153)", + "prismarine_brick_slab": "rgb(92, 219, 213)", + "dark_prismarine_slab": "rgb(92, 219, 213)", + "sea_lantern": "rgb(255, 252, 245)", + "hay_block": "rgb(229, 229, 51)", + "white_carpet": "rgb(255, 255, 255)", + "orange_carpet": "rgb(216, 127, 51)", + "magenta_carpet": "rgb(178, 76, 216)", + "light_blue_carpet": "rgb(102, 153, 216)", + "yellow_carpet": "rgb(229, 229, 51)", + "lime_carpet": "rgb(127, 204, 25)", + "pink_carpet": "rgb(242, 127, 165)", + "gray_carpet": "rgb(76, 76, 76)", + "light_gray_carpet": "rgb(153, 153, 153)", + "cyan_carpet": "rgb(76, 127, 153)", + "purple_carpet": "rgb(127, 63, 178)", + "blue_carpet": "rgb(51, 76, 178)", + "brown_carpet": "rgb(102, 76, 51)", + "green_carpet": "rgb(102, 127, 51)", + "red_carpet": "rgb(153, 51, 51)", + "black_carpet": "rgb(25, 25, 25)", + "terracotta": "rgb(216, 127, 51)", + "coal_block": "rgb(25, 25, 25)", + "packed_ice": "rgb(160, 160, 255)", + "sunflower": "rgb(0, 124, 0)", + "lilac": "rgb(0, 124, 0)", + "rose_bush": "rgb(0, 124, 0)", + "peony": "rgb(0, 124, 0)", + "tall_grass": "rgb(0, 124, 0)", + "large_fern": "rgb(0, 124, 0)", + "white_banner": "rgb(143, 119, 72)", + "orange_banner": "rgb(143, 119, 72)", + "magenta_banner": "rgb(143, 119, 72)", + "light_blue_banner": "rgb(143, 119, 72)", + "yellow_banner": "rgb(143, 119, 72)", + "lime_banner": "rgb(143, 119, 72)", + "pink_banner": "rgb(143, 119, 72)", + "gray_banner": "rgb(143, 119, 72)", + "light_gray_banner": "rgb(143, 119, 72)", + "cyan_banner": "rgb(143, 119, 72)", + "purple_banner": "rgb(143, 119, 72)", + "blue_banner": "rgb(143, 119, 72)", + "brown_banner": "rgb(143, 119, 72)", + "green_banner": "rgb(143, 119, 72)", + "red_banner": "rgb(143, 119, 72)", + "black_banner": "rgb(143, 119, 72)", + "white_wall_banner": "rgb(143, 119, 72)", + "orange_wall_banner": "rgb(143, 119, 72)", + "magenta_wall_banner": "rgb(143, 119, 72)", + "light_blue_wall_banner": "rgb(143, 119, 72)", + "yellow_wall_banner": "rgb(143, 119, 72)", + "lime_wall_banner": "rgb(143, 119, 72)", + "pink_wall_banner": "rgb(143, 119, 72)", + "gray_wall_banner": "rgb(143, 119, 72)", + "light_gray_wall_banner": "rgb(143, 119, 72)", + "cyan_wall_banner": "rgb(143, 119, 72)", + "purple_wall_banner": "rgb(143, 119, 72)", + "blue_wall_banner": "rgb(143, 119, 72)", + "brown_wall_banner": "rgb(143, 119, 72)", + "green_wall_banner": "rgb(143, 119, 72)", + "red_wall_banner": "rgb(143, 119, 72)", + "black_wall_banner": "rgb(143, 119, 72)", + "red_sandstone": "rgb(216, 127, 51)", + "chiseled_red_sandstone": "rgb(216, 127, 51)", + "cut_red_sandstone": "rgb(216, 127, 51)", + "oak_slab": "rgb(143, 119, 72)", + "spruce_slab": "rgb(129, 86, 49)", + "birch_slab": "rgb(247, 233, 163)", + "jungle_slab": "rgb(151, 109, 77)", + "acacia_slab": "rgb(216, 127, 51)", + "cherry_slab": "rgb(209, 177, 161)", + "dark_oak_slab": "rgb(102, 76, 51)", + "mangrove_slab": "rgb(153, 51, 51)", + "bamboo_slab": "rgb(229, 229, 51)", + "bamboo_mosaic_slab": "rgb(229, 229, 51)", + "stone_slab": "rgb(112, 112, 112)", + "smooth_stone_slab": "rgb(112, 112, 112)", + "sandstone_slab": "rgb(247, 233, 163)", + "cut_sandstone_slab": "rgb(247, 233, 163)", + "petrified_oak_slab": "rgb(143, 119, 72)", + "cobblestone_slab": "rgb(112, 112, 112)", + "brick_slab": "rgb(153, 51, 51)", + "stone_brick_slab": "rgb(112, 112, 112)", + "mud_brick_slab": "rgb(135, 107, 98)", + "nether_brick_slab": "rgb(112, 2, 0)", + "quartz_slab": "rgb(255, 252, 245)", + "red_sandstone_slab": "rgb(216, 127, 51)", + "cut_red_sandstone_slab": "rgb(216, 127, 51)", + "purpur_slab": "rgb(178, 76, 216)", + "smooth_stone": "rgb(112, 112, 112)", + "smooth_sandstone": "rgb(247, 233, 163)", + "smooth_quartz": "rgb(255, 252, 245)", + "smooth_red_sandstone": "rgb(216, 127, 51)", + "chorus_plant": "rgb(127, 63, 178)", + "chorus_flower": "rgb(127, 63, 178)", + "purpur_block": "rgb(178, 76, 216)", + "purpur_pillar": "rgb(178, 76, 216)", + "end_stone_bricks": "rgb(247, 233, 163)", + "torchflower_crop": "rgb(0, 124, 0)", + "pitcher_crop": "rgb(0, 124, 0)", + "pitcher_plant": "rgb(0, 124, 0)", + "beetroots": "rgb(0, 124, 0)", + "dirt_path": "rgb(151, 109, 77)", + "end_gateway": "rgb(25, 25, 25)", + "repeating_command_block": "rgb(127, 63, 178)", + "chain_command_block": "rgb(102, 127, 51)", + "frosted_ice": "rgb(160, 160, 255)", + "magma_block": "rgb(112, 2, 0)", + "nether_wart_block": "rgb(153, 51, 51)", + "red_nether_bricks": "rgb(112, 2, 0)", + "bone_block": "rgb(247, 233, 163)", + "observer": "rgb(112, 112, 112)", + "kelp": "rgb(64, 64, 255)", + "kelp_plant": "rgb(64, 64, 255)", + "dried_kelp_block": "rgb(102, 127, 51)", + "turtle_egg": "rgb(247, 233, 163)", + "sniffer_egg": "rgb(153, 51, 51)", + "dead_tube_coral_block": "rgb(76, 76, 76)", + "dead_brain_coral_block": "rgb(76, 76, 76)", + "dead_bubble_coral_block": "rgb(76, 76, 76)", + "dead_fire_coral_block": "rgb(76, 76, 76)", + "dead_horn_coral_block": "rgb(76, 76, 76)", + "tube_coral_block": "rgb(51, 76, 178)", + "brain_coral_block": "rgb(242, 127, 165)", + "bubble_coral_block": "rgb(127, 63, 178)", + "fire_coral_block": "rgb(153, 51, 51)", + "horn_coral_block": "rgb(229, 229, 51)", + "dead_tube_coral": "rgb(76, 76, 76)", + "dead_brain_coral": "rgb(76, 76, 76)", + "dead_bubble_coral": "rgb(76, 76, 76)", + "dead_fire_coral": "rgb(76, 76, 76)", + "dead_horn_coral": "rgb(76, 76, 76)", + "tube_coral": "rgb(51, 76, 178)", + "brain_coral": "rgb(242, 127, 165)", + "bubble_coral": "rgb(127, 63, 178)", + "fire_coral": "rgb(153, 51, 51)", + "horn_coral": "rgb(229, 229, 51)", + "dead_tube_coral_fan": "rgb(76, 76, 76)", + "dead_brain_coral_fan": "rgb(76, 76, 76)", + "dead_bubble_coral_fan": "rgb(76, 76, 76)", + "dead_fire_coral_fan": "rgb(76, 76, 76)", + "dead_horn_coral_fan": "rgb(76, 76, 76)", + "tube_coral_fan": "rgb(51, 76, 178)", + "brain_coral_fan": "rgb(242, 127, 165)", + "bubble_coral_fan": "rgb(127, 63, 178)", + "fire_coral_fan": "rgb(153, 51, 51)", + "horn_coral_fan": "rgb(229, 229, 51)", + "dead_tube_coral_wall_fan": "rgb(76, 76, 76)", + "dead_brain_coral_wall_fan": "rgb(76, 76, 76)", + "dead_bubble_coral_wall_fan": "rgb(76, 76, 76)", + "dead_fire_coral_wall_fan": "rgb(76, 76, 76)", + "dead_horn_coral_wall_fan": "rgb(76, 76, 76)", + "tube_coral_wall_fan": "rgb(51, 76, 178)", + "brain_coral_wall_fan": "rgb(242, 127, 165)", + "bubble_coral_wall_fan": "rgb(127, 63, 178)", + "fire_coral_wall_fan": "rgb(153, 51, 51)", + "horn_coral_wall_fan": "rgb(229, 229, 51)", + "sea_pickle": "rgb(102, 127, 51)", + "blue_ice": "rgb(160, 160, 255)", + "conduit": "rgb(92, 219, 213)", + "bamboo_sapling": "rgb(143, 119, 72)", + "bamboo": "rgb(0, 124, 0)", + "bubble_column": "rgb(64, 64, 255)", + "scaffolding": "rgb(247, 233, 163)", + "loom": "rgb(143, 119, 72)", + "barrel": "rgb(143, 119, 72)", + "smoker": "rgb(112, 112, 112)", + "blast_furnace": "rgb(112, 112, 112)", + "cartography_table": "rgb(143, 119, 72)", + "fletching_table": "rgb(143, 119, 72)", + "grindstone": "rgb(167, 167, 167)", + "lectern": "rgb(143, 119, 72)", + "smithing_table": "rgb(143, 119, 72)", + "stonecutter": "rgb(112, 112, 112)", + "bell": "rgb(250, 238, 77)", + "lantern": "rgb(167, 167, 167)", + "soul_lantern": "rgb(167, 167, 167)", + "campfire": "rgb(129, 86, 49)", + "soul_campfire": "rgb(129, 86, 49)", + "sweet_berry_bush": "rgb(0, 124, 0)", + "warped_hyphae": "rgb(86, 44, 62)", + "stripped_warped_hyphae": "rgb(86, 44, 62)", + "warped_nylium": "rgb(22, 126, 134)", + "warped_fungus": "rgb(76, 127, 153)", + "warped_wart_block": "rgb(20, 180, 133)", + "warped_roots": "rgb(76, 127, 153)", + "nether_sprouts": "rgb(76, 127, 153)", + "crimson_hyphae": "rgb(92, 25, 29)", + "stripped_crimson_hyphae": "rgb(92, 25, 29)", + "crimson_nylium": "rgb(189, 48, 49)", + "crimson_fungus": "rgb(112, 2, 0)", + "shroomlight": "rgb(153, 51, 51)", + "weeping_vines": "rgb(112, 2, 0)", + "weeping_vines_plant": "rgb(112, 2, 0)", + "twisting_vines": "rgb(76, 127, 153)", + "twisting_vines_plant": "rgb(76, 127, 153)", + "crimson_roots": "rgb(112, 2, 0)", + "crimson_planks": "rgb(148, 63, 97)", + "warped_planks": "rgb(58, 142, 140)", + "structure_block": "rgb(153, 153, 153)", + "jigsaw": "rgb(153, 153, 153)", + "composter": "rgb(143, 119, 72)", + "target": "rgb(255, 252, 245)", + "bee_nest": "rgb(229, 229, 51)", + "beehive": "rgb(143, 119, 72)", + "honey_block": "rgb(216, 127, 51)", + "honeycomb_block": "rgb(216, 127, 51)", + "netherite_block": "rgb(25, 25, 25)", + "ancient_debris": "rgb(25, 25, 25)", + "crying_obsidian": "rgb(25, 25, 25)", + "respawn_anchor": "rgb(25, 25, 25)", + "lodestone": "rgb(167, 167, 167)", + "blackstone": "rgb(25, 25, 25)", + "polished_blackstone_pressure_plate": "rgb(25, 25, 25)", + "chiseled_nether_bricks": "rgb(112, 2, 0)", + "cracked_nether_bricks": "rgb(112, 2, 0)", + "amethyst_block": "rgb(127, 63, 178)", + "budding_amethyst": "rgb(127, 63, 178)", + "amethyst_cluster": "rgb(127, 63, 178)", + "tuff": "rgb(57, 41, 35)", + "calcite": "rgb(209, 177, 161)", + "tinted_glass": "rgb(76, 76, 76)", + "powder_snow": "rgb(255, 255, 255)", + "sculk_sensor": "rgb(76, 127, 153)", + "sculk": "rgb(25, 25, 25)", + "sculk_vein": "rgb(25, 25, 25)", + "sculk_catalyst": "rgb(25, 25, 25)", + "sculk_shrieker": "rgb(25, 25, 25)", + "oxidized_copper": "rgb(22, 126, 134)", + "weathered_copper": "rgb(58, 142, 140)", + "exposed_copper": "rgb(135, 107, 98)", + "copper_block": "rgb(216, 127, 51)", + "deepslate_copper_ore": "rgb(100, 100, 100)", + "lightning_rod": "rgb(216, 127, 51)", + "pointed_dripstone": "rgb(76, 50, 35)", + "dripstone_block": "rgb(76, 50, 35)", + "cave_vines": "rgb(0, 124, 0)", + "cave_vines_plant": "rgb(0, 124, 0)", + "spore_blossom": "rgb(0, 124, 0)", + "azalea": "rgb(0, 124, 0)", + "flowering_azalea": "rgb(0, 124, 0)", + "moss_carpet": "rgb(102, 127, 51)", + "pink_petals": "rgb(0, 124, 0)", + "moss_block": "rgb(102, 127, 51)", + "big_dripleaf": "rgb(0, 124, 0)", + "big_dripleaf_stem": "rgb(0, 124, 0)", + "small_dripleaf": "rgb(0, 124, 0)", + "hanging_roots": "rgb(151, 109, 77)", + "rooted_dirt": "rgb(151, 109, 77)", + "mud": "rgb(87, 92, 92)", + "deepslate": "rgb(100, 100, 100)", + "infested_deepslate": "rgb(100, 100, 100)", + "raw_iron_block": "rgb(216, 175, 147)", + "raw_copper_block": "rgb(216, 127, 51)", + "raw_gold_block": "rgb(250, 238, 77)", + "ochre_froglight": "rgb(247, 233, 163)", + "verdant_froglight": "rgb(127, 167, 150)", + "pearlescent_froglight": "rgb(242, 127, 165)", + "frogspawn": "rgb(64, 64, 255)", + "reinforced_deepslate": "rgb(100, 100, 100)", + "decorated_pot": "rgb(142, 60, 46)" + } +} diff --git a/renderer/viewer/lib/simpleUtils.ts b/renderer/viewer/lib/simpleUtils.ts new file mode 100644 index 00000000..2d0b6255 --- /dev/null +++ b/renderer/viewer/lib/simpleUtils.ts @@ -0,0 +1,35 @@ +export async function getBufferFromStream (stream) { + return new Promise((resolve, reject) => { + let buffer = Buffer.from([]) + stream.on('data', buf => { + buffer = Buffer.concat([buffer, buf]) + }) + stream.on('end', () => resolve(buffer)) + stream.on('error', reject) + }) +} + +export function openURL (url, newTab = true) { + if (newTab) { + window.open(url, '_blank', 'noopener,noreferrer') + } else { + window.open(url, '_self') + } +} + +export const isMobile = () => { + return window.matchMedia('(pointer: coarse)').matches || navigator.userAgent.includes('Mobile') +} + +export function chunkPos (pos: { x: number, z: number }) { + const x = Math.floor(pos.x / 16) + const z = Math.floor(pos.z / 16) + return [x, z] +} + +export function sectionPos (pos: { x: number, y: number, z: number }) { + const x = Math.floor(pos.x / 16) + const y = Math.floor(pos.y / 16) + const z = Math.floor(pos.z / 16) + return [x, y, z] +} diff --git a/renderer/viewer/lib/smoothSwitcher.ts b/renderer/viewer/lib/smoothSwitcher.ts new file mode 100644 index 00000000..74eb1171 --- /dev/null +++ b/renderer/viewer/lib/smoothSwitcher.ts @@ -0,0 +1,168 @@ +import * as tweenJs from '@tweenjs/tween.js' +import { AnimationController } from './animationController' + +export type StateProperties = Record +export type StateGetterFn = () => StateProperties +export type StateSetterFn = (property: string, value: number) => void + +// Speed in units per second for each property type +const DEFAULT_SPEEDS = { + x: 3000, // pixels/units per second + y: 3000, + z: 3000, + rotation: Math.PI, // radians per second + scale: 1, // scale units per second + default: 3000 // default speed for unknown properties +} + +export class SmoothSwitcher { + private readonly animationController = new AnimationController() + // private readonly currentState: StateProperties = {} + private readonly defaultState: StateProperties + private readonly speeds: Record + public currentStateName = '' + public transitioningToStateName = '' + + constructor ( + public getState: StateGetterFn, + public setState: StateSetterFn, + speeds?: Partial> + ) { + + // Initialize speeds with defaults and overrides + this.speeds = { ...DEFAULT_SPEEDS } + if (speeds) { + Object.assign(this.speeds, speeds) + } + + // Store initial values + this.defaultState = this.getState() + } + + /** + * Calculate transition duration based on the largest property change + */ + private calculateDuration (newState: Partial): number { + let maxDuration = 0 + const currentState = this.getState() + + for (const [key, targetValue] of Object.entries(newState)) { + const currentValue = currentState[key] + const diff = Math.abs(targetValue! - currentValue) + const speed = this.getPropertySpeed(key) + const duration = (diff / speed) * 1000 // Convert to milliseconds + + maxDuration = Math.max(maxDuration, duration) + } + + // Ensure minimum duration of 50ms and maximum of 2000ms + return Math.min(Math.max(maxDuration, 200), 2000) + } + + private getPropertySpeed (property: string): number { + // Check for specific property speed + if (property in this.speeds) { + return this.speeds[property] + } + + // Check for property type (rotation, scale, etc.) + if (property.toLowerCase().includes('rotation')) return this.speeds.rotation + if (property.toLowerCase().includes('scale')) return this.speeds.scale + if (property.toLowerCase() === 'x' || property.toLowerCase() === 'y' || property.toLowerCase() === 'z') { + return this.speeds[property] + } + + return this.speeds.default + } + + /** + * Start a transition to a new state + * @param newState Partial state - only need to specify properties that change + * @param easing Easing function to use + */ + startTransition ( + newState: Partial, + stateName?: string, + onEnd?: () => void, + easing: (amount: number) => number = tweenJs.Easing.Linear.None, + onCancelled?: () => void + ): void { + if (this.isTransitioning) { + this.animationController.forceFinish(false) + } + + this.transitioningToStateName = stateName ?? '' + const state = this.getState() + + const duration = this.calculateDuration(newState) + // console.log('duration', duration, JSON.stringify(state), JSON.stringify(newState)) + + void this.animationController.startAnimation(() => { + const group = new tweenJs.Group() + new tweenJs.Tween(state, group) + .to(newState, duration) + .easing(easing) + .onUpdate((obj) => { + for (const key of Object.keys(obj)) { + this.setState(key, obj[key]) + } + }) + .onComplete(() => { + this.animationController.forceFinish() + this.currentStateName = this.transitioningToStateName + this.transitioningToStateName = '' + onEnd?.() + }) + .start() + return group + }, onCancelled) + } + + /** + * Reset to default state + */ + reset (): void { + this.startTransition(this.defaultState) + } + + + /** + * Update the animation (should be called in your render/update loop) + */ + update (): void { + this.animationController.update() + } + + /** + * Force finish the current transition + */ + forceFinish (): void { + this.animationController.forceFinish() + } + + /** + * Start a new transition to the specified state + */ + transitionTo ( + newState: Partial, + stateName?: string, + onEnd?: () => void, + onCancelled?: () => void + ): void { + this.startTransition(newState, stateName, onEnd, tweenJs.Easing.Linear.None, onCancelled) + } + + /** + * Get the current value of a property + */ + getCurrentValue (property: string): number { + return this.getState()[property] + } + + /** + * Check if currently transitioning + */ + get isTransitioning (): boolean { + return this.animationController.isActive + } +} diff --git a/renderer/viewer/lib/ui/newStats.ts b/renderer/viewer/lib/ui/newStats.ts new file mode 100644 index 00000000..4a1b0a0f --- /dev/null +++ b/renderer/viewer/lib/ui/newStats.ts @@ -0,0 +1,112 @@ +/* eslint-disable unicorn/prefer-dom-node-text-content */ +const rightOffset = 0 + +const stats = {} + +let lastY = 40 +export const addNewStat = (id: string, width = 80, x = rightOffset, y = lastY) => { + const pane = document.createElement('div') + pane.style.position = 'fixed' + pane.style.top = `${y ?? lastY}px` + pane.style.right = `${x}px` + // gray bg + pane.style.backgroundColor = 'rgba(0, 0, 0, 0.7)' + pane.style.color = 'white' + pane.style.padding = '2px' + pane.style.fontFamily = 'monospace' + pane.style.fontSize = '12px' + pane.style.zIndex = '100' + pane.style.pointerEvents = 'none' + document.body.appendChild(pane) + stats[id] = pane + if (y === undefined && x === rightOffset) { // otherwise it's a custom position + // rightOffset += width + lastY += 20 + } + + return { + updateText (text: string) { + if (pane.innerText === text) return + pane.innerText = text + }, + setVisibility (visible: boolean) { + pane.style.display = visible ? 'block' : 'none' + } + } +} + +export const addNewStat2 = (id: string, { top, bottom, right, left, displayOnlyWhenWider }: { top?: number, bottom?: number, right?: number, left?: number, displayOnlyWhenWider?: number }) => { + if (top === undefined && bottom === undefined) top = 0 + const pane = document.createElement('div') + pane.style.position = 'fixed' + if (top !== undefined) { + pane.style.top = `${top}px` + } + if (bottom !== undefined) { + pane.style.bottom = `${bottom}px` + } + if (left !== undefined) { + pane.style.left = `${left}px` + } + if (right !== undefined) { + pane.style.right = `${right}px` + } + // gray bg + pane.style.backgroundColor = 'rgba(0, 0, 0, 0.7)' + pane.style.color = 'white' + pane.style.padding = '2px' + pane.style.fontFamily = 'monospace' + pane.style.fontSize = '12px' + pane.style.zIndex = '10000' + pane.style.pointerEvents = 'none' + document.body.appendChild(pane) + stats[id] = pane + + const resizeCheck = () => { + if (!displayOnlyWhenWider) return + pane.style.display = window.innerWidth > displayOnlyWhenWider ? 'block' : 'none' + } + window.addEventListener('resize', resizeCheck) + resizeCheck() + + return { + updateText (text: string) { + pane.innerText = text + }, + setVisibility (visible: boolean) { + pane.style.display = visible ? 'block' : 'none' + } + } +} + +export const updateStatText = (id, text) => { + if (!stats[id]) return + stats[id].innerText = text +} + +export const updatePanesVisibility = (visible: boolean) => { + // eslint-disable-next-line guard-for-in + for (const id in stats) { + stats[id].style.display = visible ? 'block' : 'none' + } +} + +export const removeAllStats = () => { + // eslint-disable-next-line guard-for-in + for (const id in stats) { + removeStat(id) + } +} + +export const removeStat = (id) => { + if (!stats[id]) return + stats[id].remove() + delete stats[id] +} + +if (typeof customEvents !== 'undefined') { + customEvents.on('gameLoaded', () => { + const chunksLoaded = addNewStat('chunks-loaded', 80, 0, 0) + const chunksTotal = addNewStat('chunks-read', 80, 0, 0) + }) +} diff --git a/renderer/viewer/lib/utils.ts b/renderer/viewer/lib/utils.ts new file mode 100644 index 00000000..f471aa9d --- /dev/null +++ b/renderer/viewer/lib/utils.ts @@ -0,0 +1,57 @@ +export const loadScript = async function (scriptSrc: string, highPriority = true): Promise { + const existingScript = document.querySelector(`script[src="${scriptSrc}"]`) + if (existingScript) { + return existingScript + } + + return new Promise((resolve, reject) => { + const scriptElement = document.createElement('script') + scriptElement.src = scriptSrc + + if (highPriority) { + scriptElement.fetchPriority = 'high' + } + scriptElement.async = true + + scriptElement.addEventListener('load', () => { + resolve(scriptElement) + }) + + scriptElement.onerror = (error) => { + reject(new Error(typeof error === 'string' ? error : (error as any).message)) + scriptElement.remove() + } + + document.head.appendChild(scriptElement) + }) +} + +const detectFullOffscreenCanvasSupport = () => { + if (typeof OffscreenCanvas === 'undefined') return false + try { + const canvas = new OffscreenCanvas(1, 1) + // Try to get a WebGL context - this will fail on iOS where only 2D is supported (iOS 16) + const gl = canvas.getContext('webgl2') || canvas.getContext('webgl') + return gl !== null + } catch (e) { + return false + } +} + +const hasFullOffscreenCanvasSupport = detectFullOffscreenCanvasSupport() + +export const createCanvas = (width: number, height: number): OffscreenCanvas => { + if (hasFullOffscreenCanvasSupport) { + return new OffscreenCanvas(width, height) + } + const canvas = document.createElement('canvas') + canvas.width = width + canvas.height = height + return canvas as unknown as OffscreenCanvas // todo-low +} + +export async function loadImageFromUrl (imageUrl: string): Promise { + const response = await fetch(imageUrl) + const blob = await response.blob() + return createImageBitmap(blob) +} diff --git a/renderer/viewer/lib/utils/proxy.ts b/renderer/viewer/lib/utils/proxy.ts new file mode 100644 index 00000000..d30ceb7e --- /dev/null +++ b/renderer/viewer/lib/utils/proxy.ts @@ -0,0 +1,23 @@ +import { subscribeKey } from 'valtio/utils' + +// eslint-disable-next-line max-params +export function watchProperty, K> (asyncGetter: (value: T[keyof T]) => Promise, valtioProxy: T, key: keyof T, readySetter: (res: K) => void, cleanup?: (res: K) => void) { + let i = 0 + let lastRes: K | undefined + const request = async () => { + const req = ++i + const res = await asyncGetter(valtioProxy[key]) + if (req === i) { + if (lastRes) { + cleanup?.(lastRes) + } + readySetter(res) + lastRes = res + } else { + // rejected + cleanup?.(res) + } + } + void request() + return subscribeKey(valtioProxy, key, request) +} diff --git a/renderer/viewer/lib/utils/skins.ts b/renderer/viewer/lib/utils/skins.ts new file mode 100644 index 00000000..3163702c --- /dev/null +++ b/renderer/viewer/lib/utils/skins.ts @@ -0,0 +1,59 @@ +import { loadSkinToCanvas } from 'skinview-utils' +import { createCanvas, loadImageFromUrl } from '../utils' + +export { default as stevePngUrl } from 'mc-assets/dist/other-textures/latest/entity/player/wide/steve.png' + +const config = { + apiEnabled: true, +} + +export const setSkinsConfig = (newConfig: Partial) => { + Object.assign(config, newConfig) +} + +export async function loadSkinFromUsername (username: string, type: 'skin' | 'cape'): Promise { + if (!config.apiEnabled) return + + if (type === 'cape') return + const url = `https://playerdb.co/api/player/minecraft/${username}` + const response = await fetch(url) + if (!response.ok) return + + const data: { + data: { + player: { + skin_texture: string + } + } + } = await response.json() + return data.data.player.skin_texture +} + +export const parseSkinTexturesValue = (value: string) => { + const decodedData: { + textures: { + SKIN: { + url: string + } + } + } = JSON.parse(Buffer.from(value, 'base64').toString()) + return decodedData.textures?.SKIN?.url +} + +export async function loadSkinImage (skinUrl: string): Promise<{ canvas: OffscreenCanvas, image: ImageBitmap }> { + if (!skinUrl.startsWith('data:')) { + skinUrl = await fetchAndConvertBase64Skin(skinUrl.replace('http://', 'https://')) + } + + const image = await loadImageFromUrl(skinUrl) + const skinCanvas = createCanvas(64, 64) + loadSkinToCanvas(skinCanvas, image) + return { canvas: skinCanvas, image } +} + +const fetchAndConvertBase64Skin = async (skinUrl: string) => { + const response = await fetch(skinUrl, { }) + const arrayBuffer = await response.arrayBuffer() + const base64 = Buffer.from(arrayBuffer).toString('base64') + return `data:image/png;base64,${base64}` +} diff --git a/renderer/viewer/lib/workerProxy.ts b/renderer/viewer/lib/workerProxy.ts new file mode 100644 index 00000000..2b38dca9 --- /dev/null +++ b/renderer/viewer/lib/workerProxy.ts @@ -0,0 +1,92 @@ +import { proxy, getVersion, subscribe } from 'valtio' + +export function createWorkerProxy void | Promise>> (handlers: T, channel?: MessagePort): { __workerProxy: T } { + const target = channel ?? globalThis + target.addEventListener('message', (event: any) => { + const { type, args, msgId } = event.data + if (handlers[type]) { + const result = handlers[type](...args) + if (result instanceof Promise) { + void result.then((result) => { + target.postMessage({ + type: 'result', + msgId, + args: [result] + }) + }) + } + } + }) + return null as any +} + +/** + * in main thread + * ```ts + * // either: + * import type { importedTypeWorkerProxy } from './worker' + * // or: + * type importedTypeWorkerProxy = import('./worker').importedTypeWorkerProxy + * + * const workerChannel = useWorkerProxy(worker) + * ``` + */ +export const useWorkerProxy = void> }> (worker: Worker | MessagePort, autoTransfer = true): T['__workerProxy'] & { + transfer: (...args: Transferable[]) => T['__workerProxy'] +} => { + let messageId = 0 + // in main thread + return new Proxy({} as any, { + get (target, prop) { + if (prop === 'transfer') { + return (...transferable: Transferable[]) => { + return new Proxy({}, { + get (target, prop) { + return (...args: any[]) => { + worker.postMessage({ + type: prop, + args, + }, transferable) + } + } + }) + } + } + return (...args: any[]) => { + const msgId = messageId++ + const transfer = autoTransfer ? args.filter(arg => { + return arg instanceof ArrayBuffer || arg instanceof MessagePort + || (typeof ImageBitmap !== 'undefined' && arg instanceof ImageBitmap) + || (typeof OffscreenCanvas !== 'undefined' && arg instanceof OffscreenCanvas) + || (typeof ImageData !== 'undefined' && arg instanceof ImageData) + }) : [] + worker.postMessage({ + type: prop, + msgId, + args, + }, transfer) + return { + // eslint-disable-next-line unicorn/no-thenable + then (onfulfilled: (value: any) => void) { + const handler = ({ data }: MessageEvent): void => { + if (data.type === 'result' && data.msgId === msgId) { + onfulfilled(data.args[0]) + worker.removeEventListener('message', handler as EventListener) + } + } + worker.addEventListener('message', handler as EventListener) + } + } + } + } + }) +} + +// const workerProxy = createWorkerProxy({ +// startRender (canvas: HTMLCanvasElement) { +// }, +// }) + +// const worker = useWorkerProxy(null, workerProxy) + +// worker. diff --git a/renderer/viewer/lib/worldDataEmitter.ts b/renderer/viewer/lib/worldDataEmitter.ts new file mode 100644 index 00000000..dfbdb35c --- /dev/null +++ b/renderer/viewer/lib/worldDataEmitter.ts @@ -0,0 +1,431 @@ +/* eslint-disable guard-for-in */ + +// todo refactor into its own commons module +import { EventEmitter } from 'events' +import { generateSpiralMatrix, ViewRect } from 'flying-squid/dist/utils' +import { Vec3 } from 'vec3' +import { BotEvents } from 'mineflayer' +import { proxy } from 'valtio' +import TypedEmitter from 'typed-emitter' +import { Biome } from 'minecraft-data' +import { delayedIterator } from '../../playground/shared' +import { chunkPos } from './simpleUtils' + +export type ChunkPosKey = string // like '16,16' +type ChunkPos = { x: number, z: number } // like { x: 16, z: 16 } + +export type WorldDataEmitterEvents = { + chunkPosUpdate: (data: { pos: Vec3 }) => void + blockUpdate: (data: { pos: Vec3, stateId: number }) => void + entity: (data: any) => void + entityMoved: (data: any) => void + playerEntity: (data: any) => void + time: (data: number) => void + renderDistance: (viewDistance: number) => void + blockEntities: (data: Record | { blockEntities: Record }) => void + markAsLoaded: (data: { x: number, z: number }) => void + unloadChunk: (data: { x: number, z: number }) => void + loadChunk: (data: { x: number, z: number, chunk: string, blockEntities: any, worldConfig: any, isLightUpdate: boolean }) => void + updateLight: (data: { pos: Vec3 }) => void + onWorldSwitch: () => void + end: () => void + biomeUpdate: (data: { biome: Biome }) => void + biomeReset: () => void +} + +export class WorldDataEmitterWorker extends (EventEmitter as new () => TypedEmitter) { + static readonly restorerName = 'WorldDataEmitterWorker' +} + +export class WorldDataEmitter extends (EventEmitter as new () => TypedEmitter) { + spiralNumber = 0 + gotPanicLastTime = false + panicChunksReload = () => {} + loadedChunks: Record + private inLoading = false + private chunkReceiveTimes: number[] = [] + private lastChunkReceiveTime = 0 + public lastChunkReceiveTimeAvg = 0 + private panicTimeout?: NodeJS.Timeout + readonly lastPos: Vec3 + private eventListeners: Record = {} + private readonly emitter: WorldDataEmitter + debugChunksInfo: Record + // blockUpdates: number + }> = {} + + waitingSpiralChunksLoad = {} as Record void> + + addWaitTime = 1 + /* config */ keepChunksDistance = 0 + /* config */ isPlayground = false + /* config */ allowPositionUpdate = true + + constructor (public world: typeof __type_bot['world'], public viewDistance: number, position: Vec3 = new Vec3(0, 0, 0)) { + // eslint-disable-next-line constructor-super + super() + this.loadedChunks = {} + this.lastPos = new Vec3(0, 0, 0).update(position) + // todo + this.emitter = this + } + + setBlockStateId (position: Vec3, stateId: number) { + const val = this.world.setBlockStateId(position, stateId) as Promise | void + if (val) throw new Error('setBlockStateId returned promise (not supported)') + // const chunkX = Math.floor(position.x / 16) + // const chunkZ = Math.floor(position.z / 16) + // if (!this.loadedChunks[`${chunkX},${chunkZ}`] && !this.waitingSpiralChunksLoad[`${chunkX},${chunkZ}`]) { + // void this.loadChunk({ x: chunkX, z: chunkZ }) + // return + // } + + this.emit('blockUpdate', { pos: position, stateId }) + } + + updateViewDistance (viewDistance: number) { + this.viewDistance = viewDistance + this.emitter.emit('renderDistance', viewDistance) + } + + listenToBot (bot: typeof __type_bot) { + const entitiesObjectData = new Map() + bot._client.prependListener('spawn_entity', (data) => { + if (data.objectData && data.entityId !== undefined) { + entitiesObjectData.set(data.entityId, data.objectData) + } + }) + + const emitEntity = (e, name = 'entity') => { + if (!e) return + if (e === bot.entity) { + if (name === 'entity') { + this.emitter.emit('playerEntity', e) + } + return + } + if (!e.name) return // mineflayer received update for not spawned entity + e.objectData = entitiesObjectData.get(e.id) + this.emitter.emit(name as any, { + ...e, + pos: e.position, + username: e.username, + team: bot.teamMap[e.username] || bot.teamMap[e.uuid], + // set debugTree (obj) { + // e.debugTree = obj + // } + }) + } + + this.eventListeners = { + // 'move': botPosition, + entitySpawn (e: any) { + if (e.name === 'item_frame' || e.name === 'glow_item_frame') { + // Item frames use block positions in the protocol, not their center. Fix that. + e.position.translate(0.5, 0.5, 0.5) + } + emitEntity(e) + }, + entityUpdate (e: any) { + emitEntity(e) + }, + entityEquip (e: any) { + emitEntity(e) + }, + entityMoved (e: any) { + emitEntity(e, 'entityMoved') + }, + entityGone: (e: any) => { + this.emitter.emit('entity', { id: e.id, delete: true }) + }, + chunkColumnLoad: (pos: Vec3) => { + const now = performance.now() + if (this.lastChunkReceiveTime) { + this.chunkReceiveTimes.push(now - this.lastChunkReceiveTime) + } + this.lastChunkReceiveTime = now + + if (this.waitingSpiralChunksLoad[`${pos.x},${pos.z}`]) { + this.waitingSpiralChunksLoad[`${pos.x},${pos.z}`](true) + delete this.waitingSpiralChunksLoad[`${pos.x},${pos.z}`] + } else if (this.loadedChunks[`${pos.x},${pos.z}`]) { + void this.loadChunk(pos, false, 'Received another chunkColumnLoad event while already loaded') + } + this.chunkProgress() + }, + chunkColumnUnload: (pos: Vec3) => { + this.unloadChunk(pos) + }, + blockUpdate: (oldBlock: any, newBlock: any) => { + const stateId = newBlock.stateId ?? ((newBlock.type << 4) | newBlock.metadata) + this.emitter.emit('blockUpdate', { pos: oldBlock.position, stateId }) + }, + time: () => { + this.emitter.emit('time', bot.time.timeOfDay) + }, + end: () => { + this.emitter.emit('end') + }, + // when dimension might change + login: () => { + void this.updatePosition(bot.entity.position, true) + this.emitter.emit('playerEntity', bot.entity) + }, + respawn: () => { + void this.updatePosition(bot.entity.position, true) + this.emitter.emit('playerEntity', bot.entity) + this.emitter.emit('onWorldSwitch') + }, + } satisfies Partial + + + bot._client.on('update_light', ({ chunkX, chunkZ }) => { + const chunkPos = new Vec3(chunkX * 16, 0, chunkZ * 16) + if (!this.waitingSpiralChunksLoad[`${chunkX},${chunkZ}`] && this.loadedChunks[`${chunkX},${chunkZ}`]) { + void this.loadChunk(chunkPos, true, 'update_light') + } + }) + + for (const [evt, listener] of Object.entries(this.eventListeners)) { + bot.on(evt as any, listener) + } + + for (const id in bot.entities) { + const e = bot.entities[id] + try { + emitEntity(e) + } catch (err) { + // reportError?.(err) + console.error('error processing entity', err) + } + } + } + + emitterGotConnected () { + this.emitter.emit('blockEntities', new Proxy({}, { + get (_target, posKey, receiver) { + if (typeof posKey !== 'string') return + const [x, y, z] = posKey.split(',').map(Number) + return bot.world.getBlock(new Vec3(x, y, z))?.entity + }, + })) + } + + removeListenersFromBot (bot: import('mineflayer').Bot) { + for (const [evt, listener] of Object.entries(this.eventListeners)) { + bot.removeListener(evt as any, listener) + } + } + + async init (pos: Vec3) { + this.updateViewDistance(this.viewDistance) + this.emitter.emit('chunkPosUpdate', { pos }) + if (bot?.time?.timeOfDay) { + this.emitter.emit('time', bot.time.timeOfDay) + } + if (bot?.entity) { + this.emitter.emit('playerEntity', bot.entity) + } + this.emitterGotConnected() + const [botX, botZ] = chunkPos(pos) + + const positions = generateSpiralMatrix(this.viewDistance).map(([x, z]) => new Vec3((botX + x) * 16, 0, (botZ + z) * 16)) + + this.lastPos.update(pos) + await this._loadChunks(positions, pos) + } + + chunkProgress () { + if (this.panicTimeout) clearTimeout(this.panicTimeout) + if (this.chunkReceiveTimes.length >= 5) { + const avgReceiveTime = this.chunkReceiveTimes.reduce((a, b) => a + b, 0) / this.chunkReceiveTimes.length + this.lastChunkReceiveTimeAvg = avgReceiveTime + const timeoutDelay = avgReceiveTime * 2 + 1000 // 2x average + 1 second + + // Clear any existing timeout + if (this.panicTimeout) clearTimeout(this.panicTimeout) + + // Set new timeout for panic reload + this.panicTimeout = setTimeout(() => { + if (!this.gotPanicLastTime && this.inLoading) { + console.warn('Chunk loading seems stuck, triggering panic reload') + this.gotPanicLastTime = true + this.panicChunksReload() + } + }, timeoutDelay) + } + } + + async _loadChunks (positions: Vec3[], centerPos: Vec3) { + this.spiralNumber++ + const { spiralNumber } = this + // stop loading previous chunks + for (const pos of Object.keys(this.waitingSpiralChunksLoad)) { + this.waitingSpiralChunksLoad[pos](false) + delete this.waitingSpiralChunksLoad[pos] + } + + let continueLoading = true + this.inLoading = true + await delayedIterator(positions, this.addWaitTime, async (pos) => { + if (!continueLoading || this.loadedChunks[`${pos.x},${pos.z}`]) return + + // Wait for chunk to be available from server + if (!this.world.getColumnAt(pos)) { + continueLoading = await new Promise(resolve => { + this.waitingSpiralChunksLoad[`${pos.x},${pos.z}`] = resolve + }) + } + if (!continueLoading) return + await this.loadChunk(pos, undefined, `spiral ${spiralNumber} from ${centerPos.x},${centerPos.z}`) + this.chunkProgress() + }) + if (this.panicTimeout) clearTimeout(this.panicTimeout) + this.inLoading = false + this.gotPanicLastTime = false + this.chunkReceiveTimes = [] + this.lastChunkReceiveTime = 0 + } + + readdDebug () { + const clonedLoadedChunks = { ...this.loadedChunks } + this.unloadAllChunks() + console.time('readdDebug') + for (const loadedChunk in clonedLoadedChunks) { + const [x, z] = loadedChunk.split(',').map(Number) + void this.loadChunk(new Vec3(x, 0, z)) + } + const interval = setInterval(() => { + if (appViewer.rendererState.world.allChunksLoaded) { + clearInterval(interval) + console.timeEnd('readdDebug') + } + }, 100) + } + + // debugGotChunkLatency = [] as number[] + // lastTime = 0 + + async loadChunk (pos: ChunkPos, isLightUpdate = false, reason = 'spiral') { + const [botX, botZ] = chunkPos(this.lastPos) + + const dx = Math.abs(botX - Math.floor(pos.x / 16)) + const dz = Math.abs(botZ - Math.floor(pos.z / 16)) + if (dx <= this.viewDistance && dz <= this.viewDistance) { + // eslint-disable-next-line @typescript-eslint/await-thenable -- todo allow to use async world provider but not sure if needed + const column = await this.world.getColumnAt(pos['y'] ? pos as Vec3 : new Vec3(pos.x, 0, pos.z)) + if (column) { + // const latency = Math.floor(performance.now() - this.lastTime) + // this.debugGotChunkLatency.push(latency) + // this.lastTime = performance.now() + // todo optimize toJson data, make it clear why it is used + const chunk = column.toJson() + // TODO: blockEntities + const worldConfig = { + minY: column['minY'] ?? 0, + worldHeight: column['worldHeight'] ?? 256, + } + //@ts-expect-error + this.emitter.emit('loadChunk', { x: pos.x, z: pos.z, chunk, blockEntities: column.blockEntities, worldConfig, isLightUpdate }) + this.loadedChunks[`${pos.x},${pos.z}`] = true + + this.debugChunksInfo[`${pos.x},${pos.z}`] ??= { + loads: [] + } + this.debugChunksInfo[`${pos.x},${pos.z}`].loads.push({ + dataLength: chunk.length, + reason, + time: Date.now(), + }) + } else if (this.isPlayground) { // don't allow in real worlds pre-flag chunks as loaded to avoid race condition when the chunk might still be loading. In playground it's assumed we always pre-load all chunks first + this.emitter.emit('markAsLoaded', { x: pos.x, z: pos.z }) + } + } else { + // console.debug('skipped loading chunk', dx, dz, '>', this.viewDistance) + } + } + + unloadAllChunks () { + for (const coords of Object.keys(this.loadedChunks)) { + const [x, z] = coords.split(',').map(Number) + this.unloadChunk({ x, z }) + } + } + + unloadChunk (pos: ChunkPos) { + this.emitter.emit('unloadChunk', { x: pos.x, z: pos.z }) + delete this.loadedChunks[`${pos.x},${pos.z}`] + delete this.debugChunksInfo[`${pos.x},${pos.z}`] + } + + lastBiomeId: number | null = null + + udpateBiome (pos: Vec3) { + try { + const biomeId = this.world.getBiome(pos) + if (biomeId !== this.lastBiomeId) { + this.lastBiomeId = biomeId + const biomeData = loadedData.biomes[biomeId] + if (biomeData) { + this.emitter.emit('biomeUpdate', { + biome: biomeData + }) + } else { + // unknown biome + this.emitter.emit('biomeReset') + } + } + } catch (e) { + console.error('error updating biome', e) + } + } + + lastPosCheck: Vec3 | null = null + async updatePosition (pos: Vec3, force = false) { + if (!this.allowPositionUpdate) return + const posFloored = pos.floored() + if (!force && this.lastPosCheck && this.lastPosCheck.equals(posFloored)) return + this.lastPosCheck = posFloored + + this.udpateBiome(pos) + + const [lastX, lastZ] = chunkPos(this.lastPos) + const [botX, botZ] = chunkPos(pos) + if (lastX !== botX || lastZ !== botZ || force) { + this.emitter.emit('chunkPosUpdate', { pos }) + + // unload chunks that are no longer in view + const newViewToUnload = new ViewRect(botX, botZ, this.viewDistance + this.keepChunksDistance) + const chunksToUnload: Vec3[] = [] + for (const coords of Object.keys(this.loadedChunks)) { + const x = parseInt(coords.split(',')[0], 10) + const z = parseInt(coords.split(',')[1], 10) + const p = new Vec3(x, 0, z) + const [chunkX, chunkZ] = chunkPos(p) + if (!newViewToUnload.contains(chunkX, chunkZ)) { + chunksToUnload.push(p) + } + } + for (const p of chunksToUnload) { + this.unloadChunk(p) + } + + // load new chunks + const positions = generateSpiralMatrix(this.viewDistance).map(([x, z]) => { + const pos = new Vec3((botX + x) * 16, 0, (botZ + z) * 16) + if (!this.loadedChunks[`${pos.x},${pos.z}`]) return pos + return undefined! + }).filter(a => !!a) + this.lastPos.update(pos) + void this._loadChunks(positions, pos) + } else { + this.emitter.emit('chunkPosUpdate', { pos }) // todo-low + this.lastPos.update(pos) + } + } +} diff --git a/renderer/viewer/lib/worldrendererCommon.ts b/renderer/viewer/lib/worldrendererCommon.ts new file mode 100644 index 00000000..4140e3fa --- /dev/null +++ b/renderer/viewer/lib/worldrendererCommon.ts @@ -0,0 +1,1087 @@ +/* eslint-disable guard-for-in */ +import { EventEmitter } from 'events' +import { Vec3 } from 'vec3' +import mcDataRaw from 'minecraft-data/data.js' // note: using alias +import TypedEmitter from 'typed-emitter' +import { WorldBlockProvider } from 'mc-assets/dist/worldBlockProvider' +import { generateSpiralMatrix } from 'flying-squid/dist/utils' +import { subscribeKey } from 'valtio/utils' +import { proxy } from 'valtio' +import { dynamicMcDataFiles } from '../../buildMesherConfig.mjs' +import type { ResourcesManagerTransferred } from '../../../src/resourcesManager' +import { DisplayWorldOptions, GraphicsInitOptions, RendererReactiveState } from '../../../src/appViewer' +import { SoundSystem } from '../three/threeJsSound' +import { buildCleanupDecorator } from './cleanupDecorator' +import { HighestBlockInfo, CustomBlockModels, BlockStateModelInfo, getBlockAssetsCacheKey, MesherConfig, MesherMainEvent } from './mesher/shared' +import { chunkPos } from './simpleUtils' +import { addNewStat, removeAllStats, updatePanesVisibility, updateStatText } from './ui/newStats' +import { WorldDataEmitterWorker } from './worldDataEmitter' +import { getPlayerStateUtils, PlayerStateReactive, PlayerStateRenderer, PlayerStateUtils } from './basePlayerState' +import { MesherLogReader } from './mesherlogReader' +import { setSkinsConfig } from './utils/skins' + +function mod (x, n) { + return ((x % n) + n) % n +} + +const toMajorVersion = version => { + const [a, b] = (String(version)).split('.') + return `${a}.${b}` +} + +export const worldCleanup = buildCleanupDecorator('resetWorld') + +export const defaultWorldRendererConfig = { + // Debug settings + showChunkBorders: false, + enableDebugOverlay: false, + + // Performance settings + mesherWorkers: 4, + addChunksBatchWaitTime: 200, + _experimentalSmoothChunkLoading: true, + _renderByChunks: false, + + // Rendering engine settings + dayCycle: true, + smoothLighting: true, + enableLighting: true, + starfield: true, + defaultSkybox: true, + renderEntities: true, + extraBlockRenderers: true, + foreground: true, + fov: 75, + volume: 1, + + // Camera visual related settings + showHand: false, + viewBobbing: false, + renderEars: true, + highlightBlockColor: 'blue', + + // Player models + fetchPlayerSkins: true, + skinTexturesProxy: undefined as string | undefined, + + // VR settings + vrSupport: true, + vrPageGameRendering: true, + + // World settings + clipWorldBelowY: undefined as number | undefined, + isPlayground: false +} + +export type WorldRendererConfig = typeof defaultWorldRendererConfig + +export abstract class WorldRendererCommon { + worldReadyResolvers = Promise.withResolvers() + worldReadyPromise = this.worldReadyResolvers.promise + timeOfTheDay = 0 + worldSizeParams = { minY: 0, worldHeight: 256 } + reactiveDebugParams = proxy({ + stopRendering: false, + chunksRenderAboveOverride: undefined as number | undefined, + chunksRenderAboveEnabled: false, + chunksRenderBelowOverride: undefined as number | undefined, + chunksRenderBelowEnabled: false, + chunksRenderDistanceOverride: undefined as number | undefined, + chunksRenderDistanceEnabled: false, + disableEntities: false, + // disableParticles: false + }) + + active = false + + // #region CHUNK & SECTIONS TRACKING + @worldCleanup() + loadedChunks = {} as Record // data is added for these chunks and they might be still processing + + @worldCleanup() + finishedChunks = {} as Record // these chunks are fully loaded into the world (scene) + + @worldCleanup() + finishedSections = {} as Record // these sections are fully loaded into the world (scene) + + @worldCleanup() + // loading sections (chunks) + sectionsWaiting = new Map() + + @worldCleanup() + queuedChunks = new Set() + queuedFunctions = [] as Array<() => void> + // #endregion + + renderUpdateEmitter = new EventEmitter() as unknown as TypedEmitter<{ + dirty (pos: Vec3, value: boolean): void + update (/* pos: Vec3, value: boolean */): void + chunkFinished (key: string): void + heightmap (key: string, heightmap: Uint8Array): void + }> + customTexturesDataUrl = undefined as string | undefined + workers: any[] = [] + viewerChunkPosition?: Vec3 + lastCamUpdate = 0 + droppedFpsPercentage = 0 + initialChunkLoadWasStartedIn: number | undefined + initialChunksLoad = true + enableChunksLoadDelay = false + texturesVersion?: string + viewDistance = -1 + chunksLength = 0 + allChunksFinished = false + messageQueue: any[] = [] + isProcessingQueue = false + ONMESSAGE_TIME_LIMIT = 30 // ms + + handleResize = () => { } + highestBlocksByChunks = new Map() + blockEntities = {} + + workersProcessAverageTime = 0 + workersProcessAverageTimeCount = 0 + maxWorkersProcessTime = 0 + geometryReceiveCount = {} as Record + allLoadedIn: undefined | number + onWorldSwitched = [] as Array<() => void> + renderTimeMax = 0 + renderTimeAvg = 0 + renderTimeAvgCount = 0 + edgeChunks = {} as Record + lastAddChunk = null as null | { + timeout: any + x: number + z: number + } + neighborChunkUpdates = true + lastChunkDistance = 0 + debugStopGeometryUpdate = false + + protocolCustomBlocks = new Map() + + @worldCleanup() + blockStateModelInfo = new Map() + + abstract outputFormat: 'threeJs' | 'webgpu' + worldBlockProvider: WorldBlockProvider + soundSystem: SoundSystem | undefined + + abstract changeBackgroundColor (color: [number, number, number]): void + + worldRendererConfig: WorldRendererConfig + playerStateReactive: PlayerStateReactive + playerStateUtils: PlayerStateUtils + reactiveState: RendererReactiveState + mesherLogReader: MesherLogReader | undefined + forceCallFromMesherReplayer = false + stopMesherMessagesProcessing = false + + abortController = new AbortController() + lastRendered = 0 + renderingActive = true + geometryReceiveCountPerSec = 0 + mesherLogger = { + contents: [] as string[], + active: new URL(location.href).searchParams.get('mesherlog') === 'true' + } + currentRenderedFrames = 0 + fpsAverage = 0 + lastFps = 0 + fpsWorst = undefined as number | undefined + fpsSamples = 0 + mainThreadRendering = true + backendInfoReport = '-' + chunksFullInfo = '-' + workerCustomHandleTime = 0 + + get version () { + return this.displayOptions.version + } + + get displayAdvancedStats () { + return (this.initOptions.config.statsVisible ?? 0) > 1 + } + + constructor (public readonly resourcesManager: ResourcesManagerTransferred, public displayOptions: DisplayWorldOptions, public initOptions: GraphicsInitOptions) { + this.snapshotInitialValues() + this.worldRendererConfig = displayOptions.inWorldRenderingConfig + this.playerStateReactive = displayOptions.playerStateReactive + this.playerStateUtils = getPlayerStateUtils(this.playerStateReactive) + this.reactiveState = displayOptions.rendererState + // this.mesherLogReader = new MesherLogReader(this) + this.renderUpdateEmitter.on('update', () => { + const loadedChunks = Object.keys(this.finishedChunks).length + updateStatText('loaded-chunks', `${loadedChunks}/${this.chunksLength} chunks (${this.lastChunkDistance}/${this.viewDistance})`) + }) + + addNewStat('downloaded-chunks', 100, 140, 20) + + this.connect(this.displayOptions.worldView) + + const interval = setInterval(() => { + this.geometryReceiveCountPerSec = Object.values(this.geometryReceiveCount).reduce((acc, curr) => acc + curr, 0) + this.geometryReceiveCount = {} + updatePanesVisibility(this.displayAdvancedStats) + this.updateChunksStats() + if (this.mainThreadRendering) { + this.fpsUpdate() + } + }, 500) + this.abortController.signal.addEventListener('abort', () => { + clearInterval(interval) + }) + } + + fpsUpdate () { + this.fpsSamples++ + this.fpsAverage = (this.fpsAverage * (this.fpsSamples - 1) + this.currentRenderedFrames) / this.fpsSamples + if (this.fpsWorst === undefined) { + this.fpsWorst = this.currentRenderedFrames + } else { + this.fpsWorst = Math.min(this.fpsWorst, this.currentRenderedFrames) + } + this.lastFps = this.currentRenderedFrames + this.currentRenderedFrames = 0 + } + + logWorkerWork (message: string | (() => string)) { + if (!this.mesherLogger.active) return + this.mesherLogger.contents.push(typeof message === 'function' ? message() : message) + } + + async init () { + if (this.active) throw new Error('WorldRendererCommon is already initialized') + + await Promise.all([ + this.resetWorkers(), + (async () => { + if (this.resourcesManager.currentResources?.allReady) { + await this.updateAssetsData() + } + })() + ]) + + this.resourcesManager.on('assetsTexturesUpdated', async () => { + if (!this.active) return + await this.updateAssetsData() + }) + + this.watchReactivePlayerState() + this.watchReactiveConfig() + this.worldReadyResolvers.resolve() + } + + snapshotInitialValues () { } + + wasChunkSentToWorker (chunkKey: string) { + return this.loadedChunks[chunkKey] + } + + async getHighestBlocks (chunkKey: string) { + return this.highestBlocksByChunks.get(chunkKey) + } + + updateCustomBlock (chunkKey: string, blockPos: string, model: string) { + this.protocolCustomBlocks.set(chunkKey, { + ...this.protocolCustomBlocks.get(chunkKey), + [blockPos]: model + }) + this.logWorkerWork(() => `-> updateCustomBlock ${chunkKey} ${blockPos} ${model} ${this.wasChunkSentToWorker(chunkKey)}`) + if (this.wasChunkSentToWorker(chunkKey)) { + const [x, y, z] = blockPos.split(',').map(Number) + this.setBlockStateId(new Vec3(x, y, z), undefined) + } + } + + async getBlockInfo (blockPos: { x: number, y: number, z: number }, stateId: number) { + const chunkKey = `${Math.floor(blockPos.x / 16) * 16},${Math.floor(blockPos.z / 16) * 16}` + const customBlockName = this.protocolCustomBlocks.get(chunkKey)?.[`${blockPos.x},${blockPos.y},${blockPos.z}`] + const cacheKey = getBlockAssetsCacheKey(stateId, customBlockName) + const modelInfo = this.blockStateModelInfo.get(cacheKey) + return { + customBlockName, + modelInfo + } + } + + initWorkers (numWorkers = this.worldRendererConfig.mesherWorkers) { + // init workers + for (let i = 0; i < numWorkers + 1; i++) { + const worker = initMesherWorker((data) => { + if (Array.isArray(data)) { + this.messageQueue.push(...data) + } else { + this.messageQueue.push(data) + } + void this.processMessageQueue('worker') + }) + this.workers.push(worker) + } + } + + onReactivePlayerStateUpdated(key: T, callback: (value: PlayerStateReactive[T]) => void, initial = true) { + if (initial) { + callback(this.playerStateReactive[key]) + } + subscribeKey(this.playerStateReactive, key, callback) + } + + onReactiveConfigUpdated(key: T, callback: (value: typeof this.worldRendererConfig[T]) => void) { + callback(this.worldRendererConfig[key]) + subscribeKey(this.worldRendererConfig, key, callback) + } + + onReactiveDebugUpdated(key: T, callback: (value: typeof this.reactiveDebugParams[T]) => void) { + callback(this.reactiveDebugParams[key]) + subscribeKey(this.reactiveDebugParams, key, callback) + } + + watchReactivePlayerState () { + this.onReactivePlayerStateUpdated('backgroundColor', (value) => { + this.changeBackgroundColor(value) + }) + } + + watchReactiveConfig () { + this.onReactiveConfigUpdated('fetchPlayerSkins', (value) => { + setSkinsConfig({ apiEnabled: value }) + }) + } + + async processMessageQueue (source: string) { + if (this.isProcessingQueue || this.messageQueue.length === 0) return + this.logWorkerWork(`# ${source} processing queue`) + if (this.lastRendered && performance.now() - this.lastRendered > this.ONMESSAGE_TIME_LIMIT && this.worldRendererConfig._experimentalSmoothChunkLoading && this.renderingActive) { + const start = performance.now() + await new Promise(resolve => { + requestAnimationFrame(resolve) + }) + this.logWorkerWork(`# processing got delayed by ${performance.now() - start}ms`) + } + this.isProcessingQueue = true + + const startTime = performance.now() + let processedCount = 0 + + while (this.messageQueue.length > 0) { + const processingStopped = this.stopMesherMessagesProcessing + if (!processingStopped) { + const data = this.messageQueue.shift()! + this.handleMessage(data) + processedCount++ + } + + // Check if we've exceeded the time limit + if (processingStopped || (performance.now() - startTime > this.ONMESSAGE_TIME_LIMIT && this.renderingActive && this.worldRendererConfig._experimentalSmoothChunkLoading)) { + // If we have more messages and exceeded time limit, schedule next batch + if (this.messageQueue.length > 0) { + requestAnimationFrame(async () => { + this.isProcessingQueue = false + void this.processMessageQueue('queue-delay') + }) + return + } + break + } + } + + this.isProcessingQueue = false + } + + handleMessage (rawData: any) { + const data = rawData as MesherMainEvent + if (!this.active) return + this.mesherLogReader?.workerMessageReceived(data.type, data) + if (data.type !== 'geometry' || !this.debugStopGeometryUpdate) { + const start = performance.now() + this.handleWorkerMessage(data as WorkerReceive) + this.workerCustomHandleTime += performance.now() - start + } + if (data.type === 'geometry') { + this.logWorkerWork(() => `-> ${data.workerIndex} geometry ${data.key} ${JSON.stringify({ dataSize: JSON.stringify(data).length })}`) + this.geometryReceiveCount[data.workerIndex] ??= 0 + this.geometryReceiveCount[data.workerIndex]++ + const chunkCoords = data.key.split(',').map(Number) + this.lastChunkDistance = Math.max(...this.getDistance(new Vec3(chunkCoords[0], 0, chunkCoords[2]))) + } + if (data.type === 'sectionFinished') { // on after load & unload section + this.logWorkerWork(`<- ${data.workerIndex} sectionFinished ${data.key} ${JSON.stringify({ processTime: data.processTime })}`) + if (!this.sectionsWaiting.has(data.key)) throw new Error(`sectionFinished event for non-outstanding section ${data.key}`) + this.sectionsWaiting.set(data.key, this.sectionsWaiting.get(data.key)! - 1) + if (this.sectionsWaiting.get(data.key) === 0) { + this.sectionsWaiting.delete(data.key) + this.finishedSections[data.key] = true + } + + const chunkCoords = data.key.split(',').map(Number) + const chunkKey = `${chunkCoords[0]},${chunkCoords[2]}` + if (this.loadedChunks[chunkKey]) { // ensure chunk data was added, not a neighbor chunk update + let loaded = true + for (let y = this.worldMinYRender; y < this.worldSizeParams.worldHeight; y += 16) { + if (!this.finishedSections[`${chunkCoords[0]},${y},${chunkCoords[2]}`]) { + loaded = false + break + } + } + if (loaded) { + // CHUNK FINISHED + this.finishedChunks[chunkKey] = true + this.reactiveState.world.chunksLoaded.add(`${Math.floor(chunkCoords[0] / 16)},${Math.floor(chunkCoords[2] / 16)}`) + this.renderUpdateEmitter.emit(`chunkFinished`, `${chunkCoords[0]},${chunkCoords[2]}`) + this.checkAllFinished() + // merge highest blocks by sections into highest blocks by chunks + // for (let y = this.worldMinYRender; y < this.worldSizeParams.worldHeight; y += 16) { + // const sectionKey = `${chunkCoords[0]},${y},${chunkCoords[2]}` + // for (let x = 0; x < 16; x++) { + // for (let z = 0; z < 16; z++) { + // const posInsideKey = `${chunkCoords[0] + x},${chunkCoords[2] + z}` + // let block = null as HighestBlockInfo | null + // const highestBlock = this.highestBlocksBySections[sectionKey]?.[posInsideKey] + // if (!highestBlock) continue + // if (!block || highestBlock.y > block.y) { + // block = highestBlock + // } + // if (block) { + // this.highestBlocksByChunks[chunkKey] ??= {} + // this.highestBlocksByChunks[chunkKey][posInsideKey] = block + // } + // } + // } + // delete this.highestBlocksBySections[sectionKey] + // } + } + } + + this.renderUpdateEmitter.emit('update') + if (data.processTime) { + this.workersProcessAverageTimeCount++ + this.workersProcessAverageTime = ((this.workersProcessAverageTime * (this.workersProcessAverageTimeCount - 1)) + data.processTime) / this.workersProcessAverageTimeCount + this.maxWorkersProcessTime = Math.max(this.maxWorkersProcessTime, data.processTime) + } + } + + if (data.type === 'blockStateModelInfo') { + for (const [cacheKey, info] of Object.entries(data.info)) { + this.blockStateModelInfo.set(cacheKey, info) + } + } + + if (data.type === 'heightmap') { + this.reactiveState.world.heightmaps.set(data.key, new Uint8Array(data.heightmap)) + } + } + + downloadMesherLog () { + const a = document.createElement('a') + a.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(this.mesherLogger.contents.join('\n')) + a.download = 'mesher.log' + a.click() + } + + checkAllFinished () { + if (this.sectionsWaiting.size === 0) { + this.reactiveState.world.mesherWork = false + } + // todo check exact surrounding chunks + const allFinished = Object.keys(this.finishedChunks).length >= this.chunksLength + if (allFinished) { + this.allChunksLoaded?.() + this.allChunksFinished = true + this.allLoadedIn ??= Date.now() - this.initialChunkLoadWasStartedIn! + } + this.updateChunksStats() + } + + changeHandSwingingState (isAnimationPlaying: boolean, isLeftHand: boolean): void { } + + abstract handleWorkerMessage (data: WorkerReceive): void + + abstract updateCamera (pos: Vec3 | null, yaw: number, pitch: number): void + + abstract render (): void + + /** + * Optionally update data that are depedendent on the viewer position + */ + updatePosDataChunk? (key: string): void + + allChunksLoaded? (): void + + timeUpdated? (newTime: number): void + + biomeUpdated? (biome: any): void + + biomeReset? (): void + + updateViewerPosition (pos: Vec3) { + this.viewerChunkPosition = pos + for (const [key, value] of Object.entries(this.loadedChunks)) { + if (!value) continue + this.updatePosDataChunk?.(key) + } + } + + sendWorkers (message: WorkerSend) { + for (const worker of this.workers) { + worker.postMessage(message) + } + } + + getDistance (posAbsolute: Vec3) { + const [botX, botZ] = chunkPos(this.viewerChunkPosition!) + const dx = Math.abs(botX - Math.floor(posAbsolute.x / 16)) + const dz = Math.abs(botZ - Math.floor(posAbsolute.z / 16)) + return [dx, dz] as [number, number] + } + + abstract updateShowChunksBorder (value: boolean): void + + resetWorld () { + // destroy workers + for (const worker of this.workers) { + worker.terminate() + } + this.workers = [] + } + + async resetWorkers () { + this.resetWorld() + + // for workers in single file build + if (typeof document !== 'undefined' && document?.readyState === 'loading') { + await new Promise(resolve => { + document.addEventListener('DOMContentLoaded', resolve) + }) + } + + this.initWorkers() + this.active = true + + this.sendMesherMcData() + } + + getMesherConfig (): MesherConfig { + let skyLight = 15 + const timeOfDay = this.timeOfTheDay + if (timeOfDay < 0 || timeOfDay > 24_000) { + // + } else if (timeOfDay <= 6000 || timeOfDay >= 18_000) { + skyLight = 15 + } else if (timeOfDay > 6000 && timeOfDay < 12_000) { + skyLight = 15 - ((timeOfDay - 6000) / 6000) * 15 + } else if (timeOfDay >= 12_000 && timeOfDay < 18_000) { + skyLight = ((timeOfDay - 12_000) / 6000) * 15 + } + + skyLight = Math.floor(skyLight) + return { + version: this.version, + enableLighting: this.worldRendererConfig.enableLighting, + skyLight, + smoothLighting: this.worldRendererConfig.smoothLighting, + outputFormat: this.outputFormat, + // textureSize: this.resourcesManager.currentResources!.blocksAtlasParser.atlas.latest.width, + debugModelVariant: undefined, + clipWorldBelowY: this.worldRendererConfig.clipWorldBelowY, + disableSignsMapsSupport: !this.worldRendererConfig.extraBlockRenderers, + worldMinY: this.worldMinYRender, + worldMaxY: this.worldMinYRender + this.worldSizeParams.worldHeight, + } + } + + sendMesherMcData () { + const allMcData = mcDataRaw.pc[this.version] ?? mcDataRaw.pc[toMajorVersion(this.version)] + const mcData = { + version: JSON.parse(JSON.stringify(allMcData.version)) + } + for (const key of dynamicMcDataFiles) { + mcData[key] = allMcData[key] + } + + for (const worker of this.workers) { + worker.postMessage({ type: 'mcData', mcData, config: this.getMesherConfig() }) + } + this.logWorkerWork('# mcData sent') + } + + async updateAssetsData () { + const resources = this.resourcesManager.currentResources + + if (this.workers.length === 0) throw new Error('workers not initialized yet') + for (const [i, worker] of this.workers.entries()) { + const { blockstatesModels } = resources + + worker.postMessage({ + type: 'mesherData', + workerIndex: i, + blocksAtlas: { + latest: resources.blocksAtlasJson + }, + blockstatesModels, + config: this.getMesherConfig(), + }) + } + + this.logWorkerWork('# mesherData sent') + console.log('textures loaded') + } + + get worldMinYRender () { + return Math.floor(Math.max(this.worldSizeParams.minY, this.worldRendererConfig.clipWorldBelowY ?? -Infinity) / 16) * 16 + } + + updateChunksStats () { + const loadedChunks = Object.keys(this.finishedChunks) + this.displayOptions.nonReactiveState.world.chunksLoaded = new Set(loadedChunks) + this.displayOptions.nonReactiveState.world.chunksTotalNumber = this.chunksLength + this.reactiveState.world.allChunksLoaded = this.allChunksFinished + + const text = `Q: ${this.messageQueue.length} ${Object.keys(this.loadedChunks).length}/${Object.keys(this.finishedChunks).length}/${this.chunksLength} chunks (${this.workers.length}:${this.workersProcessAverageTime.toFixed(0)}ms/${this.geometryReceiveCountPerSec}ss/${this.allLoadedIn?.toFixed(1) ?? '-'}s)` + this.chunksFullInfo = text + updateStatText('downloaded-chunks', text) + } + + addColumn (x: number, z: number, chunk: any, isLightUpdate: boolean) { + if (!this.active) return + if (this.workers.length === 0) throw new Error('workers not initialized yet') + this.initialChunksLoad = false + this.initialChunkLoadWasStartedIn ??= Date.now() + this.loadedChunks[`${x},${z}`] = true + this.updateChunksStats() + + const chunkKey = `${x},${z}` + const customBlockModels = this.protocolCustomBlocks.get(chunkKey) + + for (const worker of this.workers) { + worker.postMessage({ + type: 'chunk', + x, + z, + chunk, + customBlockModels: customBlockModels || undefined + }) + } + this.workers[0].postMessage({ + type: 'getHeightmap', + x, + z, + }) + this.logWorkerWork(() => `-> chunk ${JSON.stringify({ x, z, chunkLength: chunk.length, customBlockModelsLength: customBlockModels ? Object.keys(customBlockModels).length : 0 })}`) + this.mesherLogReader?.chunkReceived(x, z, chunk.length) + for (let y = this.worldMinYRender; y < this.worldSizeParams.worldHeight; y += 16) { + const loc = new Vec3(x, y, z) + this.setSectionDirty(loc) + if (this.neighborChunkUpdates && (!isLightUpdate || this.worldRendererConfig.smoothLighting)) { + this.setSectionDirty(loc.offset(-16, 0, 0)) + this.setSectionDirty(loc.offset(16, 0, 0)) + this.setSectionDirty(loc.offset(0, 0, -16)) + this.setSectionDirty(loc.offset(0, 0, 16)) + } + } + } + + markAsLoaded (x, z) { + this.loadedChunks[`${x},${z}`] = true + this.finishedChunks[`${x},${z}`] = true + this.logWorkerWork(`-> markAsLoaded ${JSON.stringify({ x, z })}`) + this.checkAllFinished() + } + + removeColumn (x, z) { + delete this.loadedChunks[`${x},${z}`] + for (const worker of this.workers) { + worker.postMessage({ type: 'unloadChunk', x, z }) + } + this.logWorkerWork(`-> unloadChunk ${JSON.stringify({ x, z })}`) + delete this.finishedChunks[`${x},${z}`] + this.allChunksFinished = Object.keys(this.finishedChunks).length === this.chunksLength + if (Object.keys(this.finishedChunks).length === 0) { + this.allLoadedIn = undefined + this.initialChunkLoadWasStartedIn = undefined + } + for (let y = this.worldSizeParams.minY; y < this.worldSizeParams.worldHeight; y += 16) { + this.setSectionDirty(new Vec3(x, y, z), false) + delete this.finishedSections[`${x},${y},${z}`] + } + this.highestBlocksByChunks.delete(`${x},${z}`) + + this.updateChunksStats() + + if (Object.keys(this.loadedChunks).length === 0) { + this.mesherLogger.contents = [] + this.logWorkerWork('# all chunks unloaded. New log started') + void this.mesherLogReader?.maybeStartReplay() + } + } + + setBlockStateId (pos: Vec3, stateId: number | undefined, needAoRecalculation = true) { + const set = async () => { + const sectionX = Math.floor(pos.x / 16) * 16 + const sectionZ = Math.floor(pos.z / 16) * 16 + if (this.queuedChunks.has(`${sectionX},${sectionZ}`)) { + await new Promise(resolve => { + this.queuedFunctions.push(() => { + resolve() + }) + }) + } + if (!this.loadedChunks[`${sectionX},${sectionZ}`]) { + // console.debug('[should be unreachable] setBlockStateId called for unloaded chunk', pos) + } + this.setBlockStateIdInner(pos, stateId, needAoRecalculation) + } + void set() + } + + updateEntity (e: any, isUpdate = false) { } + + abstract updatePlayerEntity? (e: any): void + + lightUpdate (chunkX: number, chunkZ: number) { } + + connect (worldView: WorldDataEmitterWorker) { + const worldEmitter = worldView + + worldEmitter.on('entity', (e) => { + this.updateEntity(e, false) + }) + worldEmitter.on('entityMoved', (e) => { + this.updateEntity(e, true) + }) + worldEmitter.on('playerEntity', (e) => { + this.updatePlayerEntity?.(e) + }) + + let currentLoadChunkBatch = null as { + timeout + data + } | null + worldEmitter.on('loadChunk', ({ x, z, chunk, worldConfig, isLightUpdate }) => { + this.worldSizeParams = worldConfig + this.queuedChunks.add(`${x},${z}`) + const args = [x, z, chunk, isLightUpdate] + if (!currentLoadChunkBatch) { + // add a setting to use debounce instead + currentLoadChunkBatch = { + data: [], + timeout: setTimeout(() => { + for (const args of currentLoadChunkBatch!.data) { + this.queuedChunks.delete(`${args[0]},${args[1]}`) + this.addColumn(...args as Parameters) + } + for (const fn of this.queuedFunctions) { + fn() + } + this.queuedFunctions = [] + currentLoadChunkBatch = null + }, this.worldRendererConfig.addChunksBatchWaitTime) + } + } + currentLoadChunkBatch.data.push(args) + }) + // todo remove and use other architecture instead so data flow is clear + worldEmitter.on('blockEntities', (blockEntities) => { + this.blockEntities = blockEntities + }) + + worldEmitter.on('unloadChunk', ({ x, z }) => { + this.removeColumn(x, z) + }) + + worldEmitter.on('blockUpdate', ({ pos, stateId }) => { + this.setBlockStateId(new Vec3(pos.x, pos.y, pos.z), stateId) + }) + + worldEmitter.on('chunkPosUpdate', ({ pos }) => { + this.updateViewerPosition(pos) + }) + + worldEmitter.on('end', () => { + this.worldStop?.() + }) + + + worldEmitter.on('renderDistance', (d) => { + this.viewDistance = d + this.chunksLength = d === 0 ? 1 : generateSpiralMatrix(d).length + }) + + worldEmitter.on('renderDistance', (d) => { + this.viewDistance = d + this.chunksLength = d === 0 ? 1 : generateSpiralMatrix(d).length + this.allChunksFinished = Object.keys(this.finishedChunks).length === this.chunksLength + }) + + worldEmitter.on('markAsLoaded', ({ x, z }) => { + this.markAsLoaded(x, z) + }) + + worldEmitter.on('updateLight', ({ pos }) => { + this.lightUpdate(pos.x, pos.z) + }) + + worldEmitter.on('onWorldSwitch', () => { + for (const fn of this.onWorldSwitched) { + try { + fn() + } catch (e) { + setTimeout(() => { + console.log('[Renderer Backend] Error in onWorldSwitched:') + throw e + }, 0) + } + } + }) + + worldEmitter.on('time', (timeOfDay) => { + if (!this.worldRendererConfig.dayCycle) return + this.timeUpdated?.(timeOfDay) + + this.timeOfTheDay = timeOfDay + + // if (this.worldRendererConfig.skyLight === skyLight) return + // this.worldRendererConfig.skyLight = skyLight + // if (this instanceof WorldRendererThree) { + // (this).rerenderAllChunks?.() + // } + }) + + worldEmitter.on('biomeUpdate', ({ biome }) => { + this.biomeUpdated?.(biome) + }) + + worldEmitter.on('biomeReset', () => { + this.biomeReset?.() + }) + } + + setBlockStateIdInner (pos: Vec3, stateId: number | undefined, needAoRecalculation = true) { + const chunkKey = `${Math.floor(pos.x / 16) * 16},${Math.floor(pos.z / 16) * 16}` + const blockPosKey = `${pos.x},${pos.y},${pos.z}` + const customBlockModels = this.protocolCustomBlocks.get(chunkKey) || {} + + for (const worker of this.workers) { + worker.postMessage({ + type: 'blockUpdate', + pos, + stateId, + customBlockModels + }) + } + this.logWorkerWork(`-> blockUpdate ${JSON.stringify({ pos, stateId, customBlockModels })}`) + this.setSectionDirty(pos, true, true) + if (this.neighborChunkUpdates) { + if ((pos.x & 15) === 0) this.setSectionDirty(pos.offset(-16, 0, 0), true, true) + if ((pos.x & 15) === 15) this.setSectionDirty(pos.offset(16, 0, 0), true, true) + if ((pos.y & 15) === 0) this.setSectionDirty(pos.offset(0, -16, 0), true, true) + if ((pos.y & 15) === 15) this.setSectionDirty(pos.offset(0, 16, 0), true, true) + if ((pos.z & 15) === 0) this.setSectionDirty(pos.offset(0, 0, -16), true, true) + if ((pos.z & 15) === 15) this.setSectionDirty(pos.offset(0, 0, 16), true, true) + + if (needAoRecalculation) { + // top view neighbors + if ((pos.x & 15) === 0 && (pos.z & 15) === 0) this.setSectionDirty(pos.offset(-16, 0, -16), true, true) + if ((pos.x & 15) === 15 && (pos.z & 15) === 0) this.setSectionDirty(pos.offset(16, 0, -16), true, true) + if ((pos.x & 15) === 0 && (pos.z & 15) === 15) this.setSectionDirty(pos.offset(-16, 0, 16), true, true) + if ((pos.x & 15) === 15 && (pos.z & 15) === 15) this.setSectionDirty(pos.offset(16, 0, 16), true, true) + + // side view neighbors (but ignore updates above) + // z view neighbors + if ((pos.x & 15) === 0 && (pos.y & 15) === 0) this.setSectionDirty(pos.offset(-16, -16, 0), true, true) + if ((pos.x & 15) === 15 && (pos.y & 15) === 0) this.setSectionDirty(pos.offset(16, -16, 0), true, true) + + // x view neighbors + if ((pos.z & 15) === 0 && (pos.y & 15) === 0) this.setSectionDirty(pos.offset(0, -16, -16), true, true) + if ((pos.z & 15) === 15 && (pos.y & 15) === 0) this.setSectionDirty(pos.offset(0, -16, 16), true, true) + + // x & z neighbors + if ((pos.y & 15) === 0 && (pos.x & 15) === 0 && (pos.z & 15) === 0) this.setSectionDirty(pos.offset(-16, -16, -16), true, true) + if ((pos.y & 15) === 0 && (pos.x & 15) === 15 && (pos.z & 15) === 0) this.setSectionDirty(pos.offset(16, -16, -16), true, true) + if ((pos.y & 15) === 0 && (pos.x & 15) === 0 && (pos.z & 15) === 15) this.setSectionDirty(pos.offset(-16, -16, 16), true, true) + if ((pos.y & 15) === 0 && (pos.x & 15) === 15 && (pos.z & 15) === 15) this.setSectionDirty(pos.offset(16, -16, 16), true, true) + } + } + } + + abstract worldStop? () + + queueAwaited = false + toWorkerMessagesQueue = {} as { [workerIndex: string]: any[] } + + getWorkerNumber (pos: Vec3, updateAction = false) { + if (updateAction) { + const key = `${Math.floor(pos.x / 16) * 16},${Math.floor(pos.y / 16) * 16},${Math.floor(pos.z / 16) * 16}` + const cantUseChangeWorker = this.sectionsWaiting.get(key) && !this.finishedSections[key] + if (!cantUseChangeWorker) return 0 + } + + const hash = mod(Math.floor(pos.x / 16) + Math.floor(pos.y / 16) + Math.floor(pos.z / 16), this.workers.length - 1) + return hash + 1 + } + + async debugGetWorkerCustomBlockModel (pos: Vec3) { + const data = [] as Array> + for (const worker of this.workers) { + data.push(new Promise((resolve) => { + worker.addEventListener('message', (e) => { + if (e.data.type === 'customBlockModel') { + resolve(e.data.customBlockModel) + } + }) + })) + worker.postMessage({ + type: 'getCustomBlockModel', + pos + }) + } + return Promise.all(data) + } + + setSectionDirty (pos: Vec3, value = true, useChangeWorker = false) { // value false is used for unloading chunks + if (!this.forceCallFromMesherReplayer && this.mesherLogReader) return + + if (this.viewDistance === -1) throw new Error('viewDistance not set') + this.reactiveState.world.mesherWork = true + const distance = this.getDistance(pos) + // todo shouldnt we check loadedChunks instead? + if (!this.workers.length || distance[0] > this.viewDistance || distance[1] > this.viewDistance) return + const key = `${Math.floor(pos.x / 16) * 16},${Math.floor(pos.y / 16) * 16},${Math.floor(pos.z / 16) * 16}` + // if (this.sectionsOutstanding.has(key)) return + this.renderUpdateEmitter.emit('dirty', pos, value) + // Dispatch sections to workers based on position + // This guarantees uniformity accross workers and that a given section + // is always dispatched to the same worker + const hash = this.getWorkerNumber(pos, useChangeWorker && this.mesherLogger.active) + this.sectionsWaiting.set(key, (this.sectionsWaiting.get(key) ?? 0) + 1) + if (this.forceCallFromMesherReplayer) { + this.workers[hash].postMessage({ + type: 'dirty', + x: pos.x, + y: pos.y, + z: pos.z, + value, + config: this.getMesherConfig(), + }) + } else { + this.toWorkerMessagesQueue[hash] ??= [] + this.toWorkerMessagesQueue[hash].push({ + // this.workers[hash].postMessage({ + type: 'dirty', + x: pos.x, + y: pos.y, + z: pos.z, + value, + config: this.getMesherConfig(), + }) + this.dispatchMessages() + } + } + + dispatchMessages () { + if (this.queueAwaited) return + this.queueAwaited = true + setTimeout(() => { + // group messages and send as one + for (const workerIndex in this.toWorkerMessagesQueue) { + const worker = this.workers[Number(workerIndex)] + worker.postMessage(this.toWorkerMessagesQueue[workerIndex]) + for (const message of this.toWorkerMessagesQueue[workerIndex]) { + this.logWorkerWork(`-> ${workerIndex} dispatchMessages ${message.type} ${JSON.stringify({ x: message.x, y: message.y, z: message.z, value: message.value })}`) + } + } + this.toWorkerMessagesQueue = {} + this.queueAwaited = false + }) + } + + // Listen for chunk rendering updates emitted if a worker finished a render and resolve if the number + // of sections not rendered are 0 + async waitForChunksToRender () { + return new Promise((resolve, reject) => { + if ([...this.sectionsWaiting].length === 0) { + resolve() + return + } + + const updateHandler = () => { + if (this.sectionsWaiting.size === 0) { + this.renderUpdateEmitter.removeListener('update', updateHandler) + resolve() + } + } + this.renderUpdateEmitter.on('update', updateHandler) + }) + } + + async waitForChunkToLoad (pos: Vec3) { + return new Promise((resolve, reject) => { + const key = `${Math.floor(pos.x / 16) * 16},${Math.floor(pos.z / 16) * 16}` + if (this.loadedChunks[key]) { + resolve() + return + } + const updateHandler = () => { + if (this.loadedChunks[key]) { + this.renderUpdateEmitter.removeListener('update', updateHandler) + resolve() + } + } + this.renderUpdateEmitter.on('update', updateHandler) + }) + } + + destroy () { + // Stop all workers + for (const worker of this.workers) { + worker.terminate() + } + this.workers = [] + + // Stop and destroy sound system + if (this.soundSystem) { + this.soundSystem.destroy() + this.soundSystem = undefined + } + + this.active = false + + this.renderUpdateEmitter.removeAllListeners() + this.abortController.abort() + removeAllStats() + } +} + +export const initMesherWorker = (onGotMessage: (data: any) => void) => { + // Node environment needs an absolute path, but browser needs the url of the file + const workerName = 'mesher.js' + + let worker: any + if (process.env.SINGLE_FILE_BUILD) { + const workerCode = document.getElementById('mesher-worker-code')!.textContent! + const blob = new Blob([workerCode], { type: 'text/javascript' }) + worker = new Worker(window.URL.createObjectURL(blob)) + } else { + worker = new Worker(workerName) + } + + worker.onmessage = ({ data }) => { + onGotMessage(data) + } + if (worker.on) worker.on('message', (data) => { worker.onmessage({ data }) }) + return worker +} + +export const meshersSendMcData = (workers: Worker[], version: string, addData = {} as Record) => { + const allMcData = mcDataRaw.pc[version] ?? mcDataRaw.pc[toMajorVersion(version)] + const mcData = { + version: JSON.parse(JSON.stringify(allMcData.version)) + } + for (const key of dynamicMcDataFiles) { + mcData[key] = allMcData[key] + } + + for (const worker of workers) { + worker.postMessage({ type: 'mcData', mcData, ...addData }) + } +} diff --git a/renderer/viewer/sign-renderer/index.html b/renderer/viewer/sign-renderer/index.html new file mode 100644 index 00000000..671ad05f --- /dev/null +++ b/renderer/viewer/sign-renderer/index.html @@ -0,0 +1,21 @@ + + + + + + + %VITE_NAME% + + + + +
test
+ + + + diff --git a/renderer/viewer/sign-renderer/index.ts b/renderer/viewer/sign-renderer/index.ts new file mode 100644 index 00000000..f14b9b4c --- /dev/null +++ b/renderer/viewer/sign-renderer/index.ts @@ -0,0 +1,216 @@ +import type { ChatMessage } from 'prismarine-chat' +import { createCanvas } from '../lib/utils' + +type SignBlockEntity = { + Color?: string + GlowingText?: 0 | 1 + Text1?: string + Text2?: string + Text3?: string + Text4?: string +} | { + // todo + is_waxed?: 0 | 1 + front_text: { + color: string + messages: string[] + // todo + has_glowing_text?: 0 | 1 + } + // todo + // back_text: {} +} + +type JsonEncodedType = string | null | Record + +const parseSafe = (text: string, task: string) => { + try { + return JSON.parse(text) + } catch (e) { + console.warn(`Failed to parse ${task}`, e) + return null + } +} + +const LEGACY_COLORS = { + black: '#000000', + dark_blue: '#0000AA', + dark_green: '#00AA00', + dark_aqua: '#00AAAA', + dark_red: '#AA0000', + dark_purple: '#AA00AA', + gold: '#FFAA00', + gray: '#AAAAAA', + dark_gray: '#555555', + blue: '#5555FF', + green: '#55FF55', + aqua: '#55FFFF', + red: '#FF5555', + light_purple: '#FF55FF', + yellow: '#FFFF55', + white: '#FFFFFF', +} + +export const renderSign = ( + blockEntity: SignBlockEntity, + isHanging: boolean, + PrismarineChat: typeof ChatMessage, + ctxHook = (ctx) => { }, + canvasCreator = (width, height): OffscreenCanvas => { return createCanvas(width, height) } +) => { + // todo don't use texture rendering, investigate the font rendering when possible + // or increase factor when needed + const factor = 40 + const fontSize = 1.6 * factor + const signboardY = [16, 9] + const heightOffset = signboardY[0] - signboardY[1] + const heightScalar = heightOffset / 16 + // todo the text should be clipped based on it's render width (needs investigate) + + const texts = 'front_text' in blockEntity ? /* > 1.20 */ blockEntity.front_text.messages : [ + blockEntity.Text1, + blockEntity.Text2, + blockEntity.Text3, + blockEntity.Text4 + ] + + if (!texts.some((text) => text !== 'null')) { + return undefined + } + + const canvas = canvasCreator(16 * factor, heightOffset * factor) + + const _ctx = canvas.getContext('2d')! + + ctxHook(_ctx) + const defaultColor = ('front_text' in blockEntity ? blockEntity.front_text.color : blockEntity.Color) || 'black' + for (const [lineNum, text] of texts.slice(0, 4).entries()) { + if (text === 'null') continue + renderComponent(text, PrismarineChat, canvas, fontSize, defaultColor, fontSize * (lineNum + 1) + (isHanging ? 0 : -8)) + } + return canvas +} + +export const renderComponent = ( + text: JsonEncodedType | string | undefined, + PrismarineChat: typeof ChatMessage, + canvas: OffscreenCanvas, + fontSize: number, + defaultColor: string, + offset = 0 +) => { + // todo: in pre flatenning it seems the format was not json + const parsed = typeof text === 'string' && (text?.startsWith('{') || text?.startsWith('"')) ? parseSafe(text ?? '""', 'sign text') : text + if (!parsed || (typeof parsed !== 'object' && typeof parsed !== 'string')) return + // todo fix type + + const ctx = canvas.getContext('2d')! + if (!ctx) throw new Error('Could not get 2d context') + ctx.imageSmoothingEnabled = false + ctx.font = `${fontSize}px mojangles` + + type Formatting = { + color: string | undefined + underlined: boolean | undefined + strikethrough: boolean | undefined + bold: boolean | undefined + italic: boolean | undefined + } + + type Message = ChatMessage & Formatting & { text: string } + + const message = new PrismarineChat(parsed) as Message + + const toRenderCanvas: Array<{ + fontStyle: string + fillStyle: string + underlineStyle: boolean + strikeStyle: boolean + offset: number + text: string + }> = [] + let visibleFormatting = false + let plainText = '' + let textOffset = offset + const textWidths: number[] = [] + + const renderText = (component: Message, parentFormatting?: Formatting | undefined) => { + const { text } = component + const formatting = { + color: component.color ?? parentFormatting?.color, + underlined: component.underlined ?? parentFormatting?.underlined, + strikethrough: component.strikethrough ?? parentFormatting?.strikethrough, + bold: component.bold ?? parentFormatting?.bold, + italic: component.italic ?? parentFormatting?.italic + } + visibleFormatting = visibleFormatting || formatting.underlined || formatting.strikethrough || false + if (text?.includes('\n')) { + for (const line of text.split('\n')) { + addTextPart(line, formatting) + textOffset += fontSize + plainText = '' + } + } else if (text) { + addTextPart(text, formatting) + } + if (component.extra) { + for (const child of component.extra) { + renderText(child as Message, formatting) + } + } + } + + const addTextPart = (text: string, formatting: Formatting) => { + plainText += text + textWidths[textOffset] = ctx.measureText(plainText).width + let color = formatting.color ?? defaultColor + if (!color.startsWith('#')) { + color = LEGACY_COLORS[color.toLowerCase()] || color + } + toRenderCanvas.push({ + fontStyle: `${formatting.bold ? 'bold' : ''} ${formatting.italic ? 'italic' : ''}`, + fillStyle: color, + underlineStyle: formatting.underlined ?? false, + strikeStyle: formatting.strikethrough ?? false, + offset: textOffset, + text + }) + } + + renderText(message) + + // skip rendering empty lines + if (!visibleFormatting && !message.toString().trim()) return + + let renderedWidth = 0 + let previousOffsetY = 0 + for (const { fillStyle, fontStyle, underlineStyle, strikeStyle, offset: offsetY, text } of toRenderCanvas) { + if (previousOffsetY !== offsetY) { + renderedWidth = 0 + } + previousOffsetY = offsetY + ctx.fillStyle = fillStyle + ctx.textRendering = 'optimizeLegibility' + ctx.font = `${fontStyle} ${fontSize}px mojangles` + const textWidth = textWidths[offsetY] ?? ctx.measureText(text).width + const offsetX = (canvas.width - textWidth) / 2 + renderedWidth + ctx.fillText(text, offsetX, offsetY) + if (strikeStyle) { + ctx.lineWidth = fontSize / 8 + ctx.strokeStyle = fillStyle + ctx.beginPath() + ctx.moveTo(offsetX, offsetY - ctx.lineWidth * 2.5) + ctx.lineTo(offsetX + ctx.measureText(text).width, offsetY - ctx.lineWidth * 2.5) + ctx.stroke() + } + if (underlineStyle) { + ctx.lineWidth = fontSize / 8 + ctx.strokeStyle = fillStyle + ctx.beginPath() + ctx.moveTo(offsetX, offsetY + ctx.lineWidth) + ctx.lineTo(offsetX + ctx.measureText(text).width, offsetY + ctx.lineWidth) + ctx.stroke() + } + renderedWidth += ctx.measureText(text).width + } +} diff --git a/renderer/viewer/sign-renderer/noop.js b/renderer/viewer/sign-renderer/noop.js new file mode 100644 index 00000000..4ba52ba2 --- /dev/null +++ b/renderer/viewer/sign-renderer/noop.js @@ -0,0 +1 @@ +module.exports = {} diff --git a/renderer/viewer/sign-renderer/package.json b/renderer/viewer/sign-renderer/package.json new file mode 100644 index 00000000..7715417a --- /dev/null +++ b/renderer/viewer/sign-renderer/package.json @@ -0,0 +1,13 @@ +{ + "name": "sign-renderer", + "version": "0.0.0", + "private": true, + "license": "MIT", + "main": "index.ts", + "scripts": { + "start": "vite" + }, + "dependencies": { + "vite": "^4.4.9" + } +} diff --git a/renderer/viewer/sign-renderer/playground.ts b/renderer/viewer/sign-renderer/playground.ts new file mode 100644 index 00000000..a7438092 --- /dev/null +++ b/renderer/viewer/sign-renderer/playground.ts @@ -0,0 +1,38 @@ +import PrismarineChatLoader from 'prismarine-chat' +import { renderSign } from '.' + +const PrismarineChat = PrismarineChatLoader({ language: {} } as any) + +const img = new Image() +img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAMCAYAAAB4MH11AAABbElEQVR4AY3BQY6cMBBA0Q+yQZZVi+ndcJVcKGfMgegdvShKVtuokzGSWwwiUd7rfv388Vst0UgMXCobmgsSA5VaQmKgUks0EgNHji8SA9W8GJCQwVNpLhzJ4KFs4B1HEgPVvBiQkMFTaS44tYTEQDXdIkfiHbuyobmguaDPFzIWGrWExEA13SJH4h1uzS/WbPyvroM1v6jWbFRrNv7GfX5EdmXjzTvUEjJ4zjQXjiQGdmXjzTvUEjJ4HF/UEt/kQqW5UEkMzIshY08jg6dRS3yTC5XmgpsXY7pFztQSEgPNJCNv3lGpJVSfTLfImVpCYsB1HdwfxpU1G9eeNF0H94dxZc2G+/yI7MoG3vEv82LI2NNIDLyVDbzjzFE2mnkxZOy5IoNnkpFGc2FXNpp5MWTsOXJ4h1qikrGnkhjYlY1m1icy9lQSA+TCzjvUEpWMPZXEwK5suPvDOFuzcdZ1sOYX1ZqNas3GlTUbzR+jQbEAcs8ZQAAAAABJRU5ErkJggg==' + +await new Promise(resolve => { + img.onload = () => resolve() +}) + +const blockEntity = { + 'GlowingText': 0, + 'Color': 'black', + 'Text4': '{"text":""}', + 'Text3': '{"text":""}', + 'Text2': '{"text":""}', + 'Text1': '{"extra":[{"color":"dark_green","text":"Minecraft "},{"text":"Tools"}],"text":""}' +} as const + +await document.fonts.load('1em mojangles') + +const canvas = renderSign(blockEntity, false, PrismarineChat, (ctx) => { + ctx.drawImage(img, 0, 0, ctx.canvas.width, ctx.canvas.height) +}, (width, height) => { + const canvas = document.createElement('canvas') + canvas.width = width + canvas.height = height + return canvas as unknown as OffscreenCanvas +}) as unknown as HTMLCanvasElement + +if (canvas) { + canvas.style.imageRendering = 'pixelated' + document.body.appendChild(canvas) +} else { + console.log('Render skipped') +} diff --git a/renderer/viewer/sign-renderer/tests.test.ts b/renderer/viewer/sign-renderer/tests.test.ts new file mode 100644 index 00000000..ab268849 --- /dev/null +++ b/renderer/viewer/sign-renderer/tests.test.ts @@ -0,0 +1,69 @@ +import { test, expect } from 'vitest' +import PrismarineChatLoader from 'prismarine-chat' +import { renderSign } from '.' + +const PrismarineChat = PrismarineChatLoader({ language: {} } as any) +let ctxTexts = [] as any[] + +global.document = { + createElement () { + return { + getContext () { + return { + fillText (text, x, y) { + ctxTexts.push({ text, x, y }) + }, + measureText () { return 0 } + } + } + } + } +} as any + +const render = (entity) => { + ctxTexts = [] + renderSign(entity, true, PrismarineChat) + return ctxTexts.map(({ text, y }) => [y / 64, text]) +} + +test('sign renderer', () => { + let blockEntity = { + 'GlowingText': 0, + 'Color': 'black', + 'Text4': '{"text":""}', + 'Text3': '{"text":""}', + 'Text2': '{"text":""}', + 'Text1': '{"extra":[{"color":"dark_green","text":"Minecraft "},{"text":"Tools"}],"text":""}' + } as any + expect(render(blockEntity)).toMatchInlineSnapshot(` + [ + [ + 1, + "Minecraft ", + ], + [ + 1, + "Tools", + ], + ] + `) + + blockEntity = { // pre flatenning + 'Text1': 'Welcome to', + 'Text2': '', + 'Text3': 'null', + 'Text4': '"Version 2.1"', + } as const + expect(render(blockEntity)).toMatchInlineSnapshot(` + [ + [ + 1, + "Welcome to", + ], + [ + 4, + "Version 2.1", + ], + ] + `) +}) diff --git a/renderer/viewer/sign-renderer/vite.config.ts b/renderer/viewer/sign-renderer/vite.config.ts new file mode 100644 index 00000000..aebfc20c --- /dev/null +++ b/renderer/viewer/sign-renderer/vite.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from 'vite' + +export default defineConfig({ + resolve: { + alias: { + 'prismarine-registry': './noop.js', + 'prismarine-nbt': './noop.js' + }, + }, +}) diff --git a/renderer/viewer/three/appShared.ts b/renderer/viewer/three/appShared.ts new file mode 100644 index 00000000..5be9e10b --- /dev/null +++ b/renderer/viewer/three/appShared.ts @@ -0,0 +1,74 @@ +import { BlockModel } from 'mc-assets/dist/types' +import { ItemSpecificContextProperties, PlayerStateRenderer } from 'renderer/viewer/lib/basePlayerState' +import { GeneralInputItem, getItemModelName } from '../../../src/mineflayer/items' +import { ResourcesManager, ResourcesManagerTransferred } from '../../../src/resourcesManager' +import { renderSlot } from './renderSlot' + +export const getItemUv = (item: Record, specificProps: ItemSpecificContextProperties, resourcesManager: ResourcesManagerTransferred, playerState: PlayerStateRenderer): { + u: number + v: number + su: number + sv: number + renderInfo?: ReturnType + // texture: ImageBitmap + modelName: string +} | { + resolvedModel: BlockModel + modelName: string +} => { + const resources = resourcesManager.currentResources + if (!resources) throw new Error('Resources not loaded') + const idOrName = item.itemId ?? item.blockId ?? item.name + const { blockState } = item + try { + const name = + blockState + ? loadedData.blocksByStateId[blockState]?.name + : typeof idOrName === 'number' ? loadedData.items[idOrName]?.name : idOrName + if (!name) throw new Error(`Item not found: ${idOrName}`) + + const model = getItemModelName({ + ...item, + name, + } as GeneralInputItem, specificProps, resourcesManager, playerState) + + const renderInfo = renderSlot({ + modelName: model, + }, resourcesManager, false, true) + + if (!renderInfo) throw new Error(`Failed to get render info for item ${name}`) + + const img = renderInfo.texture === 'blocks' ? resources.blocksAtlasImage : resources.itemsAtlasImage + + if (renderInfo.blockData) { + return { + resolvedModel: renderInfo.blockData.resolvedModel, + modelName: renderInfo.modelName! + } + } + if (renderInfo.slice) { + // Get slice coordinates from either block or item texture + const [x, y, w, h] = renderInfo.slice + const [u, v, su, sv] = [x / img.width, y / img.height, (w / img.width), (h / img.height)] + return { + u, v, su, sv, + renderInfo, + // texture: img, + modelName: renderInfo.modelName! + } + } + + throw new Error(`Invalid render info for item ${name}`) + } catch (err) { + reportError?.(err) + // Return default UV coordinates for missing texture + return { + u: 0, + v: 0, + su: 16 / resources.blocksAtlasImage.width, + sv: 16 / resources.blocksAtlasImage.width, + // texture: resources.blocksAtlasImage, + modelName: 'missing' + } + } +} diff --git a/renderer/viewer/three/cameraShake.ts b/renderer/viewer/three/cameraShake.ts new file mode 100644 index 00000000..7b159509 --- /dev/null +++ b/renderer/viewer/three/cameraShake.ts @@ -0,0 +1,120 @@ +import * as THREE from 'three' +import { WorldRendererThree } from './worldrendererThree' + +export class CameraShake { + private rollAngle = 0 + private get damageRollAmount () { return 5 } + private get damageAnimDuration () { return 200 } + private rollAnimation?: { startTime: number, startRoll: number, targetRoll: number, duration: number, returnToZero?: boolean } + private basePitch = 0 + private baseYaw = 0 + + constructor (public worldRenderer: WorldRendererThree, public onRenderCallbacks: Array<() => void>) { + onRenderCallbacks.push(() => { + this.update() + }) + } + + setBaseRotation (pitch: number, yaw: number) { + this.basePitch = pitch + this.baseYaw = yaw + this.update() + } + + getBaseRotation () { + return { pitch: this.basePitch, yaw: this.baseYaw } + } + + shakeFromDamage (yaw?: number) { + // Add roll animation + const startRoll = this.rollAngle + const targetRoll = startRoll + (yaw ?? (Math.random() < 0.5 ? -1 : 1)) * this.damageRollAmount + + this.rollAnimation = { + startTime: performance.now(), + startRoll, + targetRoll, + duration: this.damageAnimDuration / 2 + } + } + + update () { + if (this.worldRenderer.playerStateUtils.isSpectatingEntity()) { + // Remove any shaking when spectating + this.rollAngle = 0 + this.rollAnimation = undefined + } + // Update roll animation + if (this.rollAnimation) { + const now = performance.now() + const elapsed = now - this.rollAnimation.startTime + const progress = Math.min(elapsed / this.rollAnimation.duration, 1) + + if (this.rollAnimation.returnToZero) { + // Ease back to zero + this.rollAngle = this.rollAnimation.startRoll * (1 - this.easeInOut(progress)) + if (progress === 1) { + this.rollAnimation = undefined + } + } else { + // Initial roll + this.rollAngle = this.rollAnimation.startRoll + (this.rollAnimation.targetRoll - this.rollAnimation.startRoll) * this.easeOut(progress) + if (progress === 1) { + // Start return to zero animation + this.rollAnimation = { + startTime: now, + startRoll: this.rollAngle, + targetRoll: 0, + duration: this.damageAnimDuration / 2, + returnToZero: true + } + } + } + } + + const camera = this.worldRenderer.cameraObject + + if (this.worldRenderer.cameraGroupVr) { + // For VR camera, only apply yaw rotation + const yawQuat = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 1, 0), this.baseYaw) + camera.setRotationFromQuaternion(yawQuat) + } else { + // For regular camera, apply all rotations + // Add tiny offsets to prevent z-fighting at ideal angles (90, 180, 270 degrees) + const pitchOffset = this.addAntiZfightingOffset(this.basePitch) + const yawOffset = this.addAntiZfightingOffset(this.baseYaw) + + const pitchQuat = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(1, 0, 0), pitchOffset) + const yawQuat = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 1, 0), yawOffset) + const rollQuat = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 0, 1), THREE.MathUtils.degToRad(this.rollAngle)) + // Combine rotations in the correct order: pitch -> yaw -> roll + const finalQuat = yawQuat.multiply(pitchQuat).multiply(rollQuat) + camera.setRotationFromQuaternion(finalQuat) + } + } + + private easeOut (t: number): number { + return 1 - (1 - t) * (1 - t) + } + + private easeInOut (t: number): number { + return t < 0.5 ? 2 * t * t : 1 - (-2 * t + 2) ** 2 / 2 + } + + private addAntiZfightingOffset (angle: number): number { + const offset = 0.001 // Very small offset in radians (about 0.057 degrees) + + // Check if the angle is close to ideal angles (0, π/2, π, 3π/2) + const normalizedAngle = ((angle % (Math.PI * 2)) + Math.PI * 2) % (Math.PI * 2) + const tolerance = 0.01 // Tolerance for considering an angle "ideal" + + if (Math.abs(normalizedAngle) < tolerance || + Math.abs(normalizedAngle - Math.PI / 2) < tolerance || + Math.abs(normalizedAngle - Math.PI) < tolerance || + Math.abs(normalizedAngle - 3 * Math.PI / 2) < tolerance) { + return angle + offset + } + + return angle + } +} diff --git a/renderer/viewer/three/documentRenderer.ts b/renderer/viewer/three/documentRenderer.ts new file mode 100644 index 00000000..a5dc060d --- /dev/null +++ b/renderer/viewer/three/documentRenderer.ts @@ -0,0 +1,328 @@ +import * as THREE from 'three' +import Stats from 'stats.js' +import StatsGl from 'stats-gl' +import * as tween from '@tweenjs/tween.js' +import { GraphicsBackendConfig, GraphicsInitOptions } from '../../../src/appViewer' +import { WorldRendererConfig } from '../lib/worldrendererCommon' + +export class DocumentRenderer { + canvas: HTMLCanvasElement | OffscreenCanvas + readonly renderer: THREE.WebGLRenderer + private animationFrameId?: number + private timeoutId?: number + private lastRenderTime = 0 + + private previousCanvasWidth = 0 + private previousCanvasHeight = 0 + private currentWidth = 0 + private currentHeight = 0 + + private renderedFps = 0 + private fpsInterval: any + private readonly stats: TopRightStats | undefined + private paused = false + disconnected = false + preRender = () => { } + render = (sizeChanged: boolean) => { } + postRender = () => { } + sizeChanged = () => { } + droppedFpsPercentage: number + config: GraphicsBackendConfig + onRender = [] as Array<(sizeChanged: boolean) => void> + inWorldRenderingConfig: WorldRendererConfig | undefined + + constructor (initOptions: GraphicsInitOptions, public externalCanvas?: OffscreenCanvas) { + this.config = initOptions.config + + // Handle canvas creation/transfer based on context + if (externalCanvas) { + this.canvas = externalCanvas + } else { + this.addToPage() + } + + try { + this.renderer = new THREE.WebGLRenderer({ + canvas: this.canvas, + preserveDrawingBuffer: true, + logarithmicDepthBuffer: true, + powerPreference: this.config.powerPreference + }) + } catch (err) { + initOptions.callbacks.displayCriticalError(new Error(`Failed to create WebGL context, not possible to render (restart browser): ${err.message}`)) + throw err + } + this.renderer.outputColorSpace = THREE.LinearSRGBColorSpace + if (!externalCanvas) { + this.updatePixelRatio() + } + this.sizeUpdated() + // Initialize previous dimensions + this.previousCanvasWidth = this.canvas.width + this.previousCanvasHeight = this.canvas.height + + const supportsWebGL2 = 'WebGL2RenderingContext' in window + // Only initialize stats and DOM-related features in main thread + if (!externalCanvas && supportsWebGL2) { + this.stats = new TopRightStats(this.canvas as HTMLCanvasElement, this.config.statsVisible) + this.setupFpsTracking() + } + + this.startRenderLoop() + } + + updatePixelRatio () { + let pixelRatio = window.devicePixelRatio || 1 // todo this value is too high on ios, need to check, probably we should use avg, also need to make it configurable + if (!this.renderer.capabilities.isWebGL2) { + pixelRatio = 1 // webgl1 has issues with high pixel ratio (sometimes screen is clipped) + } + this.renderer.setPixelRatio(pixelRatio) + } + + sizeUpdated () { + this.renderer.setSize(this.currentWidth, this.currentHeight, false) + } + + private addToPage () { + this.canvas = addCanvasToPage() + this.updateCanvasSize() + } + + updateSizeExternal (newWidth: number, newHeight: number, pixelRatio: number) { + this.currentWidth = newWidth + this.currentHeight = newHeight + this.renderer.setPixelRatio(pixelRatio) + this.sizeUpdated() + } + + private updateCanvasSize () { + if (!this.externalCanvas) { + const innnerWidth = window.innerWidth + const innnerHeight = window.innerHeight + if (this.currentWidth !== innnerWidth) { + this.currentWidth = innnerWidth + } + if (this.currentHeight !== innnerHeight) { + this.currentHeight = innnerHeight + } + } + } + + private setupFpsTracking () { + let max = 0 + this.fpsInterval = setInterval(() => { + if (max > 0) { + this.droppedFpsPercentage = this.renderedFps / max + } + max = Math.max(this.renderedFps, max) + this.renderedFps = 0 + }, 1000) + } + + private startRenderLoop () { + const animate = () => { + if (this.disconnected) return + + if (this.config.timeoutRendering) { + this.timeoutId = setTimeout(animate, this.config.fpsLimit ? 1000 / this.config.fpsLimit : 0) as unknown as number + } else { + this.animationFrameId = requestAnimationFrame(animate) + } + + if (this.paused || (this.renderer.xr.isPresenting && !this.inWorldRenderingConfig?.vrPageGameRendering)) return + + // Handle FPS limiting + if (this.config.fpsLimit) { + const now = performance.now() + const elapsed = now - this.lastRenderTime + const fpsInterval = 1000 / this.config.fpsLimit + + if (elapsed < fpsInterval) { + return + } + + this.lastRenderTime = now - (elapsed % fpsInterval) + } + + let sizeChanged = false + this.updateCanvasSize() + if (this.previousCanvasWidth !== this.currentWidth || this.previousCanvasHeight !== this.currentHeight) { + this.previousCanvasWidth = this.currentWidth + this.previousCanvasHeight = this.currentHeight + this.sizeUpdated() + sizeChanged = true + } + + this.frameRender(sizeChanged) + + // Update stats visibility each frame (main thread only) + if (this.config.statsVisible !== undefined) { + this.stats?.setVisibility(this.config.statsVisible) + } + } + + animate() + } + + frameRender (sizeChanged: boolean) { + this.preRender() + this.stats?.markStart() + tween.update() + if (!globalThis.freezeRender) { + this.render(sizeChanged) + } + for (const fn of this.onRender) { + fn(sizeChanged) + } + this.renderedFps++ + this.stats?.markEnd() + this.postRender() + } + + setPaused (paused: boolean) { + this.paused = paused + } + + dispose () { + this.disconnected = true + if (this.animationFrameId) { + cancelAnimationFrame(this.animationFrameId) + } + if (this.timeoutId) { + clearTimeout(this.timeoutId) + } + if (this.canvas instanceof HTMLCanvasElement) { + this.canvas.remove() + } + clearInterval(this.fpsInterval) + this.stats?.dispose() + this.renderer.dispose() + } +} + +class TopRightStats { + private readonly stats: Stats + private readonly stats2: Stats + private readonly statsGl: StatsGl + private total = 0 + private readonly denseMode: boolean + + constructor (private readonly canvas: HTMLCanvasElement, initialStatsVisible = 0) { + this.stats = new Stats() + this.stats2 = new Stats() + this.statsGl = new StatsGl({ minimal: true }) + this.stats2.showPanel(2) + this.denseMode = process.env.NODE_ENV === 'production' || window.innerHeight < 500 + + this.initStats() + this.setVisibility(initialStatsVisible) + } + + private addStat (dom: HTMLElement, size = 80) { + dom.style.position = 'absolute' + if (this.denseMode) dom.style.height = '12px' + dom.style.overflow = 'hidden' + dom.style.left = '' + dom.style.top = '0' + dom.style.right = `${this.total}px` + dom.style.width = '80px' + dom.style.zIndex = '1' + dom.style.opacity = '0.8' + document.body.appendChild(dom) + this.total += size + } + + private initStats () { + const hasRamPanel = this.stats2.dom.children.length === 3 + + this.addStat(this.stats.dom) + if (process.env.NODE_ENV === 'development' && document.exitPointerLock) { + this.stats.dom.style.top = '' + this.stats.dom.style.bottom = '0' + } + if (hasRamPanel) { + this.addStat(this.stats2.dom) + } + + this.statsGl.init(this.canvas) + this.statsGl.container.style.display = 'flex' + this.statsGl.container.style.justifyContent = 'flex-end' + + let i = 0 + for (const _child of this.statsGl.container.children) { + const child = _child as HTMLElement + if (i++ === 0) { + child.style.display = 'none' + } + child.style.position = '' + } + } + + setVisibility (level: number) { + const visible = level > 0 + if (visible) { + this.stats.dom.style.display = 'block' + this.stats2.dom.style.display = level >= 2 ? 'block' : 'none' + this.statsGl.container.style.display = level >= 2 ? 'block' : 'none' + } else { + this.stats.dom.style.display = 'none' + this.stats2.dom.style.display = 'none' + this.statsGl.container.style.display = 'none' + } + } + + markStart () { + this.stats.begin() + this.stats2.begin() + this.statsGl.begin() + } + + markEnd () { + this.stats.end() + this.stats2.end() + this.statsGl.end() + } + + dispose () { + this.stats.dom.remove() + this.stats2.dom.remove() + this.statsGl.container.remove() + } +} + +const addCanvasToPage = () => { + const canvas = document.createElement('canvas') + canvas.id = 'viewer-canvas' + document.body.appendChild(canvas) + return canvas +} + +export const addCanvasForWorker = () => { + const canvas = addCanvasToPage() + const transferred = canvas.transferControlToOffscreen() + let removed = false + let onSizeChanged = (w, h) => { } + let oldSize = { width: 0, height: 0 } + const checkSize = () => { + if (removed) return + if (oldSize.width !== window.innerWidth || oldSize.height !== window.innerHeight) { + onSizeChanged(window.innerWidth, window.innerHeight) + oldSize = { width: window.innerWidth, height: window.innerHeight } + } + requestAnimationFrame(checkSize) + } + requestAnimationFrame(checkSize) + return { + canvas: transferred, + destroy () { + removed = true + canvas.remove() + }, + onSizeChanged (cb: (width: number, height: number) => void) { + onSizeChanged = cb + }, + get size () { + return { width: window.innerWidth, height: window.innerHeight } + } + } +} diff --git a/renderer/viewer/three/entities.ts b/renderer/viewer/three/entities.ts new file mode 100644 index 00000000..fad30182 --- /dev/null +++ b/renderer/viewer/three/entities.ts @@ -0,0 +1,1493 @@ +//@ts-check +import { UnionToIntersection } from 'type-fest' +import nbt from 'prismarine-nbt' +import * as TWEEN from '@tweenjs/tween.js' +import * as THREE from 'three' +import { PlayerAnimation, PlayerObject } from 'skinview3d' +import { inferModelType, loadCapeToCanvas, loadEarsToCanvasFromSkin } from 'skinview-utils' +// todo replace with url +import { degreesToRadians } from '@nxg-org/mineflayer-tracker/lib/mathUtils' +import { NameTagObject } from 'skinview3d/libs/nametag' +import { flat, fromFormattedString } from '@xmcl/text-component' +import mojangson from 'mojangson' +import { snakeCase } from 'change-case' +import { Item } from 'prismarine-item' +import { isEntityAttackable } from 'mineflayer-mouse/dist/attackableEntity' +import { Team } from 'mineflayer' +import PrismarineChatLoader from 'prismarine-chat' +import { EntityMetadataVersions } from '../../../src/mcDataTypes' +import { ItemSpecificContextProperties } from '../lib/basePlayerState' +import { loadSkinFromUsername, loadSkinImage, stevePngUrl } from '../lib/utils/skins' +import { renderComponent } from '../sign-renderer' +import { createCanvas } from '../lib/utils' +import { PlayerObjectType } from '../lib/createPlayerObject' +import { getBlockMeshFromModel } from './holdingBlock' +import { createItemMesh } from './itemMesh' +import * as Entity from './entity/EntityMesh' +import { getMesh } from './entity/EntityMesh' +import { WalkingGeneralSwing } from './entity/animations' +import { disposeObject, loadTexture, loadThreeJsTextureFromUrl } from './threeJsUtils' +import { armorModel, armorTextures, elytraTexture } from './entity/armorModels' +import { WorldRendererThree } from './worldrendererThree' + +export const steveTexture = loadThreeJsTextureFromUrl(stevePngUrl) + +export const TWEEN_DURATION = 120 + +function convert2sComplementToHex (complement: number) { + if (complement < 0) { + complement = (0xFF_FF_FF_FF + complement + 1) >>> 0 + } + return complement.toString(16) +} + +function toRgba (color: string | undefined) { + if (color === undefined) { + return undefined + } + if (parseInt(color, 10) === 0) { + return 'rgba(0, 0, 0, 0)' + } + const hex = convert2sComplementToHex(parseInt(color, 10)) + if (hex.length === 8) { + return `#${hex.slice(2, 8)}${hex.slice(0, 2)}` + } else { + return `#${hex}` + } +} + +function toQuaternion (quaternion: any, defaultValue?: THREE.Quaternion) { + if (quaternion === undefined) { + return defaultValue + } + if (quaternion instanceof THREE.Quaternion) { + return quaternion + } + if (Array.isArray(quaternion)) { + return new THREE.Quaternion(quaternion[0], quaternion[1], quaternion[2], quaternion[3]) + } + return new THREE.Quaternion(quaternion.x, quaternion.y, quaternion.z, quaternion.w) +} + +function poseToEuler (pose: any, defaultValue?: THREE.Euler) { + if (pose === undefined) { + return defaultValue ?? new THREE.Euler() + } + if (pose instanceof THREE.Euler) { + return pose + } + if (pose['yaw'] !== undefined && pose['pitch'] !== undefined && pose['roll'] !== undefined) { + // Convert Minecraft pitch, yaw, roll definitions to our angle system + return new THREE.Euler(-degreesToRadians(pose.pitch), -degreesToRadians(pose.yaw), degreesToRadians(pose.roll), 'ZYX') + } + if (pose['x'] !== undefined && pose['y'] !== undefined && pose['z'] !== undefined) { + return new THREE.Euler(pose.z, pose.y, pose.x, 'ZYX') + } + if (Array.isArray(pose)) { + return new THREE.Euler(pose[0], pose[1], pose[2]) + } + return defaultValue ?? new THREE.Euler() +} + +function getUsernameTexture ({ + username, + nameTagBackgroundColor = 'rgba(0, 0, 0, 0.3)', + nameTagTextOpacity = 255 +}: any, { fontFamily = 'mojangles' }: any, version: string) { + const canvas = createCanvas(64, 64) + + const PrismarineChat = PrismarineChatLoader(version) + + const ctx = canvas.getContext('2d') + if (!ctx) throw new Error('Could not get 2d context') + + const fontSize = 48 + const padding = 5 + ctx.font = `${fontSize}px ${fontFamily}` + + const plainLines = String(typeof username === 'string' ? username : new PrismarineChat(username).toString()).split('\n') + let textWidth = 0 + for (const line of plainLines) { + const width = ctx.measureText(line).width + padding * 2 + if (width > textWidth) textWidth = width + } + + canvas.width = textWidth + canvas.height = (fontSize + padding) * plainLines.length + + ctx.fillStyle = nameTagBackgroundColor + ctx.fillRect(0, 0, canvas.width, canvas.height) + + ctx.globalAlpha = nameTagTextOpacity / 255 + + renderComponent(username, PrismarineChat, canvas, fontSize, 'white', -padding + fontSize) + + ctx.globalAlpha = 1 + + return canvas +} + +const addNametag = (entity, options: { fontFamily: string }, mesh, version: string) => { + for (const c of mesh.children) { + if (c.name === 'nametag') { + c.removeFromParent() + } + } + if (entity.username !== undefined) { + const canvas = getUsernameTexture(entity, options, version) + const tex = new THREE.Texture(canvas) + tex.needsUpdate = true + let nameTag: THREE.Object3D + if (entity.nameTagFixed) { + const geometry = new THREE.PlaneGeometry() + const material = new THREE.MeshBasicMaterial({ map: tex }) + material.transparent = true + nameTag = new THREE.Mesh(geometry, material) + nameTag.rotation.set(entity.pitch, THREE.MathUtils.degToRad(entity.yaw + 180), 0) + nameTag.position.y += entity.height + 0.3 + } else { + const spriteMat = new THREE.SpriteMaterial({ map: tex }) + nameTag = new THREE.Sprite(spriteMat) + nameTag.position.y += entity.height + 0.6 + } + nameTag.renderOrder = 1000 + nameTag.scale.set(canvas.width * 0.005, canvas.height * 0.005, 1) + if (entity.nameTagRotationRight) { + nameTag.applyQuaternion(entity.nameTagRotationRight) + } + if (entity.nameTagScale) { + nameTag.scale.multiply(entity.nameTagScale) + } + if (entity.nameTagRotationLeft) { + nameTag.applyQuaternion(entity.nameTagRotationLeft) + } + if (entity.nameTagTranslation) { + nameTag.position.add(entity.nameTagTranslation) + } + nameTag.name = 'nametag' + + mesh.add(nameTag) + return nameTag + } +} + +// todo cleanup +const nametags = {} + +const isFirstUpperCase = (str) => str.charAt(0) === str.charAt(0).toUpperCase() + +function getEntityMesh (entity: import('prismarine-entity').Entity & { delete?: any; pos?: any; name?: any }, world: WorldRendererThree, options: { fontFamily: string }, overrides) { + if (entity.name) { + try { + // https://github.com/PrismarineJS/prismarine-viewer/pull/410 + const entityName = (isFirstUpperCase(entity.name) ? snakeCase(entity.name) : entity.name).toLowerCase() + const e = new Entity.EntityMesh('1.16.4', entityName, world, overrides) + + if (e.mesh) { + addNametag(entity, options, e.mesh, world.version) + return e.mesh + } + } catch (err) { + reportError?.(err) + } + } + + if (!isEntityAttackable(loadedData, entity)) return + const geometry = new THREE.BoxGeometry(entity.width, entity.height, entity.width) + geometry.translate(0, entity.height / 2, 0) + const material = new THREE.MeshBasicMaterial({ color: 0xff_00_ff }) + const cube = new THREE.Mesh(geometry, material) + const nametagCount = (nametags[entity.name] = (nametags[entity.name] || 0) + 1) + if (nametagCount < 6) { + addNametag({ + username: entity.name, + height: entity.height, + }, options, cube, world.version) + } + return cube +} + +export type SceneEntity = THREE.Object3D & { + playerObject?: PlayerObjectType + username?: string + uuid?: string + additionalCleanup?: () => void + originalEntity: import('prismarine-entity').Entity & { delete?; pos?, name, team?: Team } +} + +export class Entities { + entities = {} as Record + playerEntity: SceneEntity | null = null // Special entity for the player in third person + entitiesOptions = { + fontFamily: 'mojangles' + } + debugMode: string + onSkinUpdate: () => void + clock = new THREE.Clock() + currentlyRendering = true + cachedMapsImages = {} as Record + itemFrameMaps = {} as Record>> + + get entitiesByName (): Record { + const byName: Record = {} + for (const entity of Object.values(this.entities)) { + if (!entity['realName']) continue + byName[entity['realName']] = byName[entity['realName']] || [] + byName[entity['realName']].push(entity) + } + return byName + } + + get entitiesRenderingCount (): number { + return Object.values(this.entities).filter(entity => entity.visible).length + } + + getDebugString (): string { + const totalEntities = Object.keys(this.entities).length + const visibleEntities = this.entitiesRenderingCount + + const playerEntities = Object.values(this.entities).filter(entity => entity.playerObject) + const visiblePlayerEntities = playerEntities.filter(entity => entity.visible) + + return `${visibleEntities}/${totalEntities} ${visiblePlayerEntities.length}/${playerEntities.length}` + } + + constructor (public worldRenderer: WorldRendererThree) { + this.debugMode = 'none' + this.onSkinUpdate = () => { } + this.watchResourcesUpdates() + } + + handlePlayerEntity (playerData: SceneEntity['originalEntity']) { + // Create player entity if it doesn't exist + if (!this.playerEntity) { + // Create the player entity similar to how normal entities are created + const group = new THREE.Group() as unknown as SceneEntity + group.originalEntity = { ...playerData, name: 'player' } as SceneEntity['originalEntity'] + + const wrapper = new THREE.Group() + const playerObject = this.setupPlayerObject(playerData, wrapper, {}) + group.playerObject = playerObject + group.add(wrapper) + + group.name = 'player_entity' + this.playerEntity = group + this.worldRenderer.scene.add(group) + + void this.updatePlayerSkin(playerData.id, playerData.username, playerData.uuid ?? undefined, stevePngUrl) + } + + // Update position and rotation + if (playerData.position) { + this.playerEntity.position.set(playerData.position.x, playerData.position.y, playerData.position.z) + } + if (playerData.yaw !== undefined) { + this.playerEntity.rotation.y = playerData.yaw + } + + this.updateEntityEquipment(this.playerEntity, playerData) + } + + clear () { + for (const mesh of Object.values(this.entities)) { + this.worldRenderer.scene.remove(mesh) + disposeObject(mesh) + } + this.entities = {} + + // Clean up player entity + if (this.playerEntity) { + this.worldRenderer.scene.remove(this.playerEntity) + disposeObject(this.playerEntity) + this.playerEntity = null + } + } + + reloadEntities () { + for (const entity of Object.values(this.entities)) { + // update all entities textures like held items, armour, etc + // todo update entity textures itself + this.update({ ...entity.originalEntity, delete: true, } as SceneEntity['originalEntity'], {}) + this.update(entity.originalEntity, {}) + } + } + + watchResourcesUpdates () { + this.worldRenderer.resourcesManager.on('assetsTexturesUpdated', () => this.reloadEntities()) + this.worldRenderer.resourcesManager.on('assetsInventoryReady', () => this.reloadEntities()) + } + + setDebugMode (mode: string, entity: THREE.Object3D | null = null) { + this.debugMode = mode + for (const mesh of entity ? [entity] : Object.values(this.entities)) { + const boxHelper = mesh.children.find(c => c.name === 'debug')! + boxHelper.visible = false + if (this.debugMode === 'basic') { + boxHelper.visible = true + } + // todo advanced + } + } + + setRendering (rendering: boolean, entity: THREE.Object3D | null = null) { + this.currentlyRendering = rendering + for (const ent of entity ? [entity] : Object.values(this.entities)) { + if (rendering) { + if (!this.worldRenderer.scene.children.includes(ent)) this.worldRenderer.scene.add(ent) + } else { + this.worldRenderer.scene.remove(ent) + } + } + } + + render () { + const renderEntitiesConfig = this.worldRenderer.worldRendererConfig.renderEntities + if (renderEntitiesConfig !== this.currentlyRendering) { + this.setRendering(renderEntitiesConfig) + } + + const dt = this.clock.getDelta() + const botPos = this.worldRenderer.viewerChunkPosition + const VISIBLE_DISTANCE = 10 * 10 + + // Update regular entities + for (const [entityId, entity] of [...Object.entries(this.entities), ['player_entity', this.playerEntity] as [string, SceneEntity | null]]) { + if (!entity) continue + const { playerObject } = entity + + // Update animations + if (playerObject?.animation) { + playerObject.animation.update(playerObject, dt) + } + + // Update visibility based on distance and chunk load status + if (botPos && entity.position) { + const dx = entity.position.x - botPos.x + const dy = entity.position.y - botPos.y + const dz = entity.position.z - botPos.z + const distanceSquared = dx * dx + dy * dy + dz * dz + + // Entity is visible if within 20 blocks OR in a finished chunk + entity.visible = !!(distanceSquared < VISIBLE_DISTANCE || this.worldRenderer.shouldObjectVisible(entity)) + + this.maybeRenderPlayerSkin(entityId) + } + + if (entity.visible) { + // Update armor positions + this.syncArmorPositions(entity) + } + + if (entityId === 'player_entity') { + entity.visible = this.worldRenderer.playerStateUtils.isThirdPerson() + + if (entity.visible) { + // sync + const yOffset = this.worldRenderer.playerStateReactive.eyeHeight + const pos = this.worldRenderer.cameraObject.position.clone().add(new THREE.Vector3(0, -yOffset, 0)) + entity.position.set(pos.x, pos.y, pos.z) + + const rotation = this.worldRenderer.cameraShake.getBaseRotation() + entity.rotation.set(0, rotation.yaw, 0) + + // Sync head rotation + entity.traverse((c) => { + if (c.name === 'head') { + c.rotation.set(-rotation.pitch, 0, 0) + } + }) + } + } + } + } + + private syncArmorPositions (entity: SceneEntity) { + if (!entity.playerObject) return + + // todo-low use property access for less loop iterations (small performance gain) + entity.traverse((armor) => { + if (!armor.name.startsWith('geometry_armor_')) return + + const { skin } = entity.playerObject! + + switch (armor.name) { + case 'geometry_armor_head': + // Head armor sync + if (armor.children[0]?.children[0]) { + armor.children[0].children[0].rotation.set( + -skin.head.rotation.x, + skin.head.rotation.y, + skin.head.rotation.z, + skin.head.rotation.order + ) + } + break + + case 'geometry_armor_legs': + // Legs armor sync + if (armor.children[0]) { + // Left leg + if (armor.children[0].children[2]) { + armor.children[0].children[2].rotation.set( + -skin.leftLeg.rotation.x, + skin.leftLeg.rotation.y, + skin.leftLeg.rotation.z, + skin.leftLeg.rotation.order + ) + } + // Right leg + if (armor.children[0].children[1]) { + armor.children[0].children[1].rotation.set( + -skin.rightLeg.rotation.x, + skin.rightLeg.rotation.y, + skin.rightLeg.rotation.z, + skin.rightLeg.rotation.order + ) + } + } + break + + case 'geometry_armor_feet': + // Boots armor sync + if (armor.children[0]) { + // Right boot + if (armor.children[0].children[0]) { + armor.children[0].children[0].rotation.set( + -skin.rightLeg.rotation.x, + skin.rightLeg.rotation.y, + skin.rightLeg.rotation.z, + skin.rightLeg.rotation.order + ) + } + // Left boot (reversed Z rotation) + if (armor.children[0].children[1]) { + armor.children[0].children[1].rotation.set( + -skin.leftLeg.rotation.x, + skin.leftLeg.rotation.y, + -skin.leftLeg.rotation.z, + skin.leftLeg.rotation.order + ) + } + } + break + } + }) + } + + getPlayerObject (entityId: string | number) { + if (this.playerEntity?.originalEntity.id === entityId) return this.playerEntity?.playerObject + const playerObject = this.entities[entityId]?.playerObject + return playerObject + } + + uuidPerSkinUrlsCache = {} as Record + + private isCanvasBlank (canvas: HTMLCanvasElement): boolean { + return !canvas.getContext('2d') + ?.getImageData(0, 0, canvas.width, canvas.height).data + .some(channel => channel !== 0) + } + + // todo true/undefined doesnt reset the skin to the default one + // eslint-disable-next-line max-params + async updatePlayerSkin (entityId: string | number, username: string | undefined, uuidCache: string | undefined, skinUrl: string | true, capeUrl: string | true | undefined = undefined) { + const isCustomSkin = skinUrl !== stevePngUrl + if (isCustomSkin) { + this.loadedSkinEntityIds.add(String(entityId)) + } + if (uuidCache) { + if (typeof skinUrl === 'string' || typeof capeUrl === 'string') this.uuidPerSkinUrlsCache[uuidCache] = {} + if (typeof skinUrl === 'string') this.uuidPerSkinUrlsCache[uuidCache].skinUrl = skinUrl + if (typeof capeUrl === 'string') this.uuidPerSkinUrlsCache[uuidCache].capeUrl = capeUrl + if (skinUrl === true) { + skinUrl = this.uuidPerSkinUrlsCache[uuidCache]?.skinUrl ?? skinUrl + } + capeUrl ??= this.uuidPerSkinUrlsCache[uuidCache]?.capeUrl + } + + const playerObject = this.getPlayerObject(entityId) + if (!playerObject) return + + if (skinUrl === true) { + if (!username) return + const newSkinUrl = await loadSkinFromUsername(username, 'skin') + if (!this.getPlayerObject(entityId)) return + if (!newSkinUrl) return + skinUrl = newSkinUrl + } + + if (typeof skinUrl !== 'string') throw new Error('Invalid skin url') + const renderEars = this.worldRenderer.worldRendererConfig.renderEars || username === 'deadmau5' + void this.loadAndApplySkin(entityId, skinUrl, renderEars).then(async () => { + if (capeUrl) { + if (capeUrl === true && username) { + const newCapeUrl = await loadSkinFromUsername(username, 'cape') + if (!this.getPlayerObject(entityId)) return + if (!newCapeUrl) return + capeUrl = newCapeUrl + } + if (typeof capeUrl === 'string') { + void this.loadAndApplyCape(entityId, capeUrl) + } + } + }) + + + playerObject.cape.visible = false + if (!capeUrl) { + playerObject.backEquipment = null + playerObject.elytra.map = null + if (playerObject.cape.map) { + playerObject.cape.map.dispose() + } + playerObject.cape.map = null + } + } + + private async loadAndApplySkin (entityId: string | number, skinUrl: string, renderEars: boolean) { + let playerObject = this.getPlayerObject(entityId) + if (!playerObject) return + + try { + let playerCustomSkinImage: ImageBitmap | undefined + + playerObject = this.getPlayerObject(entityId) + if (!playerObject) return + + let skinTexture: THREE.Texture + let skinCanvas: OffscreenCanvas + if (skinUrl === stevePngUrl) { + skinTexture = await steveTexture + const canvas = createCanvas(64, 64) + const ctx = canvas.getContext('2d') + if (!ctx) throw new Error('Failed to get context') + ctx.drawImage(skinTexture.image, 0, 0) + skinCanvas = canvas + } else { + const { canvas, image } = await loadSkinImage(skinUrl) + playerCustomSkinImage = image + skinTexture = new THREE.CanvasTexture(canvas) + skinCanvas = canvas + } + + skinTexture.magFilter = THREE.NearestFilter + skinTexture.minFilter = THREE.NearestFilter + skinTexture.needsUpdate = true + playerObject.skin.map = skinTexture as any + playerObject.skin.modelType = inferModelType(skinCanvas) + + let earsCanvas: HTMLCanvasElement | undefined + if (!playerCustomSkinImage) { + renderEars = false + } else if (renderEars) { + earsCanvas = document.createElement('canvas') + loadEarsToCanvasFromSkin(earsCanvas, playerCustomSkinImage) + renderEars = !this.isCanvasBlank(earsCanvas) + } + if (renderEars) { + const earsTexture = new THREE.CanvasTexture(earsCanvas!) + earsTexture.magFilter = THREE.NearestFilter + earsTexture.minFilter = THREE.NearestFilter + earsTexture.needsUpdate = true + //@ts-expect-error + playerObject.ears.map = earsTexture + playerObject.ears.visible = true + } else { + playerObject.ears.map = null + playerObject.ears.visible = false + } + this.onSkinUpdate?.() + } catch (error) { + console.error('Error loading skin:', error) + } + } + + private async loadAndApplyCape (entityId: string | number, capeUrl: string) { + let playerObject = this.getPlayerObject(entityId) + if (!playerObject) return + + try { + const { canvas: capeCanvas, image: capeImage } = await loadSkinImage(capeUrl) + + playerObject = this.getPlayerObject(entityId) + if (!playerObject) return + + loadCapeToCanvas(capeCanvas, capeImage) + const capeTexture = new THREE.CanvasTexture(capeCanvas) + capeTexture.magFilter = THREE.NearestFilter + capeTexture.minFilter = THREE.NearestFilter + capeTexture.needsUpdate = true + //@ts-expect-error + playerObject.cape.map = capeTexture + playerObject.cape.visible = true + //@ts-expect-error + playerObject.elytra.map = capeTexture + this.onSkinUpdate?.() + + if (!playerObject.backEquipment) { + playerObject.backEquipment = 'cape' + } + } catch (error) { + console.error('Error loading cape:', error) + } + } + + debugSwingArm () { + const playerObject = Object.values(this.entities).find(entity => entity.playerObject?.animation instanceof WalkingGeneralSwing) + if (!playerObject) return + (playerObject.playerObject!.animation as WalkingGeneralSwing).swingArm() + } + + playAnimation (entityPlayerId, animation: 'walking' | 'running' | 'oneSwing' | 'idle' | 'crouch' | 'crouchWalking') { + // TODO CLEANUP! + // Handle special player entity ID for bot entity in third person + if (entityPlayerId === 'player_entity' && this.playerEntity?.playerObject) { + const { playerObject } = this.playerEntity + if (animation === 'oneSwing') { + if (!(playerObject.animation instanceof WalkingGeneralSwing)) throw new Error('Expected WalkingGeneralSwing') + playerObject.animation.swingArm() + return + } + + if (playerObject.animation instanceof WalkingGeneralSwing) { + playerObject.animation.switchAnimationCallback = () => { + if (!(playerObject.animation instanceof WalkingGeneralSwing)) throw new Error('Expected WalkingGeneralSwing') + playerObject.animation.isMoving = animation === 'walking' || animation === 'running' || animation === 'crouchWalking' + playerObject.animation.isRunning = animation === 'running' + playerObject.animation.isCrouched = animation === 'crouch' || animation === 'crouchWalking' + } + } + return + } + + // Handle regular entities + const playerObject = this.getPlayerObject(entityPlayerId) + if (playerObject) { + if (animation === 'oneSwing') { + if (!(playerObject.animation instanceof WalkingGeneralSwing)) throw new Error('Expected WalkingGeneralSwing') + playerObject.animation.swingArm() + return + } + + if (playerObject.animation instanceof WalkingGeneralSwing) { + playerObject.animation.switchAnimationCallback = () => { + if (!(playerObject.animation instanceof WalkingGeneralSwing)) throw new Error('Expected WalkingGeneralSwing') + playerObject.animation.isMoving = animation === 'walking' || animation === 'running' || animation === 'crouchWalking' + playerObject.animation.isRunning = animation === 'running' + playerObject.animation.isCrouched = animation === 'crouch' || animation === 'crouchWalking' + } + } + return + } + + // Handle player entity (for third person view) - fallback for backwards compatibility + if (this.playerEntity?.playerObject) { + const { playerObject: playerEntityObject } = this.playerEntity + if (animation === 'oneSwing') { + if (!(playerEntityObject.animation instanceof WalkingGeneralSwing)) throw new Error('Expected WalkingGeneralSwing') + playerEntityObject.animation.swingArm() + return + } + + if (playerEntityObject.animation instanceof WalkingGeneralSwing) { + playerEntityObject.animation.switchAnimationCallback = () => { + if (!(playerEntityObject.animation instanceof WalkingGeneralSwing)) throw new Error('Expected WalkingGeneralSwing') + playerEntityObject.animation.isMoving = animation === 'walking' || animation === 'running' || animation === 'crouchWalking' + playerEntityObject.animation.isRunning = animation === 'running' + playerEntityObject.animation.isCrouched = animation === 'crouch' || animation === 'crouchWalking' + } + } + } + } + + parseEntityLabel (jsonLike) { + if (!jsonLike) return + try { + if (jsonLike.type === 'string') { + return jsonLike.value + } + const parsed = typeof jsonLike === 'string' ? mojangson.simplify(mojangson.parse(jsonLike)) : nbt.simplify(jsonLike) + const text = flat(parsed).map(this.textFromComponent) + return text.join('') + } catch (err) { + return jsonLike + } + } + + private textFromComponent (component) { + return typeof component === 'string' ? component : component.text ?? '' + } + + getItemMesh (item, specificProps: ItemSpecificContextProperties, faceCamera = false, previousModel?: string) { + if (!item.nbt && item.nbtData) item.nbt = item.nbtData + const textureUv = this.worldRenderer.getItemRenderData(item, specificProps) + if (previousModel && previousModel === textureUv?.modelName) return undefined + + if (textureUv && 'resolvedModel' in textureUv) { + const mesh = getBlockMeshFromModel(this.worldRenderer.material, textureUv.resolvedModel, textureUv.modelName, this.worldRenderer.resourcesManager.currentResources.worldBlockProvider!) + let SCALE = 1 + if (specificProps['minecraft:display_context'] === 'ground') { + SCALE = 0.5 + } else if (specificProps['minecraft:display_context'] === 'thirdperson') { + SCALE = 6 + } + mesh.scale.set(SCALE, SCALE, SCALE) + const outerGroup = new THREE.Group() + outerGroup.add(mesh) + return { + mesh: outerGroup, + isBlock: true, + modelName: textureUv.modelName, + } + } + + // Render proper 3D model for items + if (textureUv) { + const textureThree = textureUv.renderInfo?.texture === 'blocks' ? this.worldRenderer.material.map! : this.worldRenderer.itemsTexture + const { u, v, su, sv } = textureUv + const sizeX = su ?? 1 // su is actually width + const sizeY = sv ?? 1 // sv is actually height + + // Use the new unified item mesh function + const result = createItemMesh(textureThree, { + u, + v, + sizeX, + sizeY + }, { + faceCamera, + use3D: !faceCamera, // Only use 3D for non-camera-facing items + }) + + let SCALE = 1 + if (specificProps['minecraft:display_context'] === 'ground') { + SCALE = 0.5 + } else if (specificProps['minecraft:display_context'] === 'thirdperson') { + SCALE = 6 + } + result.mesh.scale.set(SCALE, SCALE, SCALE) + + return { + mesh: result.mesh, + isBlock: false, + modelName: textureUv.modelName, + cleanup: result.cleanup + } + } + } + + setVisible (mesh: THREE.Object3D, visible: boolean) { + //mesh.visible = visible + //TODO: Fix workaround for visibility setting + if (visible) { + mesh.scale.set(1, 1, 1) + } else { + mesh.scale.set(0, 0, 0) + } + } + + update (entity: SceneEntity['originalEntity'], overrides) { + const isPlayerModel = entity.name === 'player' + if (entity.name === 'zombie_villager' || entity.name === 'husk') { + overrides.texture = `textures/1.16.4/entity/${entity.name === 'zombie_villager' ? 'zombie_villager/zombie_villager.png' : `zombie/${entity.name}.png`}` + } + if (entity.name === 'glow_item_frame') { + if (!overrides.textures) overrides.textures = [] + overrides.textures['background'] = 'block:glow_item_frame' + } + // this can be undefined in case where packet entity_destroy was sent twice (so it was already deleted) + let e = this.entities[entity.id] + const justAdded = !e + + if (entity.delete) { + if (!e) return + if (e.additionalCleanup) e.additionalCleanup() + e.traverse(c => { + if (c['additionalCleanup']) c['additionalCleanup']() + }) + this.onRemoveEntity(entity) + this.worldRenderer.scene.remove(e) + disposeObject(e) + // todo dispose textures as well ? + delete this.entities[entity.id] + return + } + + let mesh: THREE.Object3D | undefined + if (e === undefined) { + const group = new THREE.Group() as unknown as SceneEntity + group.originalEntity = entity + if (entity.name === 'item' || entity.name === 'tnt' || entity.name === 'falling_block' || entity.name === 'snowball' + || entity.name === 'egg' || entity.name === 'ender_pearl' || entity.name === 'experience_bottle' + || entity.name === 'splash_potion' || entity.name === 'lingering_potion') { + const item = entity.name === 'tnt' || entity.type === 'projectile' + ? { name: entity.name } + : entity.name === 'falling_block' + ? { blockState: entity['objectData'] } + : entity.metadata?.find((m: any) => typeof m === 'object' && m?.itemCount) + if (item) { + const object = this.getItemMesh(item, { + 'minecraft:display_context': 'ground', + }, entity.type === 'projectile') + if (object) { + mesh = object.mesh + if (entity.name === 'item' || entity.type === 'projectile') { + mesh.scale.set(0.5, 0.5, 0.5) + mesh.position.set(0, entity.name === 'item' ? 0.2 : 0.1, 0) + } else { + mesh.scale.set(2, 2, 2) + mesh.position.set(0, 0.5, 0) + } + // set faces + // mesh.position.set(targetPos.x + 0.5 + 2, targetPos.y + 0.5, targetPos.z + 0.5) + // viewer.scene.add(mesh) + if (entity.name === 'item') { + const clock = new THREE.Clock() + mesh.onBeforeRender = () => { + const delta = clock.getDelta() + mesh!.rotation.y += delta + } + } + + // TNT blinking + // if (entity.name === 'tnt') { + // let lastBlink = 0 + // const blinkInterval = 500 // ms between blinks + // mesh.onBeforeRender = () => { + // const now = Date.now() + // if (now - lastBlink > blinkInterval) { + // lastBlink = now + // mesh.traverse((child) => { + // if (child instanceof THREE.Mesh) { + // const material = child.material as THREE.MeshLambertMaterial + // material.color.set(material.color?.equals(new THREE.Color(0xff_ff_ff)) + // ? new THREE.Color(0xff_00_00) + // : new THREE.Color(0xff_ff_ff)) + // } + // }) + // } + // } + // } + + group.additionalCleanup = () => { + // important: avoid texture memory leak and gpu slowdown + if (object.cleanup) { + object.cleanup() + } + } + } + } + } else if (isPlayerModel) { + const wrapper = new THREE.Group() + const playerObject = this.setupPlayerObject(entity, wrapper, overrides) + group.playerObject = playerObject + mesh = wrapper + + if (entity.username) { + const nametag = addNametag(entity, { fontFamily: 'mojangles' }, wrapper, this.worldRenderer.version) + if (nametag) { + nametag.position.y = playerObject.position.y + playerObject.scale.y * 16 + 3 + nametag.scale.multiplyScalar(12) + } + } + } else { + mesh = getEntityMesh(entity, this.worldRenderer, this.entitiesOptions, { ...overrides, customModel: entity['customModel'] }) + } + if (!mesh) return + mesh.name = 'mesh' + // set initial position so there are no weird jumps update after + const pos = entity.pos ?? entity.position + group.position.set(pos.x, pos.y, pos.z) + + // todo use width and height instead + const boxHelper = new THREE.BoxHelper( + mesh, + entity.type === 'hostile' ? 0xff_00_00 : + entity.type === 'mob' ? 0x00_ff_00 : + entity.type === 'player' ? 0x00_00_ff : + 0xff_a5_00, + ) + boxHelper.name = 'debug' + group.add(mesh) + group.add(boxHelper) + boxHelper.visible = false + this.worldRenderer.scene.add(group) + + e = group + e.name = 'entity' + e['realName'] = entity.name + this.entities[entity.id] = e + + this.onAddEntity(entity) + + if (isPlayerModel) { + void this.updatePlayerSkin(entity.id, entity.username, overrides?.texture ? entity.uuid : undefined, overrides?.texture || stevePngUrl) + } + this.setDebugMode(this.debugMode, group) + this.setRendering(this.currentlyRendering, group) + } else { + mesh = e.children.find(c => c.name === 'mesh') + } + + // Update equipment + this.updateEntityEquipment(e, entity) + + const meta = getGeneralEntitiesMetadata(entity) + + const isInvisible = ((entity.metadata?.[0] ?? 0) as unknown as number) & 0x20 || (this.worldRenderer.playerStateReactive.cameraSpectatingEntity === entity.id && this.worldRenderer.playerStateUtils.isSpectator()) + for (const child of mesh!.children ?? []) { + if (child.name !== 'nametag') { + child.visible = !isInvisible + } + } + // --- + // set baby size + if (meta.baby) { + e.scale.set(0.5, 0.5, 0.5) + } else { + e.scale.set(1, 1, 1) + } + // entity specific meta + const textDisplayMeta = getSpecificEntityMetadata('text_display', entity) + const displayTextRaw = textDisplayMeta?.text || meta.custom_name_visible && meta.custom_name + if (entity.name !== 'player' && displayTextRaw) { + const nameTagFixed = textDisplayMeta && (textDisplayMeta.billboard_render_constraints === 'fixed' || !textDisplayMeta.billboard_render_constraints) + const nameTagBackgroundColor = (textDisplayMeta && (parseInt(textDisplayMeta.style_flags, 10) & 0x04) === 0) ? toRgba(textDisplayMeta.background_color) : undefined + let nameTagTextOpacity: any + if (textDisplayMeta?.text_opacity) { + const rawOpacity = parseInt(textDisplayMeta?.text_opacity, 10) + nameTagTextOpacity = rawOpacity > 0 ? rawOpacity : 256 - rawOpacity + } + addNametag( + { ...entity, username: typeof displayTextRaw === 'string' ? mojangson.simplify(mojangson.parse(displayTextRaw)) : nbt.simplify(displayTextRaw), + nameTagBackgroundColor, nameTagTextOpacity, nameTagFixed, + nameTagScale: textDisplayMeta?.scale, nameTagTranslation: textDisplayMeta && (textDisplayMeta.translation || new THREE.Vector3(0, 0, 0)), + nameTagRotationLeft: toQuaternion(textDisplayMeta?.left_rotation), nameTagRotationRight: toQuaternion(textDisplayMeta?.right_rotation) }, + this.entitiesOptions, + mesh, + this.worldRenderer.version + ) + } + + const armorStandMeta = getSpecificEntityMetadata('armor_stand', entity) + if (armorStandMeta) { + const isSmall = (parseInt(armorStandMeta.client_flags, 10) & 0x01) !== 0 + const hasArms = (parseInt(armorStandMeta.client_flags, 10) & 0x04) !== 0 + const hasBasePlate = (parseInt(armorStandMeta.client_flags, 10) & 0x08) === 0 + const isMarker = (parseInt(armorStandMeta.client_flags, 10) & 0x10) !== 0 + mesh!.castShadow = !isMarker + mesh!.receiveShadow = !isMarker + if (isSmall) { + e.scale.set(0.5, 0.5, 0.5) + } else { + e.scale.set(1, 1, 1) + } + e.traverse(c => { + switch (c.name) { + case 'bone_baseplate': + this.setVisible(c, hasBasePlate) + c.rotation.y = -e.rotation.y + break + case 'bone_head': + if (armorStandMeta.head_pose) { + c.setRotationFromEuler(poseToEuler(armorStandMeta.head_pose)) + } + break + case 'bone_body': + if (armorStandMeta.body_pose) { + c.setRotationFromEuler(poseToEuler(armorStandMeta.body_pose)) + } + break + case 'bone_rightarm': + if (c.parent?.name !== 'bone_armor') { + this.setVisible(c, hasArms) + } + if (armorStandMeta.left_arm_pose) { + c.setRotationFromEuler(poseToEuler(armorStandMeta.left_arm_pose)) + } else { + c.setRotationFromEuler(poseToEuler({ 'yaw': -10, 'pitch': -10, 'roll': 0 })) + } + break + case 'bone_leftarm': + if (c.parent?.name !== 'bone_armor') { + this.setVisible(c, hasArms) + } + if (armorStandMeta.right_arm_pose) { + c.setRotationFromEuler(poseToEuler(armorStandMeta.right_arm_pose)) + } else { + c.setRotationFromEuler(poseToEuler({ 'yaw': 10, 'pitch': -10, 'roll': 0 })) + } + break + case 'bone_rightleg': + if (armorStandMeta.left_leg_pose) { + c.setRotationFromEuler(poseToEuler(armorStandMeta.left_leg_pose)) + } else { + c.setRotationFromEuler(poseToEuler({ 'yaw': -1, 'pitch': -1, 'roll': 0 })) + } + break + case 'bone_leftleg': + if (armorStandMeta.right_leg_pose) { + c.setRotationFromEuler(poseToEuler(armorStandMeta.right_leg_pose)) + } else { + c.setRotationFromEuler(poseToEuler({ 'yaw': 1, 'pitch': 1, 'roll': 0 })) + } + break + } + }) + } + + // todo handle map, map_chunks events + let itemFrameMeta = getSpecificEntityMetadata('item_frame', entity) + if (!itemFrameMeta) { + itemFrameMeta = getSpecificEntityMetadata('glow_item_frame', entity) + } + if (itemFrameMeta) { + // TODO: fix type + // todo! fix errors in mc-data (no entities data prior 1.18.2) + const item = (itemFrameMeta?.item ?? entity.metadata?.[8]) as any as { itemId, blockId, components, nbtData: { value: { map: { value: number } } } } + mesh!.scale.set(1, 1, 1) + mesh!.position.set(0, 0, -0.5) + + e.rotation.x = -entity.pitch + e.children.find(c => { + if (c.name.startsWith('map_')) { + disposeObject(c) + const existingMapNumber = parseInt(c.name.split('_')[1], 10) + this.itemFrameMaps[existingMapNumber] = this.itemFrameMaps[existingMapNumber]?.filter(mesh => mesh !== c) + if (c instanceof THREE.Mesh) { + c.material?.map?.dispose() + } + return true + } else if (c.name === 'item') { + disposeObject(c) + return true + } + return false + })?.removeFromParent() + + if (item && (item.itemId ?? item.blockId ?? 0) !== 0) { + // Get rotation from metadata, default to 0 if not present + // Rotation is stored in 45° increments (0-7) for items, 90° increments (0-3) for maps + const rotation = (itemFrameMeta.rotation as any as number) ?? 0 + const mapNumber = item.nbtData?.value?.map?.value ?? item.components?.find(x => x.type === 'map_id')?.data + if (mapNumber) { + // TODO: Use proper larger item frame model when a map exists + mesh!.scale.set(16 / 12, 16 / 12, 1) + // Handle map rotation (4 possibilities, 90° increments) + this.addMapModel(e, mapNumber, rotation) + } else { + // Handle regular item rotation (8 possibilities, 45° increments) + const itemMesh = this.getItemMesh(item, { + 'minecraft:display_context': 'fixed', + }) + if (itemMesh) { + itemMesh.mesh.position.set(0, 0, -0.05) + // itemMesh.mesh.position.set(0, 0, 0.43) + if (itemMesh.isBlock) { + itemMesh.mesh.scale.set(0.25, 0.25, 0.25) + } else { + itemMesh.mesh.scale.set(0.5, 0.5, 0.5) + } + // Rotate 180° around Y axis first + itemMesh.mesh.rotateY(Math.PI) + // Then apply the 45° increment rotation + itemMesh.mesh.rotateZ(-rotation * Math.PI / 4) + itemMesh.mesh.name = 'item' + e.add(itemMesh.mesh) + } + } + } + } + + if (entity.username !== undefined) { + e.username = entity.username + } + + this.updateNameTagVisibility(e) + + this.updateEntityPosition(entity, justAdded, overrides) + } + + updateEntityPosition (entity: import('prismarine-entity').Entity, justAdded: boolean, overrides: { rotation?: { head?: { y: number, x: number } } }) { + const e = this.entities[entity.id] + if (!e) return + const ANIMATION_DURATION = justAdded ? 0 : TWEEN_DURATION + if (entity.position) { + new TWEEN.Tween(e.position).to({ x: entity.position.x, y: entity.position.y, z: entity.position.z }, ANIMATION_DURATION).start() + } + if (entity.yaw) { + const da = (entity.yaw - e.rotation.y) % (Math.PI * 2) + const dy = 2 * da % (Math.PI * 2) - da + new TWEEN.Tween(e.rotation).to({ y: e.rotation.y + dy }, ANIMATION_DURATION).start() + } + + if (e?.playerObject && overrides?.rotation?.head) { + const { playerObject } = e + const headRotationDiff = overrides.rotation.head.y ? overrides.rotation.head.y - entity.yaw : 0 + playerObject.skin.head.rotation.y = -headRotationDiff + playerObject.skin.head.rotation.x = overrides.rotation.head.x ? - overrides.rotation.head.x : 0 + } + } + + onAddEntity (entity: import('prismarine-entity').Entity) { + } + + loadedSkinEntityIds = new Set() + maybeRenderPlayerSkin (entityId: string) { + let mesh = this.entities[entityId] + if (entityId === 'player_entity') { + mesh = this.playerEntity! + entityId = this.playerEntity?.originalEntity.id as any + } + if (!mesh) return + if (!mesh.playerObject) return + if (!mesh.visible) return + + const MAX_DISTANCE_SKIN_LOAD = 128 + const cameraPos = this.worldRenderer.cameraObject.position + const distance = mesh.position.distanceTo(cameraPos) + if (distance < MAX_DISTANCE_SKIN_LOAD && distance < (this.worldRenderer.viewDistance * 16)) { + if (this.loadedSkinEntityIds.has(String(entityId))) return + void this.updatePlayerSkin(entityId, mesh.playerObject.realUsername, mesh.playerObject.realPlayerUuid, true, true) + } + } + + playerPerAnimation = {} as Record + onRemoveEntity (entity: import('prismarine-entity').Entity) { + this.loadedSkinEntityIds.delete(entity.id.toString()) + } + + updateMap (mapNumber: string | number, data: string) { + this.cachedMapsImages[mapNumber] = data + let itemFrameMeshes = this.itemFrameMaps[mapNumber] + if (!itemFrameMeshes) return + itemFrameMeshes = itemFrameMeshes.filter(mesh => mesh.parent) + this.itemFrameMaps[mapNumber] = itemFrameMeshes + if (itemFrameMeshes) { + for (const mesh of itemFrameMeshes) { + mesh.material.map = this.loadMap(data) + mesh.material.needsUpdate = true + mesh.visible = true + } + } + } + + updateNameTagVisibility (entity: SceneEntity) { + const playerTeam = this.worldRenderer.playerStateReactive.team + const entityTeam = entity.originalEntity.team + const nameTagVisibility = entityTeam?.nameTagVisibility || 'always' + const showNameTag = nameTagVisibility === 'always' || + (nameTagVisibility === 'hideForOwnTeam' && entityTeam?.team !== playerTeam?.team) || + (nameTagVisibility === 'hideForOtherTeams' && (entityTeam?.team === playerTeam?.team || playerTeam === undefined)) + entity.traverse(c => { + if (c.name === 'nametag') { + c.visible = showNameTag + } + }) + } + + addMapModel (entityMesh: THREE.Object3D, mapNumber: number, rotation: number) { + const imageData = this.cachedMapsImages?.[mapNumber] + let texture: THREE.Texture | null = null + if (imageData) { + texture = this.loadMap(imageData) + } + const parameters = { + transparent: true, + alphaTest: 0.1, + } + if (texture) { + parameters['map'] = texture + } + const material = new THREE.MeshLambertMaterial(parameters) + + const mapMesh = new THREE.Mesh(new THREE.PlaneGeometry(1, 1), material) + + mapMesh.rotation.set(0, Math.PI, 0) + entityMesh.add(mapMesh) + let isInvisible = true + entityMesh.traverseVisible(c => { + if (c.name === 'geometry_frame') { + isInvisible = false + } + }) + if (isInvisible) { + mapMesh.position.set(0, 0, 0.499) + } else { + mapMesh.position.set(0, 0, 0.437) + } + // Apply 90° increment rotation for maps (0-3) + mapMesh.rotateZ(Math.PI * 2 - rotation * Math.PI / 2) + mapMesh.name = `map_${mapNumber}` + + if (!texture) { + mapMesh.visible = false + } + + if (!this.itemFrameMaps[mapNumber]) { + this.itemFrameMaps[mapNumber] = [] + } + this.itemFrameMaps[mapNumber].push(mapMesh) + } + + loadMap (data: any) { + const texture = new THREE.TextureLoader().load(data) + if (texture) { + texture.magFilter = THREE.NearestFilter + texture.minFilter = THREE.NearestFilter + texture.needsUpdate = true + } + return texture + } + + addItemModel (entityMesh: SceneEntity, hand: 'left' | 'right', item: Item, isPlayer = false) { + const bedrockParentName = `bone_${hand}item` + const itemName = `custom_item_${hand}` + + // remove existing item + entityMesh.traverse(c => { + if (c.name === itemName) { + c.removeFromParent() + if (c['additionalCleanup']) c['additionalCleanup']() + } + }) + if (!item) return + + const itemObject = this.getItemMesh(item, { + 'minecraft:display_context': 'thirdperson', + }) + if (itemObject?.mesh) { + entityMesh.traverse(c => { + if (c.name.toLowerCase() === bedrockParentName || c.name === `${hand}Arm`) { + const group = new THREE.Object3D() + group['additionalCleanup'] = () => { + // important: avoid texture memory leak and gpu slowdown + if (itemObject.cleanup) { + itemObject.cleanup() + } + } + const itemMesh = itemObject.mesh + group.rotation.z = -Math.PI / 16 + if (itemObject.isBlock) { + group.rotation.y = Math.PI / 4 + } else { + itemMesh.rotation.z = -Math.PI / 4 + group.rotation.y = Math.PI / 2 + group.scale.multiplyScalar(2) + } + + // if player, move item below and forward a bit + if (isPlayer) { + group.position.y = -8 + group.position.z = 5 + group.position.x = hand === 'left' ? 1 : -1 + group.rotation.x = Math.PI + } + + group.add(itemMesh) + + group.name = itemName + c.add(group) + } + }) + } + } + + handleDamageEvent (entityId, damageAmount) { + const entityMesh = this.entities[entityId]?.children.find(c => c.name === 'mesh') + if (entityMesh) { + entityMesh.traverse((child) => { + if (child instanceof THREE.Mesh && child.material.clone) { + const clonedMaterial = child.material.clone() + clonedMaterial.dispose() + child.material = child.material.clone() + const originalColor = child.material.color.clone() + child.material.color.set(0xff_00_00) + new TWEEN.Tween(child.material.color) + .to(originalColor, 500) + .start() + } + }) + } + } + + raycastSceneDebug () { + // return any object from scene. raycast from camera + const raycaster = new THREE.Raycaster() + raycaster.setFromCamera(new THREE.Vector2(0, 0), this.worldRenderer.camera) + const intersects = raycaster.intersectObjects(this.worldRenderer.scene.children) + return intersects[0]?.object + } + + private setupPlayerObject (entity: SceneEntity['originalEntity'], wrapper: THREE.Group, overrides: { texture?: string }): PlayerObjectType { + const playerObject = new PlayerObject() as PlayerObjectType + playerObject.realPlayerUuid = entity.uuid ?? '' + playerObject.realUsername = entity.username ?? '' + playerObject.position.set(0, 16, 0) + + // fix issues with starfield + playerObject.traverse((obj) => { + if (obj instanceof THREE.Mesh && obj.material instanceof THREE.MeshStandardMaterial) { + obj.material.transparent = true + } + }) + + wrapper.add(playerObject as any) + const scale = 1 / 16 + wrapper.scale.set(scale, scale, scale) + wrapper.rotation.set(0, Math.PI, 0) + + // Set up animation + playerObject.animation = new WalkingGeneralSwing() + //@ts-expect-error + playerObject.animation.isMoving = false + + return playerObject + } + + private updateEntityEquipment (entityMesh: SceneEntity, entity: SceneEntity['originalEntity']) { + if (!entityMesh || !entity.equipment) return + + const isPlayer = entity.type === 'player' + this.addItemModel(entityMesh, isPlayer ? 'right' : 'left', entity.equipment[0], isPlayer) + this.addItemModel(entityMesh, isPlayer ? 'left' : 'right', entity.equipment[1], isPlayer) + addArmorModel(this.worldRenderer, entityMesh, 'feet', entity.equipment[2]) + addArmorModel(this.worldRenderer, entityMesh, 'legs', entity.equipment[3], 2) + addArmorModel(this.worldRenderer, entityMesh, 'chest', entity.equipment[4]) + addArmorModel(this.worldRenderer, entityMesh, 'head', entity.equipment[5]) + + // Update player-specific equipment + if (isPlayer && entityMesh.playerObject) { + const { playerObject } = entityMesh + playerObject.backEquipment = entity.equipment.some((item) => item?.name === 'elytra') ? 'elytra' : 'cape' + if (playerObject.backEquipment === 'elytra') { + void this.loadAndApplyCape(entity.id, elytraTexture) + } + if (playerObject.cape.map === null) { + playerObject.cape.visible = false + } + } + } +} + +function getGeneralEntitiesMetadata (entity: { name; metadata }): Partial> { + const entityData = loadedData.entitiesByName[entity.name] + return new Proxy({}, { + get (target, p, receiver) { + if (typeof p !== 'string' || !entityData) return + const index = entityData.metadataKeys?.indexOf(p) + return entity.metadata?.[index ?? -1] + }, + }) +} + +function getSpecificEntityMetadata (name: T, entity): EntityMetadataVersions[T] | undefined { + if (entity.name !== name) return + return getGeneralEntitiesMetadata(entity) as any +} + +function addArmorModel (worldRenderer: WorldRendererThree, entityMesh: THREE.Object3D, slotType: string, item: Item, layer = 1, overlay = false) { + if (!item) { + removeArmorModel(entityMesh, slotType) + return + } + const itemParts = item.name.split('_') + let texturePath + const isPlayerHead = slotType === 'head' && item.name === 'player_head' + if (isPlayerHead) { + removeArmorModel(entityMesh, slotType) + if (item.nbt) { + const itemNbt = nbt.simplify(item.nbt) + try { + let textureData + if (itemNbt.SkullOwner) { + textureData = itemNbt.SkullOwner.Properties.textures[0]?.Value + } else { + textureData = itemNbt['minecraft:profile']?.Properties?.find(p => p.name === 'textures')?.value + } + if (textureData) { + const decodedData = JSON.parse(Buffer.from(textureData, 'base64').toString()) + texturePath = decodedData.textures?.SKIN?.url + const { skinTexturesProxy } = this.worldRenderer.worldRendererConfig + if (skinTexturesProxy) { + texturePath = texturePath?.replace('http://textures.minecraft.net/', skinTexturesProxy) + .replace('https://textures.minecraft.net/', skinTexturesProxy) + } + } + } catch (err) { + console.error('Error decoding player head texture:', err) + } + } else { + texturePath = stevePngUrl + } + } + const armorMaterial = itemParts[0] + if (!texturePath) { + // TODO: Support mirroring on certain parts of the model + const armorTextureName = `${armorMaterial}_layer_${layer}${overlay ? '_overlay' : ''}` + texturePath = worldRenderer.resourcesManager.currentResources.customTextures.armor?.textures[armorTextureName]?.src ?? armorTextures[armorTextureName] + } + if (!texturePath || !armorModel[slotType]) { + removeArmorModel(entityMesh, slotType) + return + } + + const meshName = `geometry_armor_${slotType}${overlay ? '_overlay' : ''}` + let mesh = entityMesh.children.findLast(c => c.name === meshName) as THREE.Mesh + let material + if (mesh) { + material = mesh.material + void loadTexture(texturePath, texture => { + texture.magFilter = THREE.NearestFilter + texture.minFilter = THREE.NearestFilter + texture.flipY = false + texture.wrapS = THREE.MirroredRepeatWrapping + texture.wrapT = THREE.MirroredRepeatWrapping + material.map = texture + }) + } else { + mesh = getMesh(worldRenderer, texturePath, armorModel[slotType]) + // // enable debug mode to see the mesh + // mesh.traverse(c => { + // if (c instanceof THREE.Mesh) { + // c.material.wireframe = true + // } + // }) + if (slotType === 'head') { + // avoid z-fighting with the head + mesh.children[0].position.y += 0.01 + } + mesh.name = meshName + material = mesh.material + if (!isPlayerHead) { + material.side = THREE.DoubleSide + } + } + if (armorMaterial === 'leather' && !overlay) { + const color = (item.nbt?.value as any)?.display?.value?.color?.value + if (color) { + const r = color >> 16 & 0xff + const g = color >> 8 & 0xff + const b = color & 0xff + material.color.setRGB(r / 255, g / 255, b / 255) + } else { + material.color.setHex(0xB5_6D_51) // default brown color + } + addArmorModel(worldRenderer, entityMesh, slotType, item, layer, true) + } else { + material.color.setHex(0xFF_FF_FF) + } + const group = new THREE.Object3D() + group.name = `armor_${slotType}${overlay ? '_overlay' : ''}` + group.add(mesh) + + entityMesh.add(mesh) +} + +function removeArmorModel (entityMesh: THREE.Object3D, slotType: string) { + for (const c of entityMesh.children) { + if (c.name === `geometry_armor_${slotType}` || c.name === `geometry_armor_${slotType}_overlay`) { + c.removeFromParent() + } + } +} diff --git a/renderer/viewer/three/entity/EntityMesh.ts b/renderer/viewer/three/entity/EntityMesh.ts new file mode 100644 index 00000000..229da6d5 --- /dev/null +++ b/renderer/viewer/three/entity/EntityMesh.ts @@ -0,0 +1,550 @@ +import * as THREE from 'three' +import { OBJLoader } from 'three-stdlib' +import huskPng from 'mc-assets/dist/other-textures/latest/entity/zombie/husk.png' +import { Vec3 } from 'vec3' +import ocelotPng from '../../../../node_modules/mc-assets/dist/other-textures/latest/entity/cat/ocelot.png' +import arrowTexture from '../../../../node_modules/mc-assets/dist/other-textures/1.21.2/entity/projectiles/arrow.png' +import spectralArrowTexture from '../../../../node_modules/mc-assets/dist/other-textures/1.21.2/entity/projectiles/spectral_arrow.png' +import tippedArrowTexture from '../../../../node_modules/mc-assets/dist/other-textures/1.21.2/entity/projectiles/tipped_arrow.png' +import { loadTexture } from '../threeJsUtils' +import { WorldRendererThree } from '../worldrendererThree' +import entities from './entities.json' +import { externalModels } from './objModels' +import externalTexturesJson from './externalTextures.json' + +interface ElemFace { + dir: [number, number, number] + u0: [number, number, number] + v0: [number, number, number] + u1: [number, number, number] + v1: [number, number, number] + corners: Array<[number, number, number, number, number]> +} + +interface GeoData { + positions: number[] + normals: number[] + uvs: number[] + indices: number[] + skinIndices: number[] + skinWeights: number[] +} + +interface JsonBone { + name: string + pivot?: [number, number, number] + bind_pose_rotation?: [number, number, number] + rotation?: [number, number, number] + parent?: string + cubes?: JsonCube[] + mirror?: boolean +} + +interface JsonCube { + origin: [number, number, number] + size: [number, number, number] + uv: [number, number] + inflate?: number + rotation?: [number, number, number] +} + +interface JsonModel { + texturewidth?: number + textureheight?: number + bones: JsonBone[] +} + +interface EntityOverrides { + textures?: Record + rotation?: Record +} + +const elemFaces: Record = { + up: { + dir: [0, 1, 0], + u0: [0, 0, 1], + v0: [0, 0, 0], + u1: [1, 0, 1], + v1: [0, 0, 1], + corners: [ + [0, 1, 1, 0, 0], + [1, 1, 1, 1, 0], + [0, 1, 0, 0, 1], + [1, 1, 0, 1, 1] + ] + }, + down: { + dir: [0, -1, 0], + u0: [1, 0, 1], + v0: [0, 0, 0], + u1: [2, 0, 1], + v1: [0, 0, 1], + corners: [ + [1, 0, 1, 0, 0], + [0, 0, 1, 1, 0], + [1, 0, 0, 0, 1], + [0, 0, 0, 1, 1] + ] + }, + east: { + dir: [1, 0, 0], + u0: [0, 0, 0], + v0: [0, 0, 1], + u1: [0, 0, 1], + v1: [0, 1, 1], + corners: [ + [1, 1, 1, 0, 0], + [1, 0, 1, 0, 1], + [1, 1, 0, 1, 0], + [1, 0, 0, 1, 1] + ] + }, + west: { + dir: [-1, 0, 0], + u0: [1, 0, 1], + v0: [0, 0, 1], + u1: [1, 0, 2], + v1: [0, 1, 1], + corners: [ + [0, 1, 0, 0, 0], + [0, 0, 0, 0, 1], + [0, 1, 1, 1, 0], + [0, 0, 1, 1, 1] + ] + }, + north: { + dir: [0, 0, -1], + u0: [0, 0, 1], + v0: [0, 0, 1], + u1: [1, 0, 1], + v1: [0, 1, 1], + corners: [ + [1, 0, 0, 0, 1], + [0, 0, 0, 1, 1], + [1, 1, 0, 0, 0], + [0, 1, 0, 1, 0] + ] + }, + south: { + dir: [0, 0, 1], + u0: [1, 0, 2], + v0: [0, 0, 1], + u1: [2, 0, 2], + v1: [0, 1, 1], + corners: [ + [0, 0, 1, 0, 1], + [1, 0, 1, 1, 1], + [0, 1, 1, 0, 0], + [1, 1, 1, 1, 0] + ] + } +} + +function dot (a: number[], b: number[]): number { + return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] +} + +function addCube ( + attr: GeoData, + boneId: number, + bone: THREE.Bone, + cube: JsonCube, + sameTextureForAllFaces = false, + texWidth = 64, + texHeight = 64, + mirror = false, + errors: string[] = [] +): void { + const cubeRotation = new THREE.Euler(0, 0, 0) + if (cube.rotation) { + cubeRotation.x = -cube.rotation[0] * Math.PI / 180 + cubeRotation.y = -cube.rotation[1] * Math.PI / 180 + cubeRotation.z = -cube.rotation[2] * Math.PI / 180 + } + for (const { dir, corners, u0, v0, u1, v1 } of Object.values(elemFaces)) { + const ndx = Math.floor(attr.positions.length / 3) + + const eastOrWest = dir[0] !== 0 + const faceUvs: number[] = [] + for (const pos of corners) { + let u: number + let v: number + if (sameTextureForAllFaces) { + u = (cube.uv[0] + pos[3] * cube.size[0]) / texWidth + v = (cube.uv[1] + pos[4] * cube.size[1]) / texHeight + } else { + u = (cube.uv[0] + dot(pos[3] ? u1 : u0, cube.size)) / texWidth + v = (cube.uv[1] + dot(pos[4] ? v1 : v0, cube.size)) / texHeight + } + // if (isNaN(u) || isNaN(v)) { + // errors.push(`NaN u: ${u}, v: ${v}`) + // continue + // } + // if (u < 0 || u > 1 || v < 0 || v > 1) { + // errors.push(`u: ${u}, v: ${v} out of range`) + // continue + // } + + const posX = eastOrWest && mirror ? pos[0] ^ 1 : pos[0] + const posY = pos[1] + const posZ = eastOrWest && mirror ? pos[2] ^ 1 : pos[2] + const inflate = cube.inflate ?? 0 + let vecPos = new THREE.Vector3( + cube.origin[0] + posX * cube.size[0] + (posX ? inflate : -inflate), + cube.origin[1] + posY * cube.size[1] + (posY ? inflate : -inflate), + cube.origin[2] + posZ * cube.size[2] + (posZ ? inflate : -inflate) + ) + + vecPos = vecPos.applyEuler(cubeRotation) + vecPos = vecPos.sub(bone.position) + vecPos = vecPos.applyEuler(bone.rotation) + vecPos = vecPos.add(bone.position) + + attr.positions.push(vecPos.x, vecPos.y, vecPos.z) + attr.normals.push(dir[0], dir[1], dir[2]) + faceUvs.push(u, v) + attr.skinIndices.push(boneId, 0, 0, 0) + attr.skinWeights.push(1, 0, 0, 0) + } + + if (mirror) { + for (let i = 0; i + 1 < corners.length; i += 2) { + const faceIndex = i * 2 + const tempFaceUvs = faceUvs.slice(faceIndex, faceIndex + 4) + faceUvs[faceIndex] = tempFaceUvs[2] + faceUvs[faceIndex + 1] = tempFaceUvs[eastOrWest ? 1 : 3] + faceUvs[faceIndex + 2] = tempFaceUvs[0] + faceUvs[faceIndex + 3] = tempFaceUvs[eastOrWest ? 3 : 1] + } + } + attr.uvs.push(...faceUvs) + + attr.indices.push(ndx, ndx + 1, ndx + 2, ndx + 2, ndx + 1, ndx + 3) + } +} + +export function getMesh ( + worldRenderer: WorldRendererThree | undefined, + texture: string, + jsonModel: JsonModel, + overrides: EntityOverrides = {}, + debugFlags: EntityDebugFlags = {} +): THREE.SkinnedMesh { + let textureWidth = jsonModel.texturewidth ?? 64 + let textureHeight = jsonModel.textureheight ?? 64 + let textureOffset: number[] | undefined + const useBlockTexture = texture.startsWith('block:') + const blocksTexture = worldRenderer?.material.map + if (useBlockTexture) { + if (!worldRenderer) throw new Error('worldRenderer is required for block textures') + const blockName = texture.slice(6) + const textureInfo = worldRenderer.resourcesManager.currentResources.blocksAtlasJson.textures[blockName] + if (textureInfo) { + textureWidth = blocksTexture?.image.width ?? textureWidth + textureHeight = blocksTexture?.image.height ?? textureHeight + // todo support su/sv + textureOffset = [textureInfo.u, textureInfo.v] + } else { + console.error(`Unknown block ${blockName}`) + } + } + + const bones: Record = {} + + const geoData: GeoData = { + positions: [], + normals: [], + uvs: [], + indices: [], + skinIndices: [], + skinWeights: [] + } + let i = 0 + for (const jsonBone of jsonModel.bones) { + const bone = new THREE.Bone() + if (jsonBone.pivot) { + bone.position.x = jsonBone.pivot[0] + bone.position.y = jsonBone.pivot[1] + bone.position.z = jsonBone.pivot[2] + } + if (jsonBone.bind_pose_rotation) { + bone.rotation.x = -jsonBone.bind_pose_rotation[0] * Math.PI / 180 + bone.rotation.y = -jsonBone.bind_pose_rotation[1] * Math.PI / 180 + bone.rotation.z = -jsonBone.bind_pose_rotation[2] * Math.PI / 180 + } else if (jsonBone.rotation) { + bone.rotation.x = -jsonBone.rotation[0] * Math.PI / 180 + bone.rotation.y = -jsonBone.rotation[1] * Math.PI / 180 + bone.rotation.z = -jsonBone.rotation[2] * Math.PI / 180 + } + if (overrides.rotation?.[jsonBone.name]) { + bone.rotation.x -= (overrides.rotation[jsonBone.name].x ?? 0) * Math.PI / 180 + bone.rotation.y -= (overrides.rotation[jsonBone.name].y ?? 0) * Math.PI / 180 + bone.rotation.z -= (overrides.rotation[jsonBone.name].z ?? 0) * Math.PI / 180 + } + bone.name = `bone_${jsonBone.name}` + bones[jsonBone.name] = bone + + if (jsonBone.cubes) { + for (const cube of jsonBone.cubes) { + const errors: string[] = [] + addCube(geoData, i, bone, cube, useBlockTexture, textureWidth, textureHeight, jsonBone.mirror, errors) + if (errors.length) { + debugFlags.errors ??= [] + debugFlags.errors.push(...errors.map(error => `Bone ${jsonBone.name}: ${error}`)) + } + } + } + i++ + } + + const rootBones: THREE.Object3D[] = [] + for (const jsonBone of jsonModel.bones) { + if (jsonBone.parent && bones[jsonBone.parent]) { + bones[jsonBone.parent].add(bones[jsonBone.name]) + } else { + rootBones.push(bones[jsonBone.name]) + } + } + + const skeleton = new THREE.Skeleton(Object.values(bones)) + + const geometry = new THREE.BufferGeometry() + geometry.setAttribute('position', new THREE.Float32BufferAttribute(geoData.positions, 3)) + geometry.setAttribute('normal', new THREE.Float32BufferAttribute(geoData.normals, 3)) + geometry.setAttribute('uv', new THREE.Float32BufferAttribute(geoData.uvs, 2)) + geometry.setAttribute('skinIndex', new THREE.Uint16BufferAttribute(geoData.skinIndices, 4)) + geometry.setAttribute('skinWeight', new THREE.Float32BufferAttribute(geoData.skinWeights, 4)) + geometry.setIndex(geoData.indices) + + const material = new THREE.MeshLambertMaterial({ transparent: true, alphaTest: 0.1 }) + const mesh = new THREE.SkinnedMesh(geometry, material) + mesh.add(...rootBones) + mesh.bind(skeleton) + mesh.scale.set(1 / 16, 1 / 16, 1 / 16) + + if (textureOffset) { + // todo(memory) dont clone + const loadedTexture = blocksTexture!.clone() + loadedTexture.offset.set(textureOffset[0], textureOffset[1]) + loadedTexture.needsUpdate = true + material.map = loadedTexture + } else { + void loadTexture(texture, loadedTexture => { + if (material.map) { + // texture is already loaded + return + } + loadedTexture.magFilter = THREE.NearestFilter + loadedTexture.minFilter = THREE.NearestFilter + loadedTexture.flipY = false + loadedTexture.wrapS = THREE.RepeatWrapping + loadedTexture.wrapT = THREE.RepeatWrapping + material.map = loadedTexture + }, () => { + // This callback runs after the texture is fully loaded + const actualWidth = material.map!.image.width + if (actualWidth && textureWidth !== actualWidth) { + material.map!.repeat.x = textureWidth / actualWidth + } + const actualHeight = material.map!.image.height + if (actualHeight && textureHeight !== actualHeight) { + material.map!.repeat.y = textureHeight / actualHeight + } + material.needsUpdate = true + }) + } + + return mesh +} + +export const rendererSpecialHandled = ['item_frame', 'item', 'player'] + +type EntityMapping = { + pattern: string | RegExp + target: string +} + +const temporaryMappings: EntityMapping[] = [ + // Exact matches + { pattern: 'furnace_minecart', target: 'minecart' }, + { pattern: 'spawner_minecart', target: 'minecart' }, + { pattern: 'chest_minecart', target: 'minecart' }, + { pattern: 'hopper_minecart', target: 'minecart' }, + { pattern: 'command_block_minecart', target: 'minecart' }, + { pattern: 'tnt_minecart', target: 'minecart' }, + { pattern: 'glow_item_frame', target: 'item_frame' }, + { pattern: 'glow_squid', target: 'squid' }, + { pattern: 'trader_llama', target: 'llama' }, + { pattern: 'chest_boat', target: 'boat' }, + { pattern: 'spectral_arrow', target: 'arrow' }, + { pattern: 'husk', target: 'zombie' }, + { pattern: 'zombie_horse', target: 'horse' }, + { pattern: 'donkey', target: 'horse' }, + { pattern: 'skeleton_horse', target: 'horse' }, + { pattern: 'mule', target: 'horse' }, + { pattern: 'ocelot', target: 'cat' }, + // Regex patterns + { pattern: /_minecraft$/, target: 'minecraft' }, + { pattern: /_boat$/, target: 'boat' }, + { pattern: /_raft$/, target: 'boat' }, + { pattern: /_horse$/, target: 'horse' }, + { pattern: /_zombie$/, target: 'zombie' }, + { pattern: /_arrow$/, target: 'zombie' }, +] + +function getEntityMapping (type: string): string | undefined { + for (const mapping of temporaryMappings) { + if (typeof mapping.pattern === 'string') { + if (mapping.pattern === type) return mapping.target + } else if (mapping.pattern.test(type)) { return mapping.target } + } + return undefined +} + +const getEntity = (name: string) => { + return entities[name] +} + +const scaleEntity: Record = { + zombie: 1.85, + husk: 1.85, + arrow: 0.0025 +} + +const offsetEntity: Record = { + zombie: new Vec3(0, 1, 0), + husk: new Vec3(0, 1, 0), + boat: new Vec3(0, -1, 0), + arrow: new Vec3(0, -0.9, 0) +} + +interface EntityGeometry { + geometry: Array<{ + name: string; + [key: string]: any; + }>; +} + +export type EntityDebugFlags = { + type?: 'obj' | 'bedrock' + tempMap?: string + textureMap?: boolean + errors?: string[] + isHardcodedTexture?: boolean +} + +export class EntityMesh { + mesh: THREE.Object3D + + constructor ( + version: string, + type: string, + worldRenderer?: WorldRendererThree, + overrides: EntityOverrides = {}, + debugFlags: EntityDebugFlags = {} + ) { + const originalType = type + const mappedValue = getEntityMapping(type) + if (mappedValue) { + type = mappedValue + debugFlags.tempMap = mappedValue + } + + if (externalModels[type]) { + const objLoader = new OBJLoader() + const texturePathMap = { + 'zombie_horse': `textures/${version}/entity/horse/horse_zombie.png`, + 'husk': huskPng, + 'skeleton_horse': `textures/${version}/entity/horse/horse_skeleton.png`, + 'donkey': `textures/${version}/entity/horse/donkey.png`, + 'mule': `textures/${version}/entity/horse/mule.png`, + 'ocelot': ocelotPng, + 'arrow': arrowTexture, + 'spectral_arrow': spectralArrowTexture, + 'tipped_arrow': tippedArrowTexture + } + const tempTextureMap = texturePathMap[originalType] || texturePathMap[type] + if (tempTextureMap) { + debugFlags.textureMap = true + } + const texturePath = tempTextureMap || externalTexturesJson[type] + if (externalTexturesJson[type]) { + debugFlags.isHardcodedTexture = true + } + if (!texturePath) throw new Error(`No texture for ${type}`) + const texture = new THREE.TextureLoader().load(texturePath) + texture.minFilter = THREE.NearestFilter + texture.magFilter = THREE.NearestFilter + const material = new THREE.MeshBasicMaterial({ + map: texture, + transparent: true, + alphaTest: 0.1 + }) + const obj = objLoader.parse(externalModels[type]) + const scale = scaleEntity[originalType] || scaleEntity[type] + if (scale) obj.scale.set(scale, scale, scale) + const offset = offsetEntity[originalType] + if (offset) obj.position.set(offset.x, offset.y, offset.z) + obj.traverse((child) => { + if (child instanceof THREE.Mesh) { + child.material = material + // todo + if (child.name === 'Head layer') child.visible = false + if (child.name === 'Head' && overrides.rotation?.head) { // todo + child.rotation.x -= (overrides.rotation.head.x ?? 0) * Math.PI / 180 + child.rotation.y -= (overrides.rotation.head.y ?? 0) * Math.PI / 180 + child.rotation.z -= (overrides.rotation.head.z ?? 0) * Math.PI / 180 + } + } + }) + this.mesh = obj + debugFlags.type = 'obj' + return + } + + if (originalType === 'arrow') { + // overrides.textures = { + // 'default': testArrow, + // ...overrides.textures, + // } + } + + const e = getEntity(type) + if (!e) { + // if (knownNotHandled.includes(type)) return + // throw new Error(`Unknown entity ${type}`) + return + } + + this.mesh = new THREE.Object3D() + for (const [name, jsonModel] of Object.entries(e.geometry)) { + const texture = overrides.textures?.[name] ?? e.textures[name] + if (!texture) continue + // console.log(JSON.stringify(jsonModel, null, 2)) + const mesh = getMesh(worldRenderer, + texture.endsWith('.png') || texture.startsWith('data:image/') || texture.startsWith('block:') + ? texture : texture + '.png', + jsonModel, + overrides, + debugFlags) + mesh.name = `geometry_${name}` + this.mesh.add(mesh) + } + debugFlags.type = 'bedrock' + } + + static getStaticData (name: string): { boneNames: string[] } { + name = getEntityMapping(name) || name + if (externalModels[name]) { + return { + boneNames: [] // todo + } + } + const e = getEntity(name) as EntityGeometry + if (!e) throw new Error(`Unknown entity ${name}`) + return { + boneNames: Object.values(e.geometry).flatMap(x => x.name) + } + } +} +globalThis.EntityMesh = EntityMesh diff --git a/renderer/viewer/three/entity/animations.js b/renderer/viewer/three/entity/animations.js new file mode 100644 index 00000000..3295556f --- /dev/null +++ b/renderer/viewer/three/entity/animations.js @@ -0,0 +1,171 @@ +//@ts-check +import { PlayerAnimation } from 'skinview3d' + +export class WalkingGeneralSwing extends PlayerAnimation { + + switchAnimationCallback + + isRunning = false + isMoving = true + isCrouched = false + + _startArmSwing + + swingArm() { + this._startArmSwing = this.progress + } + + animate(player) { + // Multiply by animation's natural speed + let t = 0 + const updateT = () => { + if (!this.isMoving) { + t = 0 + return + } + if (this.isRunning) { + t = this.progress * 10 + Math.PI * 0.5 + } else { + t = this.progress * 8 + } + } + updateT() + let reset = false + + croughAnimation(player, this.isCrouched) + + if ((this.isRunning ? Math.cos(t) : Math.sin(t)) < 0.01) { + if (this.switchAnimationCallback) { + reset = true + this.progress = 0 + updateT() + } + } + + if (this.isRunning) { + // Leg swing with larger amplitude + player.skin.leftLeg.rotation.x = Math.cos(t + Math.PI) * 1.3 + player.skin.rightLeg.rotation.x = Math.cos(t) * 1.3 + } else { + // Leg swing + player.skin.leftLeg.rotation.x = Math.sin(t) * 0.5 + player.skin.rightLeg.rotation.x = Math.sin(t + Math.PI) * 0.5 + } + + if (this._startArmSwing) { + const tHand = (this.progress - this._startArmSwing) * 18 + Math.PI * 0.5 + // player.skin.rightArm.rotation.x = Math.cos(tHand) * 1.5 + // const basicArmRotationZ = Math.PI * 0.1 + // player.skin.rightArm.rotation.z = Math.cos(t + Math.PI) * 0.3 - basicArmRotationZ + HitAnimation.animate((this.progress - this._startArmSwing), player, this.isMoving) + + if (tHand > Math.PI + Math.PI) { + this._startArmSwing = null + player.skin.rightArm.rotation.z = 0 + } + } + + if (this.isRunning) { + player.skin.leftArm.rotation.x = Math.cos(t) * 1.5 + if (!this._startArmSwing) { + player.skin.rightArm.rotation.x = Math.cos(t + Math.PI) * 1.5 + } + const basicArmRotationZ = Math.PI * 0.1 + player.skin.leftArm.rotation.z = Math.cos(t) * 0.1 + basicArmRotationZ + if (!this._startArmSwing) { + player.skin.rightArm.rotation.z = Math.cos(t + Math.PI) * 0.1 - basicArmRotationZ + } + } else { + // Arm swing + player.skin.leftArm.rotation.x = Math.sin(t + Math.PI) * 0.5 + if (!this._startArmSwing) { + player.skin.rightArm.rotation.x = Math.sin(t) * 0.5 + } + const basicArmRotationZ = Math.PI * 0.02 + player.skin.leftArm.rotation.z = Math.cos(t) * 0.03 + basicArmRotationZ + if (!this._startArmSwing) { + player.skin.rightArm.rotation.z = Math.cos(t + Math.PI) * 0.03 - basicArmRotationZ + } + } + + if (this.isRunning) { + player.rotation.z = Math.cos(t + Math.PI) * 0.01 + } + if (this.isRunning) { + const basicCapeRotationX = Math.PI * 0.3 + player.cape.rotation.x = Math.sin(t * 2) * 0.1 + basicCapeRotationX + } else { + // Always add an angle for cape around the x axis + const basicCapeRotationX = Math.PI * 0.06 + player.cape.rotation.x = Math.sin(t / 1.5) * 0.06 + basicCapeRotationX + } + + if (reset) { + this.switchAnimationCallback() + this.switchAnimationCallback = null + } + } +} + +const HitAnimation = { + animate(progress, player, isMovingOrRunning) { + const t = progress * 18 + player.skin.rightArm.rotation.x = -0.453_786_055_2 * 2 + 2 * Math.sin(t + Math.PI) * 0.3 + + if (!isMovingOrRunning) { + const basicArmRotationZ = 0.01 * Math.PI + 0.06 + player.skin.rightArm.rotation.z = -Math.cos(t) * 0.403 + basicArmRotationZ + player.skin.body.rotation.y = -Math.cos(t) * 0.06 + player.skin.leftArm.rotation.x = Math.sin(t + Math.PI) * 0.077 + player.skin.leftArm.rotation.z = -Math.cos(t) * 0.015 + 0.13 - 0.05 + player.skin.leftArm.position.z = Math.cos(t) * 0.3 + player.skin.leftArm.position.x = 5 - Math.cos(t) * 0.05 + } + }, +} + +const croughAnimation = (player, isCrouched) => { + const erp = 0 + + // let pr = this.progress * 8; + let pr = isCrouched ? 1 : 0 + const showProgress = false + if (showProgress) { + pr = Math.floor(pr) + } + player.skin.body.rotation.x = 0.453_786_055_2 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.skin.body.position.z = + 1.325_618_1 * Math.abs(Math.sin((pr * Math.PI) / 2)) - 3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.skin.body.position.y = -6 - 2.103_677_462 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.cape.position.y = 8 - 1.851_236_166_577_372 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.cape.rotation.x = (10.8 * Math.PI) / 180 + 0.294_220_265_771 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.cape.position.z = + -2 + 3.786_619_432 * Math.abs(Math.sin((pr * Math.PI) / 2)) - 3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.elytra.position.x = player.cape.position.x + player.elytra.position.y = player.cape.position.y + player.elytra.position.z = player.cape.position.z + player.elytra.rotation.x = player.cape.rotation.x - (10.8 * Math.PI) / 180 + // const pr1 = this.progress / this.speed; + const pr1 = 1 + if (Math.abs(Math.sin((pr * Math.PI) / 2)) === 1) { + player.elytra.leftWing.rotation.z = + 0.261_799_44 + 0.458_200_6 * Math.abs(Math.sin((Math.min(pr1 - erp, 1) * Math.PI) / 2)) + player.elytra.updateRightWing() + } else if (isCrouched !== undefined) { + player.elytra.leftWing.rotation.z = + 0.72 - 0.458_200_6 * Math.abs(Math.sin((Math.min(pr1 - erp, 1) * Math.PI) / 2)) + player.elytra.updateRightWing() + } + player.skin.head.position.y = -3.618_325_234_674 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.skin.leftArm.position.z = + 3.618_325_234_674 * Math.abs(Math.sin((pr * Math.PI) / 2)) - 3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.skin.rightArm.position.z = player.skin.leftArm.position.z + player.skin.leftArm.rotation.x = 0.410_367_746_202 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.skin.rightArm.rotation.x = player.skin.leftArm.rotation.x + player.skin.leftArm.rotation.z = 0.1 + player.skin.rightArm.rotation.z = -player.skin.leftArm.rotation.z + player.skin.leftArm.position.y = -2 - 2.539_433_18 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.skin.rightArm.position.y = player.skin.leftArm.position.y + player.skin.rightLeg.position.z = -3.450_031_037_7 * Math.abs(Math.sin((pr * Math.PI) / 2)) + player.skin.leftLeg.position.z = player.skin.rightLeg.position.z +} diff --git a/renderer/viewer/three/entity/armorModels.json b/renderer/viewer/three/entity/armorModels.json new file mode 100644 index 00000000..d7a77d4c --- /dev/null +++ b/renderer/viewer/three/entity/armorModels.json @@ -0,0 +1,204 @@ +{ + "skull": { + "bones": [ + { + "name": "head", + "pivot": [0, 12, 0], + "cubes": [ + { + "origin": [-4, 0, -4], + "size": [8, 8, 8], + "uv": [0, 0], + "inflate": 1 + } + ] + }, + { + "name": "overlay", + "parent": "head", + "pivot": [0, 12, 0], + "cubes": [ + { + "origin": [-4, 0, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 1.2 + } + ] + } + ], + "visible_bounds_width": 1.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32 + }, + "head": { + "bones": [ + {"name": "armor", "pivot": [0, 12, 0]}, + { + "name": "head", + "parent": "armor", + "pivot": [0, 12, 0], + "cubes": [ + { + "origin": [-4, 23, -4], + "size": [8, 8, 8], + "uv": [0, 0], + "inflate": 1 + } + ] + }, + { + "name": "overlay", + "parent": "head", + "pivot": [0, 12, 0], + "cubes": [ + { + "origin": [-4, 23, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 1.2 + } + ] + } + ], + "visible_bounds_width": 1.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32 + }, + "chest": { + "bones": [ + {"name": "armor", "pivot": [0, 12, 0]}, + { + "name": "body", + "parent": "armor", + "pivot": [0, 13, 0], + "cubes": [ + { + "origin": [-4, 12, -2], + "size": [8, 12, 4], + "uv": [16, 16], + "inflate": 1 + } + ] + }, + { + "name": "leftarm", + "parent": "armor", + "pivot": [5, 10, 0], + "cubes": [ + { + "origin": [4, 12, -2], + "size": [4, 12, 4], + "uv": [40, 16], + "inflate": 0.85 + } + ] + }, + { + "name": "rightarm", + "parent": "armor", + "pivot": [-5, 10, 0], + "cubes": [ + { + "origin": [-8, 12, -2], + "size": [4, 12, 4], + "uv": [40, 16], + "inflate": 0.85 + } + ], + "mirror": true + } + ], + "visible_bounds_width": 1.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32 + }, + "legs": { + "bones": [ + {"name": "armor", "pivot": [0, 12, 0]}, + { + "name": "body", + "parent": "armor", + "pivot": [0, 13, 0], + "cubes": [ + { + "origin": [-4, 12, -2], + "size": [8, 12, 4], + "uv": [16, 16], + "inflate": 0.5 + } + ] + }, + { + "name": "leftleg", + "parent": "armor", + "pivot": [1.9, 1, 0], + "cubes": [ + { + "origin": [-0.1, 0, -2], + "size": [4, 12, 4], + "uv": [0, 16], + "inflate": 0.5 + } + ] + }, + { + "name": "rightleg", + "parent": "armor", + "pivot": [-1.9, 1, 0], + "cubes": [ + { + "origin": [-3.9, 0, -2.01], + "size": [4, 12, 4], + "uv": [0, 16], + "inflate": 0.5 + } + ], + "mirror": true + } + ], + "visible_bounds_width": 1.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32 + }, + "feet": { + "bones": [ + {"name": "armor", "pivot": [0, 12, 0]}, + { + "name": "leftleg", + "parent": "armor", + "pivot": [1.9, 1, 0], + "cubes": [ + { + "origin": [-0.1, 0, -2], + "size": [4, 12, 4], + "uv": [0, 16], + "inflate": 0.8 + } + ] + }, + { + "name": "rightleg", + "parent": "armor", + "pivot": [-1.9, 1, 0], + "cubes": [ + { + "origin": [-3.9, 0.01, -2.01], + "size": [4, 12, 4], + "uv": [0, 16], + "inflate": 0.8 + } + ], + "mirror": true + } + ], + "visible_bounds_width": 1.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32 + } +} \ No newline at end of file diff --git a/renderer/viewer/three/entity/armorModels.ts b/renderer/viewer/three/entity/armorModels.ts new file mode 100644 index 00000000..3681344c --- /dev/null +++ b/renderer/viewer/three/entity/armorModels.ts @@ -0,0 +1,36 @@ +import { default as chainmailLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/chainmail_layer_1.png' +import { default as chainmailLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/chainmail_layer_2.png' +import { default as diamondLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/diamond_layer_1.png' +import { default as diamondLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/diamond_layer_2.png' +import { default as goldenLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/gold_layer_1.png' +import { default as goldenLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/gold_layer_2.png' +import { default as ironLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/iron_layer_1.png' +import { default as ironLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/iron_layer_2.png' +import { default as leatherLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_1.png' +import { default as leatherLayer1Overlay } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_1_overlay.png' +import { default as leatherLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_2.png' +import { default as leatherLayer2Overlay } from 'mc-assets/dist/other-textures/latest/models/armor/leather_layer_2_overlay.png' +import { default as netheriteLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/netherite_layer_1.png' +import { default as netheriteLayer2 } from 'mc-assets/dist/other-textures/latest/models/armor/netherite_layer_2.png' +import { default as turtleLayer1 } from 'mc-assets/dist/other-textures/latest/models/armor/turtle_layer_1.png' + +export { default as elytraTexture } from 'mc-assets/dist/other-textures/latest/entity/elytra.png' +export { default as armorModel } from './armorModels.json' + +export const armorTextures = { + 'leather_layer_1': leatherLayer1, + 'leather_layer_1_overlay': leatherLayer1Overlay, + 'leather_layer_2': leatherLayer2, + 'leather_layer_2_overlay': leatherLayer2Overlay, + 'chainmail_layer_1': chainmailLayer1, + 'chainmail_layer_2': chainmailLayer2, + 'iron_layer_1': ironLayer1, + 'iron_layer_2': ironLayer2, + 'diamond_layer_1': diamondLayer1, + 'diamond_layer_2': diamondLayer2, + 'golden_layer_1': goldenLayer1, + 'golden_layer_2': goldenLayer2, + 'netherite_layer_1': netheriteLayer1, + 'netherite_layer_2': netheriteLayer2, + 'turtle_layer_1': turtleLayer1 +} diff --git a/renderer/viewer/three/entity/entities.json b/renderer/viewer/three/entity/entities.json new file mode 100644 index 00000000..feca5dc7 --- /dev/null +++ b/renderer/viewer/three/entity/entities.json @@ -0,0 +1,6230 @@ +{ + "armor_stand": { + "identifier": "minecraft:armor_stand", + "min_engine_version": "1.8.0", + "materials": {"default": "armor_stand"}, + "textures": {"default": "textures/entity/armorstand/wood"}, + "geometry": { + "default": { + "bones": [ + { + "name": "baseplate", + "parent": "waist", + "cubes": [ + {"origin": [-6, 0, -6], "size": [12, 1, 12], "uv": [0, 32]} + ] + }, + {"name": "waist", "pivot": [0, 12, 0]}, + { + "name": "body", + "parent": "waist", + "pivot": [0, 13, 0], + "cubes": [ + {"origin": [-6, 21, -1.5], "size": [12, 3, 3], "uv": [0, 26]}, + {"origin": [-3, 14, -1], "size": [2, 7, 2], "uv": [16, 0]}, + {"origin": [1, 14, -1], "size": [2, 7, 2], "uv": [48, 16]}, + {"origin": [-4, 12, -1], "size": [8, 2, 2], "uv": [0, 48]} + ] + }, + { + "name": "head", + "parent": "waist", + "pivot": [0, 12, 0], + "cubes": [{"origin": [-1, 24, -1], "size": [2, 7, 2], "uv": [0, 0]}] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 12, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [32, 0]} + ] + }, + { + "name": "leftarm", + "parent": "waist", + "mirror": true, + "pivot": [5, 10, 0], + "cubes": [ + {"origin": [5, 12, -1], "size": [2, 12, 2], "uv": [32, 16]} + ] + }, + {"name": "leftitem", "parent": "leftarm", "pivot": [1, -9, -5]}, + { + "name": "leftleg", + "parent": "waist", + "mirror": true, + "pivot": [1.9, 1, 0], + "cubes": [ + {"origin": [0.9, 1, -1], "size": [2, 11, 2], "uv": [40, 16]} + ] + }, + { + "name": "rightarm", + "parent": "waist", + "pivot": [-5, 10, 0], + "cubes": [ + {"origin": [-7, 12, -1], "size": [2, 12, 2], "uv": [24, 0]} + ] + }, + {"name": "rightitem", "parent": "rightarm", "pivot": [-1, -9, -5]}, + { + "name": "rightleg", + "parent": "waist", + "pivot": [-1.9, 1, 0], + "cubes": [ + {"origin": [-2.9, 1, -1], "size": [2, 11, 2], "uv": [8, 0]} + ] + } + ], + "visible_bounds_width": 1.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 64 + } + }, + "render_controllers": ["controller.render.armor_stand"], + "enable_attachables": true + }, + "arrow": { + "identifier": "minecraft:arrow", + "materials": {"default": "arrow"}, + "textures": {"default": "textures/entity/arrow"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 1, 0], + "cubes": [ + { + "origin": [0, -2.5, -3], + "rotation": [0, 0, 45], + "size": [0, 5, 16], + "uv": {"east": {"uv": [0, 0]}} + }, + { + "origin": [0, -2.5, -3], + "rotation": [0, 0, -45], + "size": [0, 5, 16], + "uv": {"east": {"uv": [0, 0]}} + }, + { + "origin": [-2.5, -2.5, 12], + "rotation": [0, 0, 45], + "size": [5, 5, 0], + "uv": {"south": {"uv": [0, 5]}} + } + ] + } + ], + "texturewidth": 32, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.arrow"] + }, + "bat": { + "identifier": "minecraft:bat", + "materials": {"default": "bat"}, + "textures": {"default": "textures/entity/bat"}, + "geometry": { + "default": { + "visible_bounds_width": 1, + "visible_bounds_height": 1, + "visible_bounds_offset": [0, 0.5, 0], + "bones": [ + { + "name": "head", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-3, 21, -3], "size": [6, 6, 6], "uv": [0, 0]}] + }, + { + "name": "rightEar", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 26, -2], "size": [3, 4, 1], "uv": [24, 0]} + ], + "parent": "head" + }, + { + "name": "leftEar", + "mirror": true, + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [1, 26, -2], "size": [3, 4, 1], "uv": [24, 0]} + ], + "parent": "head" + }, + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-3, 8, -3], "size": [6, 12, 6], "uv": [0, 16]}, + {"origin": [-5, -8, 0], "size": [10, 16, 1], "uv": [0, 34]} + ] + }, + { + "name": "rightWing", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-12, 7, 1.5], "size": [10, 16, 1], "uv": [42, 0]} + ], + "parent": "body" + }, + { + "name": "rightWingTip", + "pivot": [-12, 23, 1.5], + "cubes": [ + {"origin": [-20, 10, 1.5], "size": [8, 12, 1], "uv": [24, 16]} + ], + "parent": "rightWing" + }, + { + "name": "leftWing", + "mirror": true, + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [2, 7, 1.5], "size": [10, 16, 1], "uv": [42, 0]} + ], + "parent": "body" + }, + { + "name": "leftWingTip", + "mirror": true, + "pivot": [12, 23, 1.5], + "cubes": [ + {"origin": [12, 10, 1.5], "size": [8, 12, 1], "uv": [24, 16]} + ], + "parent": "leftWing" + } + ] + } + }, + "render_controllers": ["controller.render.bat"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 18} + }, + "bee": { + "identifier": "minecraft:bee", + "materials": {"default": "bee"}, + "textures": { + "default": "textures/entity/bee/bee", + "angry": "textures/entity/bee/bee_angry", + "nectar": "textures/entity/bee/bee_nectar", + "angry_nectar": "textures/entity/bee/bee_angry_nectar" + }, + "geometry": { + "default": { + "texturewidth": 64, + "textureheight": 64, + "visible_bounds_width": 1.5, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.25, 0], + "bones": [ + { + "name": "body", + "pivot": [0.5, 5, 0], + "cubes": [ + {"origin": [-3, 2, -5], "size": [7, 7, 10], "uv": [0, 0]}, + {"origin": [2, 7, -8], "size": [1, 2, 3], "uv": [2, 0]}, + {"origin": [-2, 7, -8], "size": [1, 2, 3], "uv": [2, 3]} + ], + "locators": {"lead": [0, 4, -1]} + }, + { + "name": "stinger", + "parent": "body", + "pivot": [0.5, 6, 1], + "cubes": [{"origin": [0.5, 5, 5], "size": [0, 1, 2], "uv": [26, 7]}] + }, + { + "name": "rightwing_bone", + "parent": "body", + "pivot": [-1, 9, -3], + "rotation": [15, -15, 0], + "cubes": [ + {"origin": [-10, 9, -3], "size": [9, 0, 6], "uv": [0, 18]} + ] + }, + { + "name": "leftwing_bone", + "parent": "body", + "pivot": [2, 9, -3], + "rotation": [15, 15, 0], + "cubes": [{"origin": [2, 9, -3], "size": [9, 0, 6], "uv": [9, 24]}] + }, + { + "name": "leg_front", + "parent": "body", + "pivot": [2, 2, -2], + "cubes": [{"origin": [-3, 0, -2], "size": [7, 2, 0], "uv": [26, 1]}] + }, + { + "name": "leg_mid", + "parent": "body", + "pivot": [2, 2, 0], + "cubes": [{"origin": [-3, 0, 0], "size": [7, 2, 0], "uv": [26, 3]}] + }, + { + "name": "leg_back", + "parent": "body", + "pivot": [2, 2, 2], + "cubes": [{"origin": [-3, 0, 2], "size": [7, 2, 0], "uv": [26, 5]}] + } + ] + } + }, + "particle_effects": {"nectar_dripping": "minecraft:nectar_drip_particle"}, + "render_controllers": ["controller.render.bee"], + "spawn_egg": {"texture": "egg_bee", "texture_index": 0} + }, + "cave_spider": { + "identifier": "minecraft:cave_spider", + "min_engine_version": "1.8.0", + "materials": {"default": "spider", "invisible": "spider_invisible"}, + "textures": {"default": "textures/entity/spider/cave_spider"}, + "geometry": { + "default": { + "visible_bounds_width": 2, + "visible_bounds_height": 1, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "head", + "pivot": [0, 9, -3], + "cubes": [ + {"origin": [-4, 5, -11], "size": [8, 8, 8], "uv": [32, 4]} + ], + "parent": "body0" + }, + { + "name": "body0", + "pivot": [0, 9, 0], + "cubes": [{"origin": [-3, 6, -3], "size": [6, 6, 6], "uv": [0, 0]}] + }, + { + "name": "body1", + "pivot": [0, 9, 9], + "cubes": [ + {"origin": [-5, 5, 3], "size": [10, 8, 12], "uv": [0, 12]} + ], + "parent": "body0" + }, + { + "name": "leg0", + "pivot": [-4, 9, 2], + "cubes": [ + {"origin": [-19, 8, 1], "size": [16, 2, 2], "uv": [18, 0]} + ], + "parent": "body0" + }, + { + "name": "leg1", + "pivot": [4, 9, 2], + "cubes": [{"origin": [3, 8, 1], "size": [16, 2, 2], "uv": [18, 0]}], + "parent": "body0" + }, + { + "name": "leg2", + "pivot": [-4, 9, 1], + "cubes": [ + {"origin": [-19, 8, 0], "size": [16, 2, 2], "uv": [18, 0]} + ], + "parent": "body0" + }, + { + "name": "leg3", + "pivot": [4, 9, 1], + "cubes": [{"origin": [3, 8, 0], "size": [16, 2, 2], "uv": [18, 0]}], + "parent": "body0" + }, + { + "name": "leg4", + "pivot": [-4, 9, 0], + "cubes": [ + {"origin": [-19, 8, -1], "size": [16, 2, 2], "uv": [18, 0]} + ], + "parent": "body0" + }, + { + "name": "leg5", + "pivot": [4, 9, 0], + "cubes": [ + {"origin": [3, 8, -1], "size": [16, 2, 2], "uv": [18, 0]} + ], + "parent": "body0" + }, + { + "name": "leg6", + "pivot": [-4, 9, -1], + "cubes": [ + {"origin": [-19, 8, -2], "size": [16, 2, 2], "uv": [18, 0]} + ], + "parent": "body0" + }, + { + "name": "leg7", + "pivot": [4, 9, -1], + "cubes": [ + {"origin": [3, 8, -2], "size": [16, 2, 2], "uv": [18, 0]} + ], + "parent": "body0" + } + ] + } + }, + "render_controllers": ["controller.render.spider"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 22} + }, + "chest_minecart": { + "identifier": "minecraft:chest_minecart", + "min_engine_version": "1.8.0", + "materials": {"default": "minecart"}, + "textures": {"default": "textures/entity/minecart"}, + "geometry": { + "default": { + "bones": [ + { + "name": "bottom", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-10, -6.5, -1], + "size": [20, 16, 2], + "rotation": [90, 0, 0], + "uv": [0, 10] + } + ] + }, + { + "name": "back", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-17, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 270, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "front", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [1, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 90, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "right", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 2.5, -8], + "size": [16, 8, 2], + "rotation": [0, 180, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "left", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-8, 2.5, 6], "size": [16, 8, 2], "uv": [0, 0]} + ], + "parent": "bottom" + } + ], + "texturewidth": 64, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.minecart"] + }, + "command_block_minecart": { + "identifier": "minecraft:command_block_minecart", + "min_engine_version": "1.8.0", + "materials": {"default": "minecart"}, + "textures": {"default": "textures/entity/minecart"}, + "geometry": { + "default": { + "bones": [ + { + "name": "bottom", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-10, -6.5, -1], + "size": [20, 16, 2], + "rotation": [90, 0, 0], + "uv": [0, 10] + } + ] + }, + { + "name": "back", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-17, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 270, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "front", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [1, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 90, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "right", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 2.5, -8], + "size": [16, 8, 2], + "rotation": [0, 180, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "left", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-8, 2.5, 6], "size": [16, 8, 2], "uv": [0, 0]} + ], + "parent": "bottom" + } + ], + "texturewidth": 64, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.minecart"] + }, + "cow": { + "identifier": "minecraft:cow", + "min_engine_version": "1.8.0", + "materials": {"default": "cow"}, + "textures": {"default": "textures/entity/cow/cow"}, + "geometry": { + "default": { + "visible_bounds_width": 2, + "visible_bounds_height": 1.75, + "visible_bounds_offset": [0, 0.75, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "pivot": [0, 19, 2], + "bind_pose_rotation": [90, 0, 0], + "cubes": [ + {"origin": [-6, 11, -5], "size": [12, 18, 10], "uv": [18, 4]}, + {"origin": [-2, 11, -6], "size": [4, 6, 1], "uv": [52, 0]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 20, -8], + "locators": {"lead": [0, 20, -8]}, + "cubes": [ + {"origin": [-4, 16, -14], "size": [8, 8, 6], "uv": [0, 0]}, + {"origin": [-5, 22, -12], "size": [1, 3, 1], "uv": [22, 0]}, + {"origin": [4, 22, -12], "size": [1, 3, 1], "uv": [22, 0]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-4, 12, 7], + "cubes": [{"origin": [-6, 0, 5], "size": [4, 12, 4], "uv": [0, 16]}] + }, + { + "name": "leg1", + "parent": "body", + "mirror": true, + "pivot": [4, 12, 7], + "cubes": [{"origin": [2, 0, 5], "size": [4, 12, 4], "uv": [0, 16]}] + }, + { + "name": "leg2", + "parent": "body", + "pivot": [-4, 12, -6], + "cubes": [ + {"origin": [-6, 0, -7], "size": [4, 12, 4], "uv": [0, 16]} + ] + }, + { + "name": "leg3", + "parent": "body", + "mirror": true, + "pivot": [4, 12, -6], + "cubes": [{"origin": [2, 0, -7], "size": [4, 12, 4], "uv": [0, 16]}] + } + ] + } + }, + "render_controllers": ["controller.render.cow"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 1} + }, + "dragon_fireball": { + "identifier": "minecraft:dragon_fireball", + "materials": {"default": "fireball"}, + "textures": {"default": "textures/entity/enderdragon/dragon_fireball"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -4, 0], + "size": [16, 16, 0], + "uv": {"south": {"uv": [0, 0]}} + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.fireball"] + }, + "drowned": { + "identifier": "minecraft:drowned", + "min_engine_version": "1.16.0", + "materials": {"default": "drowned"}, + "textures": {"default": "textures/entity/zombie/drowned"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ] + }, + { + "name": "jacket", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 12, -2], + "size": [8, 12, 4], + "uv": [16, 32], + "inflate": 0.5 + } + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [0, 0], + "inflate": 0.5 + } + ] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 1 + } + ] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-7, 12, -2], "size": [4, 12, 4], "uv": [0, 16]} + ] + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + { + "origin": [4, 12, -2], + "size": [4, 12, 4], + "uv": [40, 16], + "mirror": true + } + ] + }, + { + "name": "rightSleeve", + "parent": "rightArm", + "pivot": [-5, 22, 0], + "cubes": [ + { + "origin": [-7, 12, -2], + "size": [4, 12, 4], + "uv": [48, 48], + "inflate": 0.5 + } + ] + }, + { + "name": "leftSleeve", + "parent": "leftArm", + "pivot": [5, 22, 0], + "cubes": [ + { + "origin": [4, 12, -2], + "size": [4, 12, 4], + "uv": [40, 32], + "inflate": 0.5, + "mirror": true + } + ] + }, + { + "name": "rightLeg", + "parent": "body", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-4.05, 0, -2], "size": [4, 12, 4], "uv": [16, 48]} + ] + }, + { + "name": "leftLeg", + "parent": "body", + "pivot": [1.9, 12, 0], + "cubes": [ + { + "origin": [0.05, 0, -2], + "size": [4, 12, 4], + "uv": [32, 48], + "mirror": true + } + ] + }, + { + "name": "rightPants", + "parent": "rightLeg", + "pivot": [-1.9, 12, 0], + "cubes": [ + { + "origin": [-4.25, 0, -2], + "size": [4, 12, 4], + "uv": [0, 48], + "inflate": 0.25 + } + ] + }, + { + "name": "leftPants", + "parent": "leftLeg", + "pivot": [1.9, 12, 0], + "cubes": [ + { + "origin": [0.25, 0, -2], + "size": [4, 12, 4], + "uv": [0, 32], + "inflate": 0.25, + "mirror": true + } + ] + }, + {"name": "waist", "parent": "body", "pivot": [0, 12, 0]}, + {"name": "rightItem", "parent": "rightArm", "pivot": [-1, -45, -5]}, + {"name": "leftItem", "parent": "leftArm", "pivot": [1, -45, -5]} + ], + "visible_bounds_width": 2.5, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 1.25, 0], + "texturewidth": 64, + "textureheight": 64 + } + }, + "render_controllers": ["controller.render.drowned"], + "enable_attachables": true, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 48} + }, + "egg": { + "identifier": "minecraft:egg", + "materials": {"default": "egg"}, + "textures": {"default": "textures/items/egg"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -8, 0], + "size": [16, 16, 0], + "uv": [0, 0], + "rotation": [0, 0, 0] + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.item_sprite"] + }, + "elder_guardian": { + "identifier": "minecraft:elder_guardian", + "min_engine_version": "1.8.0", + "materials": {"default": "guardian", "ghost": "guardian_ghost"}, + "textures": { + "default": "textures/entity/guardian", + "elder": "textures/entity/guardian_elder", + "beam": "textures/entity/guardian_beam" + }, + "geometry": { + "default": { + "visible_bounds_width": 3.5, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "head", + "pivot": [0, 0, 0], + "mirror": true, + "cubes": [ + { + "mirror": false, + "origin": [-6, 2, -8], + "size": [12, 12, 16], + "uv": [0, 0] + }, + { + "mirror": false, + "origin": [-8, 2, -6], + "size": [2, 12, 12], + "uv": [0, 28] + }, + {"origin": [6, 2, -6], "size": [2, 12, 12], "uv": [0, 28]}, + {"origin": [-6, 14, -6], "size": [12, 2, 12], "uv": [16, 40]}, + {"origin": [-6, 0, -6], "size": [12, 2, 12], "uv": [16, 40]} + ] + }, + { + "name": "eye", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-1, 6, 0], "size": [2, 2, 1], "uv": [8, 0]}] + }, + { + "name": "tailpart0", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-2, 6, 7], "size": [4, 4, 8], "uv": [40, 0]}] + }, + { + "name": "tailpart1", + "parent": "tailpart0", + "pivot": [0, 24, 0], + "cubes": [{"origin": [0, 7, 0], "size": [3, 3, 7], "uv": [0, 54]}] + }, + { + "name": "tailpart2", + "parent": "tailpart1", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [0, 8, 0], "size": [2, 2, 6], "uv": [41, 32]}, + {"origin": [1, 4.5, 3], "size": [1, 9, 9], "uv": [25, 19]} + ] + }, + { + "name": "spikepart0", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart1", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart2", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart3", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart4", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart5", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart6", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart7", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart8", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart9", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart10", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart11", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + } + ] + }, + "ghost": { + "visible_bounds_width": 3.5, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "head", + "pivot": [0, 24, 0], + "mirror": true, + "cubes": [ + { + "mirror": false, + "origin": [-6, 2, -8], + "size": [12, 12, 16], + "uv": [0, 0] + }, + { + "mirror": false, + "origin": [-8, 2, -6], + "size": [2, 12, 12], + "uv": [0, 28] + }, + {"origin": [6, 2, -6], "size": [2, 12, 12], "uv": [0, 28]}, + {"origin": [-6, 14, -6], "size": [12, 2, 12], "uv": [16, 40]}, + {"origin": [-6, 0, -6], "size": [12, 2, 12], "uv": [16, 40]} + ] + }, + { + "name": "eye", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-1, 7, 0], "size": [2, 2, 1], "uv": [8, 0]}] + }, + { + "name": "tailpart0", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-2, 6, 7], "size": [4, 4, 8], "uv": [40, 0]}] + }, + { + "name": "tailpart1", + "parent": "tailpart0", + "pivot": [0, 24, 0], + "cubes": [{"origin": [0, 7, 0], "size": [3, 3, 7], "uv": [0, 54]}] + }, + { + "name": "tailpart2", + "parent": "tailpart1", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [0, 8, 0], "size": [2, 2, 6], "uv": [41, 32]}, + {"origin": [1, 4.5, 3], "size": [1, 9, 9], "uv": [25, 19]} + ] + }, + { + "name": "spikepart0", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart1", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart2", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart3", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart4", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart5", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart6", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart7", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart8", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart9", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart10", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + }, + { + "name": "spikepart11", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-1, 19.5, -1], "size": [2, 9, 2], "uv": [0, 0]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.guardian"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 36} + }, + "eye_of_ender": { + "identifier": "minecraft:eye_of_ender_signal", + "materials": {"default": "eye_of_ender_signal"}, + "textures": {"default": "textures/items/ender_eye"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -8, 0], + "size": [16, 16, 0], + "uv": [0, 0], + "rotation": [0, 0, 0] + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.item_sprite"] + }, + "ender_pearl": { + "identifier": "minecraft:ender_pearl", + "materials": {"default": "ender_pearl"}, + "textures": {"default": "textures/items/ender_pearl"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -8, 0], + "size": [16, 16, 0], + "uv": [0, 0], + "rotation": [0, 0, 0] + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.item_sprite"] + }, + "evoker_fangs": { + "identifier": "minecraft:evocation_fang", + "materials": {"default": "fang"}, + "textures": {"default": "textures/entity/illager/evoker_fangs"}, + "geometry": { + "default": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "upper_jaw", + "parent": "base", + "pivot": [0, 11, 0], + "cubes": [ + { + "origin": [-1.5, 0, -4], + "size": [4, 14, 8], + "uv": [40, 0], + "inflate": 0.01 + } + ] + }, + { + "name": "lower_jaw", + "parent": "base", + "pivot": [0, 11, 0], + "bind_pose_rotation": [0, 180, 0], + "cubes": [ + {"origin": [-1.5, 0, -4], "size": [4, 14, 8], "uv": [40, 0]} + ] + }, + { + "name": "base", + "pivot": [0, 0, 0], + "bind_pose_rotation": [0, 90, 0], + "cubes": [ + {"origin": [-5, 0, -5], "size": [10, 12, 10], "uv": [0, 0]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.evocation_fang"] + }, + "evoker": { + "identifier": "minecraft:evocation_illager", + "min_engine_version": "1.8.0", + "materials": {"default": "evoker"}, + "textures": {"default": "textures/entity/illager/evoker"}, + "geometry": { + "default": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 1.25, 0], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [0, 0]} + ] + }, + { + "name": "nose", + "parent": "head", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-1, 23, -6], "size": [2, 4, 2], "uv": [24, 0]} + ] + }, + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -3], "size": [8, 12, 6], "uv": [16, 20]}, + { + "origin": [-4, 6, -3], + "size": [8, 18, 6], + "uv": [0, 38], + "inflate": 0.5 + } + ] + }, + { + "name": "arms", + "parent": "body", + "pivot": [0, 22, 0], + "cubes": [ + {"origin": [-8, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [4, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [-4, 16, -2], "size": [8, 4, 4], "uv": [40, 38]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [2, 12, 0], + "mirror": true, + "cubes": [{"origin": [0, 0, -2], "size": [4, 12, 4], "uv": [0, 22]}] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "locators": {"right_hand": [-6, 12, 0]}, + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ] + }, + { + "name": "rightItem", + "pivot": [-5.5, 16, 0.5], + "neverRender": true, + "parent": "rightArm" + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "locators": {"left_hand": [6, 12, 0]}, + "mirror": true, + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ] + } + ] + } + }, + "particle_effects": {"spell": "minecraft:evoker_spell"}, + "render_controllers": ["controller.render.evoker"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 40} + }, + "experience_bottle": { + "identifier": "minecraft:xp_bottle", + "materials": {"default": "xp_bottle"}, + "textures": { + "default": "textures/items/experience_bottle", + "enchanted": "textures/misc/enchanted_item_glint" + }, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -8, 0], + "size": [16, 16, 0], + "uv": [0, 0], + "rotation": [0, 0, 0] + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.experience_bottle"] + }, + "experience_orb": { + "identifier": "minecraft:xp_orb", + "materials": {"default": "experience_orb"}, + "textures": {"default": "textures/entity/experience_orb"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [8, 8, 0], + "cubes": [ + { + "origin": [0, 0, 0], + "size": [16, 16, 0], + "uv": {"south": {"uv": [0, 0]}} + } + ] + } + ], + "texturewidth": 64, + "textureheight": 64 + } + }, + "render_controllers": ["controller.render.experience_orb"] + }, + "fireball": { + "identifier": "minecraft:fireball", + "materials": {"default": "fireball"}, + "textures": {"default": "textures/items/fire_charge"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -4, 0], + "size": [16, 16, 0], + "uv": {"south": {"uv": [0, 0]}} + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.fireball"] + }, + "firework_rocket": { + "identifier": "minecraft:fireworks_rocket", + "materials": {"default": "fireworks_rocket"}, + "textures": {"default": "textures/entity/fireworks"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -8, 0], + "rotation": [0, 90, 0], + "size": [16, 16, 0], + "uv": {"north": {"uv": [0, 0]}} + }, + { + "origin": [-8, -8, 0], + "rotation": [90, 90, 0], + "size": [16, 16, 0], + "uv": {"north": {"uv": [0, 0]}} + } + ] + } + ], + "texturewidth": 32, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.fireworks_rocket"] + }, + "fishing_bobber": { + "identifier": "minecraft:fishing_hook", + "materials": {"default": "fishing_hook"}, + "textures": {"default": "textures/entity/fishing_hook"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-1.5, -1.5, -1.5], + "size": [3, 3, 3], + "rotation": [0, 0, 180], + "uv": { + "up": {"uv": [0, 0]}, + "down": {"uv": [3, 0]}, + "south": {"uv": [9, 0], "uv_size": [-3, 3]}, + "north": {"uv": [9, 0]}, + "east": {"uv": [12, 0]}, + "west": {"uv": [15, 0]} + } + }, + { + "origin": [0, -4.5, -0.5], + "size": [0, 3, 3], + "uv": {"east": {"uv": [18, 0]}} + }, + { + "origin": [0, 1.5, -1.5], + "size": [0, 3, 3], + "uv": {"east": {"uv": [21, 0]}} + }, + { + "origin": [-1.5, 1.5, 0], + "size": [3, 3, 0], + "uv": {"north": {"uv": [21, 0]}} + } + ] + } + ], + "texturewidth": 24, + "textureheight": 3 + } + }, + "render_controllers": ["controller.render.fishing_hook"] + }, + "hoglin": { + "identifier": "minecraft:hoglin", + "materials": {"default": "hoglin"}, + "textures": {"default": "textures/entity/hoglin/hoglin"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 19, -3], + "cubes": [ + { + "origin": [-8, 11, -7], + "size": [16, 14, 26], + "inflate": 0.02, + "uv": [1, 1] + }, + { + "origin": [0, 22, -10], + "size": [0, 10, 19], + "inflate": 0.02, + "uv": [90, 33] + } + ], + "locators": {"lead": [0, 20, -5]} + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 22, -5], + "rotation": [50, 0, 0], + "cubes": [ + {"origin": [-7, 21, -24], "size": [14, 6, 19], "uv": [61, 1]}, + {"origin": [-8, 22, -19], "size": [2, 11, 2], "uv": [1, 13]}, + {"origin": [6, 22, -19], "size": [2, 11, 2], "uv": [1, 13]} + ] + }, + { + "name": "right_ear", + "parent": "head", + "pivot": [-7, 27, -7], + "rotation": [0, 0, -50], + "cubes": [ + {"origin": [-13, 26, -10], "size": [6, 1, 4], "uv": [1, 1]} + ] + }, + { + "name": "left_ear", + "parent": "head", + "pivot": [7, 27, -7], + "rotation": [0, 0, 50], + "cubes": [{"origin": [7, 26, -10], "size": [6, 1, 4], "uv": [1, 6]}] + }, + { + "name": "leg_back_right", + "pivot": [6, 8, 17], + "cubes": [ + {"origin": [-8, 0, 13], "size": [5, 11, 5], "uv": [21, 45]} + ] + }, + { + "name": "leg_back_left", + "pivot": [-6, 8, 17], + "cubes": [{"origin": [3, 0, 13], "size": [5, 11, 5], "uv": [0, 45]}] + }, + { + "name": "leg_front_right", + "pivot": [-6, 12, -3], + "cubes": [ + {"origin": [-8, 0, -6], "size": [6, 14, 6], "uv": [66, 42]} + ] + }, + { + "name": "leg_front_left", + "pivot": [6, 12, -3], + "cubes": [ + {"origin": [2, 0, -6], "size": [6, 14, 6], "uv": [41, 42]} + ] + } + ], + "visible_bounds_width": 4, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "texturewidth": 128, + "textureheight": 64 + } + }, + "spawn_egg": {"base_color": "#C66E55", "overlay_color": "#5f6464"}, + "render_controllers": ["controller.render.hoglin"] + }, + "hopper_minecart": { + "identifier": "minecraft:hopper_minecart", + "min_engine_version": "1.8.0", + "materials": {"default": "minecart"}, + "textures": {"default": "textures/entity/minecart"}, + "geometry": { + "default": { + "bones": [ + { + "name": "bottom", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-10, -6.5, -1], + "size": [20, 16, 2], + "rotation": [90, 0, 0], + "uv": [0, 10] + } + ] + }, + { + "name": "back", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-17, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 270, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "front", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [1, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 90, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "right", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 2.5, -8], + "size": [16, 8, 2], + "rotation": [0, 180, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "left", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-8, 2.5, 6], "size": [16, 8, 2], "uv": [0, 0]} + ], + "parent": "bottom" + } + ], + "texturewidth": 64, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.minecart"] + }, + "husk": { + "identifier": "minecraft:husk", + "min_engine_version": "1.8.0", + "materials": {"default": "husk"}, + "textures": {"default": "textures/entity/zombie/husk"}, + "geometry": { + "default": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 1.25, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ], + "parent": "waist" + }, + {"name": "waist", "neverRender": true, "pivot": [0, 12, 0]}, + { + "name": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "parent": "body" + }, + { + "name": "hat", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 0.5 + } + ], + "neverRender": true, + "parent": "head" + }, + { + "name": "rightArm", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ], + "parent": "body" + }, + { + "name": "rightItem", + "pivot": [-1, -45, -5], + "neverRender": true, + "parent": "rightArm" + }, + { + "name": "leftArm", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ], + "mirror": true, + "parent": "body" + }, + { + "name": "leftItem", + "pivot": [1, -45, -5], + "neverRender": true, + "parent": "leftArm" + }, + { + "name": "rightLeg", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ], + "parent": "body" + }, + { + "name": "leftLeg", + "pivot": [1.9, 12, 0], + "cubes": [ + {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ], + "mirror": true, + "parent": "body" + } + ] + } + }, + "scripts": { + "pre_animation": [ + "variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;" + ] + }, + "animations": { + "humanoid_big_head": {"loop": true, "bones": {"head": {"scale": 1.4}}}, + "look_at_target_default": { + "loop": true, + "bones": { + "head": { + "relative_to": {"rotation": "entity"}, + "rotation": [ + "query.target_x_rotation", + "query.target_y_rotation", + 0 + ] + } + } + }, + "look_at_target_gliding": { + "loop": true, + "bones": {"head": {"rotation": [-45, "query.target_y_rotation", 0]}} + }, + "look_at_target_swimming": { + "loop": true, + "bones": { + "head": { + "rotation": [ + "math.lerp(query.target_x_rotation, -45.0, variable.swim_amount)", + "query.target_y_rotation", + 0 + ] + } + } + }, + "move": { + "loop": true, + "bones": { + "leftarm": {"rotation": ["variable.tcos0", 0, 0]}, + "leftleg": {"rotation": ["variable.tcos0 * -1.4", 0, 0]}, + "rightarm": {"rotation": ["-variable.tcos0", 0, 0]}, + "rightleg": {"rotation": ["variable.tcos0 * 1.4", 0, 0]} + } + }, + "riding.arms": { + "loop": true, + "bones": { + "leftarm": {"rotation": [-36, 0, 0]}, + "rightarm": {"rotation": [-36, 0, 0]} + } + }, + "riding.legs": { + "loop": true, + "bones": { + "leftleg": {"rotation": ["-72.0 - this", "-18.0 - this", "-this"]}, + "rightleg": {"rotation": ["-72.0 - this", "18.0 - this", "-this"]} + } + }, + "holding": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + "variable.is_holding_left ? (-this * 0.5 - 18.0) : 0.0", + 0, + 0 + ] + }, + "rightarm": { + "rotation": [ + "variable.is_holding_right ? (-this * 0.5 - 18.0) : 0.0", + 0, + 0 + ] + } + } + }, + "brandish_spear": { + "loop": true, + "bones": { + "rightarm": { + "rotation": [ + "this * -0.5 - 157.5 - 22.5 * variable.charge_amount", + "-this", + 0 + ] + } + } + }, + "charging": { + "loop": true, + "bones": { + "rightarm": { + "rotation": ["22.5 * variable.charge_amount - this", "-this", 0] + } + } + }, + "attack.rotations": { + "loop": true, + "bones": { + "body": { + "rotation": [ + 0, + "math.sin(math.sqrt(variable.attack_time) * 360) * 11.46 - this", + 0 + ] + }, + "leftarm": { + "rotation": [ + "math.sin(math.sqrt(variable.attack_time) * 360) * 11.46", + 0, + 0 + ] + }, + "rightarm": { + "rotation": [ + "math.sin(1.0 - math.pow(1.0 - variable.attack_time, 3.0) * 180.0) * (variable.is_brandishing_spear ? -1.0 : 1.0 )", + "variable.is_brandishing_spear ? 0.0 : (math.sin(math.sqrt(variable.attack_time) * 360) * 11.46) * 2.0", + 0 + ] + } + } + }, + "sneaking": { + "loop": true, + "bones": { + "body": {"rotation": ["0.5 - this", 0, 0]}, + "head": {"position": [0, 1, 0]}, + "leftarm": {"rotation": [72, 0, 0]}, + "leftleg": {"position": [0, -3, 4]}, + "rightarm": {"rotation": [72, 0, 0]}, + "rightleg": {"position": [0, -3, 4]} + } + }, + "bob": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + 0, + 0, + "((math.cos(query.life_time * 103.2) * 2.865) + 2.865) *-1.0" + ] + }, + "rightarm": { + "rotation": [ + 0, + 0, + "(math.cos(query.life_time * 103.2) * 2.865) + 2.865" + ] + } + } + }, + "damage_nearby_mobs": { + "loop": true, + "bones": { + "leftarm": {"rotation": ["-45.0-this", "-this", "-this"]}, + "leftleg": {"rotation": ["45.0-this", "-this", "-this"]}, + "rightarm": {"rotation": ["45.0-this", "-this", "-this"]}, + "rightleg": {"rotation": ["-45.0-this", "-this", "-this"]} + } + }, + "bow_and_arrow": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + "query.target_x_rotation - 90.0 - math.sin(query.life_time * 76.8) * 2.865 - this", + "query.target_y_rotation + 28.65", + "-(math.cos(query.life_time * 103.2) * 2.865) - 2.865" + ] + }, + "rightarm": { + "rotation": [ + "query.target_x_rotation - 90.0 + math.sin(query.life_time * 76.8) * 2.865 - this", + "query.target_y_rotation - 5.73", + "(math.cos(query.life_time * 103.2) * 2.865) + 2.865" + ] + } + } + }, + "use_item_progress": { + "loop": true, + "bones": { + "rightarm": { + "rotation": [ + "variable.use_item_startup_progress * -60.0 + variable.use_item_interval_progress * 11.25", + "variable.use_item_startup_progress * -22.5 + variable.use_item_interval_progress * 11.25", + "variable.use_item_startup_progress * -5.625 + variable.use_item_interval_progress * 11.25" + ] + } + } + }, + "zombie_attack_bare_hand": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + "-90.0 - ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4) - (math.sin(query.life_time * 76.776372) * 2.865) - this", + "5.73 - ((math.sin(variable.attack_time * 180.0) * 57.3) * 0.6) - this", + "math.cos(query.life_time * 103.13244) * -2.865 - 2.865 - this" + ] + }, + "rightarm": { + "rotation": [ + "90.0 * (variable.is_brandishing_spear - 1.0) - ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4) + (math.sin(query.life_time * 76.776372) * 2.865) - this", + "(math.sin(variable.attack_time * 180.0) * 57.3) * 0.6 - 5.73 - this", + "math.cos(query.life_time * 103.13244) * 2.865 + 2.865 - this" + ] + } + } + }, + "swimming": { + "loop": true, + "bones": { + "body": { + "position": [ + 0, + "variable.swim_amount * -10.0 - this", + "variable.swim_amount * 9.0 - this" + ], + "rotation": [ + "variable.swim_amount * (90.0 + query.target_x_rotation)", + 0, + 0 + ] + }, + "leftarm": { + "rotation": [ + "math.lerp(this, -180.0, variable.swim_amount) - (variable.swim_amount * ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4)) - (variable.swim_amount * (math.sin(query.life_time * 76.776372) * 2.865)) - this", + "math.lerp(this, 14.325, variable.swim_amount) - this", + "math.lerp(this, 14.325, variable.swim_amount) - (variable.swim_amount * (math.cos(query.life_time * 103.13244) * 2.865 + 2.865)) - this" + ] + }, + "leftleg": { + "rotation": [ + "math.lerp(this, math.cos(query.life_time * 390.0 + 180.0) * 0.3, variable.swim_amount)", + 0, + 0 + ] + }, + "rightarm": { + "rotation": [ + "math.lerp(this, -180.0, variable.swim_amount) - (variable.swim_amount * ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4)) + (variable.swim_amount * (math.sin(query.life_time * 76.776372) * 2.865)) - this", + "math.lerp(this, 14.325, variable.swim_amount) - this", + "math.lerp(this, -14.325, variable.swim_amount) + (variable.swim_amount * (math.cos(query.life_time * 103.13244) * 2.865 + 2.865)) - this" + ] + }, + "rightleg": { + "rotation": [ + "math.lerp(this, math.cos(query.life_time * 390.0) * 0.3, variable.swim_amount)", + 0, + 0 + ] + } + } + } + }, + "animation_controllers": { + "humanoid_baby_big_head": { + "initial_state": "default", + "states": { + "baby": { + "animations": ["humanoid_big_head"], + "transitions": [{"default": "!query.is_baby"}] + }, + "default": {"transitions": [{"baby": "query.is_baby"}]} + } + }, + "look_at_target": { + "initial_state": "default", + "states": { + "default": { + "animations": ["look_at_target_default"], + "transitions": [ + {"gliding": "query.is_gliding"}, + {"swimming": "query.is_swimming"} + ] + }, + "gliding": { + "animations": ["look_at_target_gliding"], + "transitions": [ + {"swimming": "query.is_swimming"}, + {"default": "!query.is_gliding"} + ] + }, + "swimming": { + "animations": ["look_at_target_swimming"], + "transitions": [ + {"gliding": "query.is_gliding"}, + {"default": "!query.is_swimming"} + ] + } + } + }, + "move": { + "initial_state": "default", + "states": {"default": {"animations": ["move"]}} + }, + "riding": { + "initial_state": "default", + "states": { + "default": {"transitions": [{"riding": "query.is_riding"}]}, + "riding": { + "animations": ["riding.arms", "riding.legs"], + "transitions": [{"default": "!query.is_riding"}] + } + } + }, + "holding": { + "initial_state": "default", + "states": {"default": {"animations": ["holding"]}} + }, + "brandish_spear": { + "initial_state": "default", + "states": { + "brandish_spear": { + "animations": ["brandish_spear"], + "transitions": [{"default": "!variable.is_brandishing_spear"}] + }, + "default": { + "transitions": [{"brandish_spear": "variable.is_brandishing_spear"}] + } + } + }, + "charging": { + "initial_state": "default", + "states": { + "charging": { + "animations": ["charging"], + "transitions": [{"default": "!query.is_charging"}] + }, + "default": {"transitions": [{"charging": "query.is_charging"}]} + } + }, + "attack": { + "initial_state": "default", + "states": { + "attacking": { + "animations": ["attack.rotations"], + "transitions": [{"default": "variable.attack_time < 0.0"}] + }, + "default": { + "transitions": [{"attacking": "variable.attack_time >= 0.0"}] + } + } + }, + "sneaking": { + "initial_state": "default", + "states": { + "default": {"transitions": [{"sneaking": "query.is_sneaking"}]}, + "sneaking": { + "animations": ["sneaking"], + "transitions": [{"default": "!query.is_sneaking"}] + } + } + }, + "bob": { + "initial_state": "default", + "states": {"default": {"animations": ["bob"]}} + }, + "damage_nearby_mobs": { + "initial_state": "default", + "states": { + "damage_nearby_mobs": { + "animations": ["damage_nearby_mobs"], + "transitions": [{"default": "!variable.damage_nearby_mobs"}] + }, + "default": { + "transitions": [ + {"damage_nearby_mobs": "variable.damage_nearby_mobs"} + ] + } + } + }, + "bow_and_arrow": { + "initial_state": "default", + "states": { + "bow_and_arrow": { + "animations": ["bow_and_arrow"], + "transitions": [{"default": "!query.has_target"}] + }, + "default": {"transitions": [{"bow_and_arrow": "query.has_target"}]} + } + }, + "use_item_progress": { + "initial_state": "default", + "states": { + "default": { + "transitions": [ + { + "use_item_progress": "( variable.use_item_interval_progress > 0.0 ) || ( variable.use_item_startup_progress > 0.0 )" + } + ] + }, + "use_item_progress": { + "animations": ["use_item_progress"], + "transitions": [ + { + "default": "( variable.use_item_interval_progress <= 0.0 ) && ( variable.use_item_startup_progress <= 0.0 )" + } + ] + } + } + }, + "zombie_attack_bare_hand": { + "initial_state": "default", + "states": { + "default": { + "transitions": [{"is_bare_hand": "variable.is_holding_left != 1.0"}] + }, + "is_bare_hand": { + "animations": ["zombie_attack_bare_hand"], + "transitions": [{"default": "variable.is_holding_left == 1.0"}] + } + } + }, + "swimming": { + "initial_state": "default", + "states": { + "default": { + "transitions": [{"is_swimming": "variable.swim_amount > 0.0"}] + }, + "is_swimming": { + "animations": ["swimming"], + "transitions": [{"default": "variable.swim_amount <= 0.0"}] + } + } + } + }, + "render_controllers": ["controller.render.husk"], + "enable_attachables": true, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 28} + }, + "iron_golem": { + "identifier": "minecraft:iron_golem", + "materials": {"default": "iron_golem"}, + "textures": {"default": "textures/entity/iron_golem/iron_golem"}, + "geometry": { + "default": { + "visible_bounds_width": 3, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "texturewidth": 128, + "textureheight": 128, + "bones": [ + { + "name": "body", + "pivot": [0, 31, 0], + "cubes": [ + {"origin": [-9, 21, -6], "size": [18, 12, 11], "uv": [0, 40]}, + { + "origin": [-4.5, 16, -3], + "size": [9, 5, 6], + "uv": [0, 70], + "inflate": 0.5 + } + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 31, -2], + "locators": {"lead": [0, 31, -2]}, + "cubes": [ + {"origin": [-4, 33, -7.5], "size": [8, 10, 8], "uv": [0, 0]}, + {"origin": [-1, 32, -9.5], "size": [2, 4, 2], "uv": [24, 0]} + ] + }, + { + "name": "arm0", + "parent": "body", + "pivot": [0, 31, 0], + "cubes": [ + {"origin": [-13, 3.5, -3], "size": [4, 30, 6], "uv": [60, 21]} + ] + }, + { + "name": "arm1", + "parent": "body", + "pivot": [0, 31, 0], + "cubes": [ + {"origin": [9, 3.5, -3], "size": [4, 30, 6], "uv": [60, 58]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-4, 13, 0], + "cubes": [ + {"origin": [-7.5, 0, -3], "size": [6, 16, 5], "uv": [37, 0]} + ] + }, + { + "name": "leg1", + "parent": "body", + "mirror": true, + "pivot": [5, 13, 0], + "cubes": [ + {"origin": [1.5, 0, -3], "size": [6, 16, 5], "uv": [60, 0]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.iron_golem"] + }, + "item_frame": { + "identifier": "minecraft:item_frame", + "materials": {"default": "item_frame"}, + "textures": { + "background": "block:item_frame", + "frame": "block:oak_planks" + }, + "geometry": { + "background": { + "bones": [ + { + "name": "base" + }, + { + "name": "background", + "parent": "base", + "rotation": [0, 180, 0], + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-5, -5, -8], "size": [10, 10, 0.5], "uv": [3, 3]} + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + }, + "frame": { + "bones": [ + { + "name": "frame", + "parent": "base", + "rotation": [0, 180, 0], + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-6, -6, -8], "size": [12, 1, 1], "uv": [2, 2]}, + {"origin": [-6, 5, -8], "size": [12, 1, 1], "uv": [2, 13]}, + {"origin": [-6, -5, -8], "size": [1, 10, 1], "uv": [2, 3]}, + {"origin": [5, -5, -8], "size": [1, 10, 1], "uv": [13, 3]} + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.item_frame"] + }, + "leash_knot": { + "identifier": "minecraft:leash_knot", + "materials": {"default": "leash_knot"}, + "textures": {"default": "textures/entity/lead_knot"}, + "geometry": { + "default": { + "bones": [ + { + "name": "knot", + "rotation": [0, 180, 0], + "cubes": [{"origin": [5, 6, 5], "size": [6, 8, 6], "uv": [0, 0]}] + } + ], + "texturewidth": 32, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.leash_knot"] + }, + "llama_spit": { + "identifier": "minecraft:llama_spit", + "materials": {"default": "llama_spit"}, + "textures": {"default": "textures/entity/llama/spit"}, + "geometry": { + "default": { + "visible_bounds_width": 1, + "visible_bounds_height": 1, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 22, 0], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [0, 26, 0], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [0, 22, -4], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [0, 22, 0], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [2, 22, 0], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [0, 20, 0], "size": [2, 2, 2], "uv": [0, 0]}, + {"origin": [0, 22, 2], "size": [2, 2, 2], "uv": [0, 0]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.llama_spit"] + }, + "magma_cube": { + "identifier": "minecraft:magma_cube", + "materials": {"default": "magma_cube"}, + "textures": {"default": "textures/entity/slime/magmacube"}, + "geometry": { + "default": { + "visible_bounds_width": 2.5, + "visible_bounds_height": 5, + "visible_bounds_offset": [0, 2.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "bodyCube_0", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 7, -4], "size": [8, 1, 8], "uv": [0, 0]}] + }, + { + "name": "bodyCube_1", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 6, -4], "size": [8, 1, 8], "uv": [0, 1]}] + }, + { + "name": "bodyCube_2", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 5, -4], "size": [8, 1, 8], "uv": [24, 10]} + ] + }, + { + "name": "bodyCube_3", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 4, -4], "size": [8, 1, 8], "uv": [24, 19]} + ] + }, + { + "name": "bodyCube_4", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 3, -4], "size": [8, 1, 8], "uv": [0, 4]}] + }, + { + "name": "bodyCube_5", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 2, -4], "size": [8, 1, 8], "uv": [0, 5]}] + }, + { + "name": "bodyCube_6", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 1, -4], "size": [8, 1, 8], "uv": [0, 6]}] + }, + { + "name": "bodyCube_7", + "parent": "insideCube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 0, -4], "size": [8, 1, 8], "uv": [0, 7]}] + }, + { + "name": "insideCube", + "pivot": [0, 0, 0], + "cubes": [{"origin": [-2, 2, -2], "size": [4, 4, 4], "uv": [0, 16]}] + } + ] + } + }, + "render_controllers": ["controller.render.magma_cube"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 20} + }, + "mooshroom": { + "identifier": "minecraft:mooshroom", + "min_engine_version": "1.8.0", + "materials": {"default": "mooshroom"}, + "textures": { + "default": "textures/entity/cow/red_mooshroom", + "brown": "textures/entity/cow/brown_mooshroom" + }, + "geometry": { + "default": { + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "pivot": [0, 19, 2], + "bind_pose_rotation": [90, 0, 0], + "cubes": [ + {"origin": [-6, 11, -5], "size": [12, 18, 10], "uv": [18, 4]}, + {"origin": [-2, 11, -6], "size": [4, 6, 1], "uv": [52, 0]} + ] + }, + { + "name": "head", + "pivot": [0, 20, -8], + "locators": {"lead": [0, 20, -8]}, + "cubes": [ + {"origin": [-4, 16, -14], "size": [8, 8, 6], "uv": [0, 0]}, + {"origin": [-5, 22, -12], "size": [1, 3, 1], "uv": [22, 0]}, + {"origin": [4, 22, -12], "size": [1, 3, 1], "uv": [22, 0]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-4, 12, 7], + "cubes": [{"origin": [-6, 0, 5], "size": [4, 12, 4], "uv": [0, 16]}] + }, + { + "name": "leg1", + "parent": "body", + "mirror": true, + "pivot": [4, 12, 7], + "cubes": [{"origin": [2, 0, 5], "size": [4, 12, 4], "uv": [0, 16]}] + }, + { + "name": "leg2", + "parent": "body", + "pivot": [-4, 12, -6], + "cubes": [ + {"origin": [-6, 0, -7], "size": [4, 12, 4], "uv": [0, 16]} + ] + }, + { + "name": "leg3", + "parent": "body", + "mirror": true, + "pivot": [4, 12, -6], + "cubes": [{"origin": [2, 0, -7], "size": [4, 12, 4], "uv": [0, 16]}] + } + ] + } + }, + "render_controllers": ["controller.render.mooshroom"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 5} + }, + "panda": { + "identifier": "minecraft:panda", + "materials": {"default": "panda"}, + "textures": { + "default": "textures/entity/panda/panda", + "lazy": "textures/entity/panda/lazy_panda", + "worried": "textures/entity/panda/worried_panda", + "playful": "textures/entity/panda/playful_panda", + "brown": "textures/entity/panda/brown_panda", + "weak": "textures/entity/panda/weak_panda", + "aggressive": "textures/entity/panda/aggressive_panda" + }, + "geometry": { + "default": { + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "head", + "parent": "body", + "pivot": [0, 12.5, -17], + "locators": {"lead": [0, 14, -16]}, + "cubes": [ + {"origin": [-6.5, 7.5, -21], "size": [13, 10, 9], "uv": [0, 6]}, + {"origin": [-3.5, 7.5, -23], "size": [7, 5, 2], "uv": [45, 16]}, + {"origin": [-8.5, 16.5, -18], "size": [5, 4, 1], "uv": [52, 25]}, + {"origin": [3.5, 16.5, -18], "size": [5, 4, 1], "uv": [52, 25]} + ] + }, + { + "name": "body", + "pivot": [0, 14, 0], + "bind_pose_rotation": [90, 0, 0], + "cubes": [ + {"origin": [-9.5, 1, -6.5], "size": [19, 26, 13], "uv": [0, 25]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-5.5, 9, 9], + "cubes": [ + {"origin": [-8.5, 0, 6], "size": [6, 9, 6], "uv": [40, 0]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [5.5, 9, 9], + "cubes": [{"origin": [2.5, 0, 6], "size": [6, 9, 6], "uv": [40, 0]}] + }, + { + "name": "leg2", + "parent": "body", + "pivot": [-5.5, 9, -9], + "cubes": [ + {"origin": [-8.5, 0, -12], "size": [6, 9, 6], "uv": [40, 0]} + ] + }, + { + "name": "leg3", + "parent": "body", + "pivot": [5.5, 9, -9], + "cubes": [ + {"origin": [2.5, 0, -12], "size": [6, 9, 6], "uv": [40, 0]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.panda"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 54} + }, + "phantom": { + "identifier": "minecraft:phantom", + "materials": {"default": "phantom", "invisible": "phantom_invisible"}, + "textures": {"default": "textures/entity/phantom"}, + "geometry": { + "default": { + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "bind_pose_rotation": [0, 0, 0], + "cubes": [{"origin": [-3, 23, -8], "size": [5, 3, 9], "uv": [0, 8]}] + }, + { + "name": "wing0", + "pivot": [2, 26, -8], + "bind_pose_rotation": [0, 0, 5.7], + "cubes": [ + {"origin": [2, 24, -8], "size": [6, 2, 9], "uv": [23, 12]} + ], + "parent": "body" + }, + { + "name": "wingtip0", + "pivot": [8, 26, -8], + "bind_pose_rotation": [0, 0, 5.7], + "locators": {"left_wing": [21, 26, 0]}, + "cubes": [ + {"origin": [8, 25, -8], "size": [13, 1, 9], "uv": [16, 24]} + ], + "parent": "wing0" + }, + { + "name": "wing1", + "pivot": [-3, 26, -8], + "bind_pose_rotation": [0, 0, -5.7], + "mirror": true, + "cubes": [ + {"origin": [-9, 24, -8], "size": [6, 2, 9], "uv": [23, 12]} + ], + "parent": "body" + }, + { + "name": "wingtip1", + "pivot": [-9, 24, -8], + "bind_pose_rotation": [0, 0, -5.7], + "locators": {"right_wing": [-22, 24, 0]}, + "mirror": true, + "cubes": [ + {"origin": [-22, 25, -8], "size": [13, 1, 9], "uv": [16, 24]} + ], + "parent": "wing1" + }, + { + "name": "head", + "pivot": [0, 23, -7], + "bind_pose_rotation": [11.5, 0, 0], + "cubes": [ + {"origin": [-4, 22, -12], "size": [7, 3, 5], "uv": [0, 0]} + ], + "parent": "body" + }, + { + "name": "tail", + "pivot": [0, 26, 1], + "bind_pose_rotation": [0, 0, 0], + "cubes": [ + {"origin": [-2, 24, 1], "size": [3, 2, 6], "uv": [3, 20]} + ], + "parent": "body" + }, + { + "name": "tailtip", + "pivot": [0, 25.5, 7], + "bind_pose_rotation": [0, 0, 0], + "cubes": [ + {"origin": [-1, 24.5, 7], "size": [1, 1, 6], "uv": [4, 29]} + ], + "parent": "tail" + } + ] + } + }, + "particle_effects": {"wing_dust": "minecraft:phantom_trail_particle"}, + "sound_effects": {"flap": "mob.phantom.flap"}, + "render_controllers": ["controller.render.phantom"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 51} + }, + "pig": { + "identifier": "minecraft:pig", + "min_engine_version": "1.8.0", + "materials": {"default": "pig"}, + "textures": { + "default": "textures/entity/pig/pig", + "saddled": "textures/entity/pig/pig_saddle" + }, + "geometry": { + "default": { + "visible_bounds_width": 2, + "visible_bounds_height": 1.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "pivot": [0, 13, 2], + "bind_pose_rotation": [90, 0, 0], + "cubes": [ + {"origin": [-5, 7, -5], "size": [10, 16, 8], "uv": [28, 8]} + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 12, -6], + "locators": {"lead": [0, 14, -6]}, + "cubes": [ + {"origin": [-4, 8, -14], "size": [8, 8, 8], "uv": [0, 0]}, + {"origin": [-2, 9, -15], "size": [4, 3, 1], "uv": [16, 16]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-3, 6, 7], + "cubes": [{"origin": [-5, 0, 5], "size": [4, 6, 4], "uv": [0, 16]}] + }, + { + "name": "leg1", + "parent": "body", + "mirror": true, + "pivot": [3, 6, 7], + "cubes": [{"origin": [1, 0, 5], "size": [4, 6, 4], "uv": [0, 16]}] + }, + { + "name": "leg2", + "parent": "body", + "pivot": [-3, 6, -5], + "cubes": [{"origin": [-5, 0, -7], "size": [4, 6, 4], "uv": [0, 16]}] + }, + { + "name": "leg3", + "parent": "body", + "mirror": true, + "pivot": [3, 6, -5], + "cubes": [{"origin": [1, 0, -7], "size": [4, 6, 4], "uv": [0, 16]}] + } + ] + } + }, + "render_controllers": ["controller.render.pig"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 2} + }, + "piglin_brute": { + "identifier": "minecraft:piglin_brute", + "materials": {"default": "piglin_brute"}, + "textures": {"default": "textures/entity/piglin/piglin_brute"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]}, + { + "origin": [-4, 12, -2], + "size": [8, 12, 4], + "uv": [16, 32], + "inflate": 0.25 + } + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-5, 24, -4], + "size": [10, 8, 8], + "uv": [0, 0], + "inflate": -0.02 + }, + {"origin": [-2, 24, -5], "size": [4, 4, 1], "uv": [31, 1]}, + {"origin": [2, 24, -5], "size": [1, 2, 1], "uv": [2, 4]}, + {"origin": [-3, 24, -5], "size": [1, 2, 1], "uv": [2, 0]} + ], + "inflate": -0.02 + }, + { + "name": "leftear", + "parent": "head", + "pivot": [5, 30, 0], + "rotation": [0, 0, -30], + "cubes": [{"origin": [4, 25, -2], "size": [1, 5, 4], "uv": [51, 6]}] + }, + { + "name": "rightear", + "parent": "head", + "pivot": [-5, 30, 0], + "rotation": [0, 0, 30], + "cubes": [ + {"origin": [-5, 25, -2], "size": [1, 5, 4], "uv": [39, 6]} + ] + }, + {"name": "hat", "parent": "head", "pivot": [0, 24, 0]}, + { + "name": "rightarm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]}, + { + "origin": [-8, 12, -2], + "size": [4, 12, 4], + "uv": [40, 32], + "inflate": 0.25 + } + ] + }, + {"name": "rightItem", "parent": "rightarm", "pivot": [-1, -45, -5]}, + { + "name": "leftarm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [32, 48]}, + { + "origin": [4, 12, -2], + "size": [4, 12, 4], + "uv": [48, 48], + "inflate": 0.25 + } + ] + }, + {"name": "leftItem", "parent": "leftArm", "pivot": [1, -45, -5]}, + { + "name": "rightleg", + "parent": "body", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 16]}, + { + "origin": [-4, 0, -2], + "size": [4, 12, 4], + "uv": [0, 32], + "inflate": 0.25 + } + ] + }, + { + "name": "leftleg", + "parent": "body", + "pivot": [1.9, 12, 0], + "cubes": [ + {"origin": [0, 0, -2], "size": [4, 12, 4], "uv": [16, 48]}, + { + "origin": [0, 0, -2], + "size": [4, 12, 4], + "uv": [0, 48], + "inflate": 0.25 + } + ] + } + ], + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 64 + } + }, + "spawn_egg": {"base_color": "#592A10", "overlay_color": "#F9F3A4"}, + "render_controllers": ["controller.render.piglin_brute"], + "enable_attachables": true + }, + "polar_bear": { + "identifier": "minecraft:polar_bear", + "materials": {"default": "polar_bear"}, + "textures": {"default": "textures/entity/bear/polarbear"}, + "geometry": { + "default": { + "visible_bounds_width": 3, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 128, + "textureheight": 64, + "bones": [ + { + "name": "head", + "parent": "body", + "pivot": [0, 14, -16], + "locators": {"lead": [0, 14, -16]}, + "mirror": true, + "cubes": [ + { + "mirror": false, + "origin": [-3.5, 10, -19], + "size": [7, 7, 7], + "uv": [0, 0] + }, + { + "mirror": false, + "origin": [-2.5, 10, -22], + "size": [5, 3, 3], + "uv": [0, 44] + }, + { + "mirror": false, + "origin": [-4.5, 16, -17], + "size": [2, 2, 1], + "uv": [26, 0] + }, + {"origin": [2.5, 16, -17], "size": [2, 2, 1], "uv": [26, 0]} + ] + }, + { + "name": "body", + "pivot": [-2, 15, 12], + "bind_pose_rotation": [90, 0, 0], + "cubes": [ + {"origin": [-7, 14, 5], "size": [14, 14, 11], "uv": [0, 19]}, + {"origin": [-6, 28, 5], "size": [12, 12, 10], "uv": [39, 0]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-4.5, 10, 6], + "cubes": [ + {"origin": [-6.5, 0, 4], "size": [4, 10, 8], "uv": [50, 22]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [4.5, 10, 6], + "cubes": [ + {"origin": [2.5, 0, 4], "size": [4, 10, 8], "uv": [50, 22]} + ] + }, + { + "name": "leg2", + "parent": "body", + "pivot": [-3.5, 10, -8], + "cubes": [ + {"origin": [-5.5, 0, -10], "size": [4, 10, 6], "uv": [50, 40]} + ] + }, + { + "name": "leg3", + "parent": "body", + "pivot": [3.5, 10, -8], + "cubes": [ + {"origin": [1.5, 0, -10], "size": [4, 10, 6], "uv": [50, 40]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.polarbear"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 37} + }, + "pufferfish": { + "identifier": "minecraft:pufferfish", + "min_engine_version": "1.8.0", + "materials": {"default": "pufferfish"}, + "textures": {"default": "textures/entity/fish/pufferfish"}, + "geometry": { + "default": { + "visible_bounds_width": 0.5, + "visible_bounds_height": 0.5, + "texturewidth": 32, + "textureheight": 32, + "bones": [ + { + "name": "body", + "cubes": [ + {"origin": [-1.5, 0, -1.5], "size": [3, 2, 3], "uv": [0, 27]}, + {"origin": [0.5, 2, -1.5], "size": [1, 1, 1], "uv": [24, 6]}, + {"origin": [-1.5, 2, -1.5], "size": [1, 1, 1], "uv": [28, 6]} + ], + "locators": {"lead": [0, 0, 0]} + }, + { + "name": "tailfin", + "parent": "body", + "cubes": [ + {"origin": [-1.5, 1, 1.5], "size": [3, 0, 3], "uv": [-3, 0]} + ] + }, + { + "name": "leftFin", + "parent": "body", + "pivot": [6.5, 5, 0.5], + "cubes": [ + { + "origin": [1.5, 0, -1.5], + "size": [1, 1, 2], + "uv": [25, 0], + "mirror": true + } + ] + }, + { + "name": "rightFin", + "parent": "body", + "pivot": [-6.5, 5, 0.5], + "cubes": [ + {"origin": [-2.5, 0, -1.5], "size": [1, 1, 2], "uv": [25, 0]} + ] + } + ] + }, + "mid": { + "visible_bounds_width": 0.5, + "visible_bounds_height": 0.5, + "texturewidth": 32, + "textureheight": 32, + "bones": [ + { + "name": "body", + "cubes": [ + {"origin": [-2.5, 1, -2.5], "size": [5, 5, 5], "uv": [12, 22]} + ] + }, + { + "name": "leftFin", + "parent": "body", + "pivot": [2.5, 5, 0.5], + "cubes": [ + {"origin": [2.5, 4, -1.5], "size": [2, 1, 2], "uv": [24, 3]} + ] + }, + { + "name": "rightFin", + "parent": "body", + "pivot": [-2.5, 5, 0.5], + "cubes": [ + {"origin": [-4.5, 4, -1.5], "size": [2, 1, 2], "uv": [24, 0]} + ] + }, + { + "name": "spines_top_front", + "parent": "body", + "bind_pose_rotation": [45, 0, 0], + "pivot": [0, 6, -2.5], + "cubes": [ + {"origin": [-2.5, 6, -2.5], "size": [5, 1, 0], "uv": [19, 17]} + ] + }, + { + "name": "spines_top_back", + "parent": "body", + "bind_pose_rotation": [-45, 0, 0], + "pivot": [0, 6, 2.5], + "cubes": [ + {"origin": [-2.5, 6, 2.5], "size": [5, 1, 0], "uv": [11, 17]} + ] + }, + { + "name": "spines_bottom_front", + "parent": "body", + "bind_pose_rotation": [-45, 0, 0], + "pivot": [0, 1, -2.5], + "cubes": [ + {"origin": [-2.5, 0, -2.5], "size": [5, 1, 0], "uv": [18, 20]} + ] + }, + { + "name": "spines_bottom_back", + "parent": "body", + "bind_pose_rotation": [45, 0, 0], + "pivot": [0, 1, 2.5], + "rotation": [45, 0, 0], + "cubes": [ + {"origin": [-2.5, 0, 2.5], "size": [5, 1, 0], "uv": [18, 20]} + ] + }, + { + "name": "spines_left_front", + "parent": "body", + "bind_pose_rotation": [0, 45, 0], + "pivot": [2.5, 0, -2.5], + "rotation": [0, 45, 0], + "cubes": [ + {"origin": [2.5, 1, -2.5], "size": [1, 5, 0], "uv": [1, 17]} + ] + }, + { + "name": "spines_left_back", + "parent": "body", + "bind_pose_rotation": [0, -45, 0], + "pivot": [2.5, 0, 2.5], + "rotation": [0, -45, 0], + "cubes": [ + {"origin": [2.5, 1, 2.5], "size": [1, 5, 0], "uv": [1, 17]} + ] + }, + { + "name": "spines_right_front", + "parent": "body", + "bind_pose_rotation": [0, -45, 0], + "pivot": [-2.5, 0, -2.5], + "rotation": [0, -45, 0], + "cubes": [ + {"origin": [-3.5, 1, -2.5], "size": [1, 5, 0], "uv": [5, 17]} + ] + }, + { + "name": "spines_right_back", + "parent": "body", + "bind_pose_rotation": [0, 45, 0], + "pivot": [-2.5, 0, 2.5], + "rotation": [0, 45, 0], + "cubes": [ + {"origin": [-3.5, 1, 2.5], "size": [1, 5, 0], "uv": [9, 17]} + ] + } + ] + }, + "large": { + "visible_bounds_width": 0.5, + "visible_bounds_height": 0.5, + "texturewidth": 32, + "textureheight": 32, + "bones": [ + { + "name": "body", + "cubes": [{"origin": [-4, 0, -4], "size": [8, 8, 8], "uv": [0, 0]}] + }, + { + "name": "leftFin", + "parent": "body", + "pivot": [4, 7, 1], + "cubes": [ + {"origin": [4, 6, -2.9904], "size": [2, 1, 2], "uv": [24, 3]} + ] + }, + { + "name": "rightFin", + "parent": "body", + "pivot": [-4, 7, 1], + "cubes": [ + {"origin": [-5.9968, 6, -2.992], "size": [2, 1, 2], "uv": [24, 0]} + ] + }, + { + "name": "spines_top_front", + "parent": "body", + "pivot": [-4, 8, -4], + "bind_pose_rotation": [45, 0, 0], + "cubes": [ + {"origin": [-4, 8, -4], "size": [8, 1, 1], "uv": [14, 16]} + ] + }, + { + "name": "spines_top_mid", + "parent": "body", + "pivot": [0, 8, 0], + "cubes": [{"origin": [-4, 8, 0], "size": [8, 1, 1], "uv": [14, 16]}] + }, + { + "name": "spines_top_back", + "parent": "body", + "pivot": [0, 8, 4], + "bind_pose_rotation": [-45, 0, 0], + "cubes": [{"origin": [-4, 8, 4], "size": [8, 1, 1], "uv": [14, 16]}] + }, + { + "name": "spines_bottom_front", + "parent": "body", + "pivot": [0, 0, -4], + "bind_pose_rotation": [-45, 0, 0], + "cubes": [ + {"origin": [-4, -1, -4], "size": [8, 1, 1], "uv": [14, 19]} + ] + }, + { + "name": "spines_bottom_mid", + "parent": "body", + "pivot": [0, -1, 0], + "cubes": [ + {"origin": [-4, -1, 0], "size": [8, 1, 1], "uv": [14, 19]} + ] + }, + { + "name": "spines_bottom_back", + "parent": "body", + "pivot": [0, 0, 4], + "bind_pose_rotation": [45, 0, 0], + "cubes": [ + {"origin": [-4, -1, 4], "size": [8, 1, 1], "uv": [14, 19]} + ] + }, + { + "name": "spines_left_front", + "parent": "body", + "pivot": [4, 0, -4], + "bind_pose_rotation": [0, 45, 0], + "cubes": [{"origin": [4, 0, -4], "size": [1, 8, 1], "uv": [0, 16]}] + }, + { + "name": "spines_left_mid", + "parent": "body", + "pivot": [4, 0, 0], + "cubes": [ + { + "origin": [4, 0, 0], + "size": [1, 8, 1], + "uv": [4, 16], + "mirror": true + } + ] + }, + { + "name": "spines_left_back", + "parent": "body", + "pivot": [4, 0, 4], + "bind_pose_rotation": [0, -45, 0], + "cubes": [ + { + "origin": [4, 0, 4], + "size": [1, 8, 1], + "uv": [8, 16], + "mirror": true + } + ] + }, + { + "name": "spines_right_front", + "parent": "body", + "pivot": [-4, 0, -4], + "bind_pose_rotation": [0, -45, 0], + "cubes": [{"origin": [-5, 0, -4], "size": [1, 8, 1], "uv": [4, 16]}] + }, + { + "name": "spines_right_mid", + "parent": "body", + "pivot": [-4, 0, 0], + "cubes": [{"origin": [-5, 0, 0], "size": [1, 8, 1], "uv": [8, 16]}] + }, + { + "name": "spines_right_back", + "parent": "body", + "pivot": [-4, 0, 4], + "bind_pose_rotation": [0, 45, 0], + "cubes": [{"origin": [-5, 0, 4], "size": [1, 8, 1], "uv": [8, 16]}] + } + ] + } + }, + "render_controllers": [ + {"controller.render.pufferfish.small": "query.variant == 0"}, + {"controller.render.pufferfish.medium": "query.variant == 1"}, + {"controller.render.pufferfish.large": "query.variant == 2"} + ], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 46} + }, + "rabbit": { + "identifier": "minecraft:rabbit", + "min_engine_version": "1.8.0", + "materials": {"default": "rabbit"}, + "textures": { + "brown": "textures/entity/rabbit/brown", + "white": "textures/entity/rabbit/white", + "black": "textures/entity/rabbit/black", + "white_splotched": "textures/entity/rabbit/white_splotched", + "gold": "textures/entity/rabbit/gold", + "salt": "textures/entity/rabbit/salt", + "toast": "textures/entity/rabbit/toast" + }, + "geometry": { + "default": { + "visible_bounds_width": 1, + "visible_bounds_height": 1, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "rearFootLeft", + "pivot": [3, 6.5, 3.7], + "mirror": true, + "parent": "body", + "cubes": [{"origin": [2, 0, 0], "size": [2, 1, 7], "uv": [8, 24]}] + }, + { + "name": "rearFootRight", + "pivot": [-3, 6.5, 3.7], + "mirror": true, + "parent": "body", + "cubes": [{"origin": [-4, 0, 0], "size": [2, 1, 7], "uv": [26, 24]}] + }, + { + "name": "haunchLeft", + "pivot": [3, 6.5, 3.7], + "bind_pose_rotation": [-20, 0, 0], + "mirror": true, + "parent": "body", + "cubes": [ + {"origin": [2, 2.5, 3.7], "size": [2, 4, 5], "uv": [16, 15]} + ] + }, + { + "name": "haunchRight", + "pivot": [-3, 6.5, 3.7], + "bind_pose_rotation": [-20, 0, 0], + "mirror": true, + "parent": "body", + "cubes": [ + {"origin": [-4, 2.5, 3.7], "size": [2, 4, 5], "uv": [30, 15]} + ] + }, + { + "name": "body", + "pivot": [0, 5, 8], + "bind_pose_rotation": [-20, 0, 0], + "mirror": true, + "cubes": [{"origin": [-3, 2, -2], "size": [6, 5, 10], "uv": [0, 0]}] + }, + { + "name": "frontLegLeft", + "pivot": [3, 7, -1], + "bind_pose_rotation": [-10, 0, 0], + "mirror": true, + "parent": "body", + "cubes": [{"origin": [2, 0, -2], "size": [2, 7, 2], "uv": [8, 15]}] + }, + { + "name": "frontLegRight", + "pivot": [-3, 7, -1], + "bind_pose_rotation": [-10, 0, 0], + "mirror": true, + "parent": "body", + "cubes": [{"origin": [-4, 0, -2], "size": [2, 7, 2], "uv": [0, 15]}] + }, + { + "name": "head", + "pivot": [0, 8, -1], + "locators": {"lead": [0, 8, -1]}, + "mirror": true, + "parent": "body", + "cubes": [ + {"origin": [-2.5, 8, -6], "size": [5, 4, 5], "uv": [32, 0]} + ] + }, + { + "name": "earRight", + "pivot": [0, 8, -1], + "bind_pose_rotation": [0, -15, 0], + "mirror": true, + "parent": "body", + "cubes": [ + {"origin": [-2.5, 12, -2], "size": [2, 5, 1], "uv": [58, 0]} + ] + }, + { + "name": "earLeft", + "pivot": [0, 8, -1], + "bind_pose_rotation": [0, 15, 0], + "mirror": true, + "parent": "body", + "cubes": [ + {"origin": [0.5, 12, -2], "size": [2, 5, 1], "uv": [52, 0]} + ] + }, + { + "name": "tail", + "pivot": [0, 4, 7], + "bind_pose_rotation": [-20, 0, 0], + "mirror": true, + "parent": "body", + "cubes": [ + {"origin": [-1.5, 2.5, 7], "size": [3, 3, 2], "uv": [52, 6]} + ] + }, + { + "name": "nose", + "pivot": [0, 8, -1], + "mirror": true, + "parent": "body", + "cubes": [ + {"origin": [-0.5, 9.5, -6.5], "size": [1, 1, 1], "uv": [32, 9]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.rabbit"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 24} + }, + "ravager": { + "identifier": "minecraft:ravager", + "textures": {"default": "textures/entity/illager/ravager"}, + "materials": {"default": "ravager"}, + "geometry": { + "default": { + "bones": [ + { + "pivot": [0, 19, 2], + "rotation": [90, 0, 0], + "cubes": [ + {"origin": [-7, 10, -2], "size": [14, 16, 20], "uv": [0, 55]}, + {"origin": [-6, -3, -2], "size": [12, 13, 18], "uv": [0, 91]} + ], + "name": "body" + }, + { + "pivot": [0, 15, -10], + "cubes": [ + {"origin": [-8, 13, -24], "size": [16, 3, 16], "uv": [0, 36]} + ], + "name": "mouth", + "parent": "head" + }, + { + "pivot": [0, 20, -20], + "cubes": [ + {"origin": [-5, 21, -10], "size": [10, 10, 18], "uv": [68, 73]} + ], + "name": "neck" + }, + { + "locators": {"stun": [0, 32, -15]}, + "pivot": [0, 28, -10], + "cubes": [ + {"origin": [-8, 14, -24], "size": [16, 20, 16], "uv": [0, 0]}, + {"origin": [-2, 12, -28], "size": [4, 8, 4], "uv": [0, 0]} + ], + "name": "head", + "parent": "neck" + }, + { + "pivot": [-12, 30, 22], + "cubes": [ + {"origin": [-12, 0, 17], "size": [8, 37, 8], "uv": [96, 0]} + ], + "name": "leg0" + }, + { + "pivot": [4, 30, 22], + "cubes": [ + {"origin": [4, 0, 17], "size": [8, 37, 8], "uv": [96, 0]} + ], + "name": "leg1" + }, + { + "pivot": [-4, 26, -4], + "cubes": [ + {"origin": [-12, 0, -8], "size": [8, 37, 8], "uv": [64, 0]} + ], + "name": "leg2" + }, + { + "pivot": [-4, 26, -4], + "cubes": [ + {"origin": [4, 0, -8], "size": [8, 37, 8], "uv": [64, 0]} + ], + "name": "leg3" + }, + { + "pivot": [-5, 27, -19], + "rotation": [60, 0, 0], + "cubes": [ + {"origin": [-10, 27, -20], "size": [2, 14, 4], "uv": [74, 55]}, + {"origin": [8, 27, -20], "size": [2, 14, 4], "uv": [74, 55]} + ], + "name": "horns", + "parent": "head" + } + ], + "texturewidth": 128, + "textureheight": 128, + "visible_bounds_width": 4, + "visible_bounds_height": 3.5, + "visible_bounds_offset": [0, 1.25, 0] + } + }, + "render_controllers": ["controller.render.ravager"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 57}, + "particle_effects": {"stun_particles": "minecraft:stunned_emitter"} + }, + "salmon": { + "identifier": "minecraft:salmon", + "materials": {"default": "salmon"}, + "textures": {"default": "textures/entity/fish/salmon"}, + "geometry": { + "default": { + "visible_bounds_width": 0.5, + "visible_bounds_height": 0.5, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 32, + "textureheight": 32, + "bones": [ + { + "name": "body_front", + "pivot": [0, 0, -4], + "cubes": [ + {"origin": [-1.5, 3.5, -4], "size": [3, 5, 8], "uv": [0, 0]} + ] + }, + { + "name": "body_back", + "parent": "body_front", + "pivot": [0, 0, 4], + "cubes": [ + {"origin": [-1.5, 3.5, 4], "size": [3, 5, 8], "uv": [0, 13]} + ] + }, + { + "name": "dorsal_front", + "parent": "body_front", + "pivot": [0, 5, 2], + "cubes": [{"origin": [0, 8.5, 2], "size": [0, 2, 2], "uv": [4, 2]}] + }, + { + "name": "dorsal_back", + "parent": "body_back", + "pivot": [0, 5, 4], + "cubes": [{"origin": [0, 8.5, 4], "size": [0, 2, 3], "uv": [2, 3]}] + }, + { + "name": "tailfin", + "parent": "body_back", + "pivot": [0, 0, 12], + "cubes": [ + {"origin": [0, 3.5, 12], "size": [0, 5, 6], "uv": [20, 10]} + ] + }, + { + "name": "head", + "parent": "body_front", + "pivot": [0, 3, -4], + "locators": {"lead": [0, 3, -4]}, + "cubes": [ + {"origin": [-1, 4.5, -7], "size": [2, 4, 3], "uv": [22, 0]} + ] + }, + { + "name": "leftFin", + "parent": "body_front", + "pivot": [1.5, 1, -4], + "rotation": [0, 0, 35], + "cubes": [ + { + "origin": [-0.50752, 3.86703, -4], + "size": [2, 0, 2], + "uv": [2, 0] + } + ] + }, + { + "name": "rightFin", + "parent": "body_front", + "pivot": [-1.5, 1, -4], + "rotation": [0, 0, -35], + "cubes": [ + { + "origin": [-1.49258, 3.86703, -4], + "size": [2, 0, 2], + "uv": [-2, 0] + } + ] + } + ] + } + }, + "render_controllers": ["controller.render.salmon"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 47} + }, + "shulker_bullet": { + "identifier": "minecraft:shulker_bullet", + "materials": {"default": "shulker_bullet"}, + "textures": {"default": "textures/entity/shulker/spark"}, + "geometry": { + "default": { + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-4, -4, -1], "size": [8, 8, 2], "uv": [0, 0]}, + {"origin": [-1, -4, -4], "size": [2, 8, 8], "uv": [0, 10]}, + {"origin": [-4, -1, -4], "size": [8, 2, 8], "uv": [20, 0]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.shulker_bullet"] + }, + "silverfish": { + "identifier": "minecraft:silverfish", + "materials": {"default": "silverfish", "body_layer": "silverfish_layers"}, + "textures": {"default": "textures/entity/silverfish"}, + "geometry": { + "default": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 1, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "bodyPart_0", + "parent": "bodyPart_2", + "pivot": [0, 2, -3.5], + "cubes": [ + {"origin": [-1.5, 0, -4.5], "size": [3, 2, 2], "uv": [0, 0]} + ] + }, + { + "name": "bodyPart_1", + "parent": "bodyPart_2", + "pivot": [0, 3, -1.5], + "cubes": [ + {"origin": [-2, 0, -2.5], "size": [4, 3, 2], "uv": [0, 4]} + ] + }, + { + "name": "bodyPart_2", + "pivot": [0, 4, 1], + "cubes": [ + {"origin": [-3, 0, -0.5], "size": [6, 4, 3], "uv": [0, 9]} + ] + }, + { + "name": "bodyPart_3", + "parent": "bodyPart_2", + "pivot": [0, 3, 4], + "cubes": [ + {"origin": [-1.5, 0, 2.5], "size": [3, 3, 3], "uv": [0, 16]} + ] + }, + { + "name": "bodyPart_4", + "parent": "bodyPart_2", + "pivot": [0, 2, 7], + "cubes": [ + {"origin": [-1, 0, 5.5], "size": [2, 2, 3], "uv": [0, 22]} + ] + }, + { + "name": "bodyPart_5", + "parent": "bodyPart_2", + "pivot": [0, 1, 9.5], + "cubes": [ + {"origin": [-1, 0, 8.5], "size": [2, 1, 2], "uv": [11, 0]} + ] + }, + { + "name": "bodyPart_6", + "parent": "bodyPart_2", + "pivot": [0, 1, 11.5], + "cubes": [ + {"origin": [-0.5, 0, 10.5], "size": [1, 1, 2], "uv": [13, 4]} + ] + }, + { + "name": "bodyLayer_0", + "parent": "bodyPart_2", + "pivot": [0, 8, 1], + "cubes": [ + {"origin": [-5, 0, -0.5], "size": [10, 8, 3], "uv": [20, 0]} + ] + }, + { + "name": "bodyLayer_1", + "parent": "bodyPart_4", + "pivot": [0, 4, 7], + "cubes": [ + {"origin": [-3, 0, 5.5], "size": [6, 4, 3], "uv": [20, 11]} + ] + }, + { + "name": "bodyLayer_2", + "parent": "bodyPart_1", + "pivot": [0, 5, -1.5], + "cubes": [ + {"origin": [-3, 0, -3], "size": [6, 5, 2], "uv": [20, 18]} + ] + } + ] + } + }, + "render_controllers": ["controller.render.silverfish"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 8} + }, + "skeleton": { + "identifier": "minecraft:skeleton", + "min_engine_version": "1.8.0", + "materials": {"default": "skeleton"}, + "textures": {"default": "textures/entity/skeleton/skeleton"}, + "geometry": { + "default": { + "texturewidth": 64, + "textureheight": 32, + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ], + "parent": "waist" + }, + {"name": "waist", "pivot": [0, 12, 0]}, + { + "name": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "parent": "body" + }, + { + "name": "hat", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 0.5 + } + ], + "neverRender": true, + "parent": "head" + }, + { + "name": "rightArm", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-6, 12, -1], "size": [2, 12, 2], "uv": [40, 16]} + ], + "parent": "body" + }, + { + "name": "rightItem", + "pivot": [-1, -45, -5], + "neverRender": true, + "parent": "rightArm" + }, + { + "name": "leftArm", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -1], "size": [2, 12, 2], "uv": [40, 16]} + ], + "mirror": true, + "parent": "body" + }, + { + "name": "leftItem", + "pivot": [1, -45, -5], + "neverRender": true, + "parent": "leftArm" + }, + { + "name": "rightLeg", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-3, 0, -1], "size": [2, 12, 2], "uv": [0, 16]} + ], + "parent": "body" + }, + { + "name": "leftLeg", + "pivot": [2, 12, 0], + "cubes": [ + {"origin": [1, 0, -1], "size": [2, 12, 2], "uv": [0, 16]} + ], + "mirror": true, + "parent": "body" + } + ] + } + }, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 9}, + "render_controllers": ["controller.render.skeleton"], + "enable_attachables": true + }, + "skeleton_horse": { + "identifier": "minecraft:skeleton_horse", + "textures": { + "base_brown": "textures/entity/horse/horse_brown", + "base_white": "textures/entity/horse/horse_white", + "base_chestnut": "textures/entity/horse/horse_chestnut", + "base_creamy": "textures/entity/horse/horse_creamy", + "base_black": "textures/entity/horse/horse_black", + "base_gray": "textures/entity/horse/horse_gray", + "base_darkbrown": "textures/entity/horse/horse_darkbrown", + "markings_none": "textures/entity/horse/horse_markings_none", + "markings_white": "textures/entity/horse/horse_markings_white", + "markings_whitefield": "textures/entity/horse/horse_markings_whitefield", + "markings_whitedots": "textures/entity/horse/horse_markings_whitedots", + "markings_blackdots": "textures/entity/horse/horse_markings_blackdots", + "mule": "textures/entity/horse/mule", + "donkey": "textures/entity/horse/donkey", + "skeleton": "textures/entity/horse/horse_skeleton", + "zombie": "textures/entity/horse/horse_zombie", + "armor_none": "textures/entity/horse/armor/horse_armor_none", + "armor_leather": "textures/entity/horse/armor/horse_armor_leather", + "armor_iron": "textures/entity/horse/armor/horse_armor_iron", + "armor_gold": "textures/entity/horse/armor/horse_armor_gold", + "armor_diamond": "textures/entity/horse/armor/horse_armor_diamond" + }, + "geometry": { + "default": { + "visible_bounds_width": 2, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 128, + "textureheight": 128, + "bones": [ + { + "name": "Body", + "pivot": [0, 13, 9], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5, 11, -10], "size": [10, 10, 24], "uv": [0, 34]} + ] + }, + { + "name": "TailA", + "pivot": [0, 21, 14], + "rotation": [-65, 0, 0], + "cubes": [ + {"origin": [-1, 20, 14], "size": [2, 2, 3], "uv": [44, 0]} + ] + }, + { + "name": "TailB", + "pivot": [0, 21, 14], + "rotation": [-65, 0, 0], + "cubes": [ + {"origin": [-1.5, 19, 17], "size": [3, 4, 7], "uv": [38, 7]} + ] + }, + { + "name": "TailC", + "pivot": [0, 21, 14], + "rotation": [-80.34, 0, 0], + "cubes": [ + {"origin": [-1.5, 21.5, 23], "size": [3, 4, 7], "uv": [24, 3]} + ] + }, + { + "name": "Leg1A", + "pivot": [4, 15, 11], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [1.5, 8, 8.5], "size": [4, 9, 5], "uv": [78, 29]} + ] + }, + { + "name": "Leg1B", + "pivot": [4, 8, 11], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [2, 3, 9.5], "size": [3, 5, 3], "uv": [78, 43]} + ] + }, + { + "name": "Leg1C", + "pivot": [4, 8, 11], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [1.5, -0.1, 9], "size": [4, 3, 4], "uv": [78, 51]} + ] + }, + { + "name": "Leg2A", + "pivot": [-4, 15, 11], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5.5, 8, 8.5], "size": [4, 9, 5], "uv": [96, 29]} + ] + }, + { + "name": "Leg2B", + "pivot": [-4, 8, 11], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5, 3, 9.5], "size": [3, 5, 3], "uv": [96, 43]} + ] + }, + { + "name": "Leg2C", + "pivot": [-4, 8, 11], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5.5, -0.1, 9], "size": [4, 3, 4], "uv": [96, 51]} + ] + }, + { + "name": "Leg3A", + "pivot": [4, 15, -8], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [2.1, 8, -10.1], "size": [3, 8, 4], "uv": [44, 29]} + ] + }, + { + "name": "Leg3B", + "pivot": [4, 8, -8], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [2.1, 3, -9.6], "size": [3, 5, 3], "uv": [44, 41]} + ] + }, + { + "name": "Leg3C", + "pivot": [4, 8, -8], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [1.6, -0.1, -10.1], "size": [4, 3, 4], "uv": [44, 51]} + ] + }, + { + "name": "Leg4A", + "pivot": [-4, 15, -8], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5.1, 8, -10.1], "size": [3, 8, 4], "uv": [60, 29]} + ] + }, + { + "name": "Leg4B", + "pivot": [-4, 8, -8], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5.1, 3, -9.6], "size": [3, 5, 3], "uv": [60, 41]} + ] + }, + { + "name": "Leg4C", + "pivot": [-4, 8, -8], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5.6, -0.1, -10.1], "size": [4, 3, 4], "uv": [60, 51]} + ] + }, + { + "name": "Head", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.5, 25, -11.5], "size": [5, 5, 7], "uv": [0, 0]} + ] + }, + { + "name": "UMouth", + "pivot": [0, 20.05, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2, 27.05, -17], "size": [4, 3, 6], "uv": [24, 18]} + ] + }, + { + "name": "LMouth", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2, 25, -16.5], "size": [4, 2, 5], "uv": [24, 27]} + ] + }, + { + "name": "Ear1", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [0.45, 29, -6], "size": [2, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "Ear2", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.45, 29, -6], "size": [2, 3, 1], "uv": [0, 0]} + ] + }, + { + "name": "MuleEarL", + "pivot": [0, 20, -10], + "rotation": [30, 0, 15], + "cubes": [ + {"origin": [-2, 29, -6], "size": [2, 7, 1], "uv": [0, 12]} + ] + }, + { + "name": "MuleEarR", + "pivot": [0, 20, -10], + "rotation": [30, 0, -15], + "cubes": [{"origin": [0, 29, -6], "size": [2, 7, 1], "uv": [0, 12]}] + }, + { + "name": "Neck", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.05, 15.8, -12], "size": [4, 14, 8], "uv": [0, 12]} + ] + }, + { + "name": "Bag1", + "pivot": [-7.5, 21, 10], + "rotation": [0, 90, 0], + "cubes": [ + {"origin": [-10.5, 13, 10], "size": [8, 8, 3], "uv": [0, 34]} + ] + }, + { + "name": "Bag2", + "pivot": [4.5, 21, 10], + "rotation": [0, 90, 0], + "cubes": [ + {"origin": [1.5, 13, 10], "size": [8, 8, 3], "uv": [0, 47]} + ] + }, + { + "name": "Saddle", + "pivot": [0, 22, 2], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5, 21, -1], "size": [10, 1, 8], "uv": [80, 0]} + ] + }, + { + "name": "SaddleB", + "pivot": [0, 22, 2], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-1.5, 22, -1], "size": [3, 1, 2], "uv": [106, 9]} + ] + }, + { + "name": "SaddleC", + "pivot": [0, 22, 2], + "rotation": [0, 0, 0], + "cubes": [{"origin": [-4, 22, 5], "size": [8, 1, 2], "uv": [80, 9]}] + }, + { + "name": "SaddleL2", + "pivot": [5, 21, 2], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [4.5, 13, 1], "size": [1, 2, 2], "uv": [74, 0]} + ] + }, + { + "name": "SaddleL", + "pivot": [5, 21, 2], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [4.5, 15, 1.5], "size": [1, 6, 1], "uv": [70, 0]} + ] + }, + { + "name": "SaddleR2", + "pivot": [-5, 21, 2], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5.5, 13, 1], "size": [1, 2, 2], "uv": [74, 4]} + ] + }, + { + "name": "SaddleR", + "pivot": [-5, 21, 2], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-5.5, 15, 1.5], "size": [1, 6, 1], "uv": [80, 0]} + ] + }, + { + "name": "SaddleMouthL", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [1.5, 26, -14], "size": [1, 2, 2], "uv": [74, 13]} + ] + }, + { + "name": "SaddleMouthR", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-2.5, 26, -14], "size": [1, 2, 2], "uv": [74, 13]} + ] + }, + { + "name": "SaddleMouthLine", + "pivot": [0, 20, -10], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [2.6, 23, -16], "size": [0, 3, 16], "uv": [44, 10]} + ] + }, + { + "name": "SaddleMouthLineR", + "pivot": [0, 20, -10], + "rotation": [0, 0, 0], + "cubes": [ + {"origin": [-2.6, 23, -16], "size": [0, 3, 16], "uv": [44, 5]} + ] + }, + { + "name": "Mane", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + {"origin": [-1, 15.5, -5], "size": [2, 16, 4], "uv": [58, 0]} + ] + }, + { + "name": "HeadSaddle", + "pivot": [0, 20, -10], + "rotation": [30, 0, 0], + "cubes": [ + { + "origin": [-2.5, 25.1, -17], + "size": [5, 5, 12], + "uv": [80, 12], + "inflate": 0.05 + } + ] + } + ] + } + }, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 32} + }, + "slime": { + "identifier": "minecraft:slime", + "materials": {"default": "slime", "outer": "slime_outer"}, + "textures": {"default": "textures/entity/slime/slime"}, + "geometry": { + "default": { + "visible_bounds_width": 5, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "cube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-3, 1, -3], "size": [6, 6, 6], "uv": [0, 16]}] + }, + { + "name": "eye0", + "parent": "cube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-3.3, 4, -3.5], "size": [2, 2, 2], "uv": [32, 0]} + ] + }, + { + "name": "eye1", + "parent": "cube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [1.3, 4, -3.5], "size": [2, 2, 2], "uv": [32, 4]} + ] + }, + { + "name": "mouth", + "parent": "cube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [0, 2, -3.5], "size": [1, 1, 1], "uv": [32, 8]} + ] + } + ] + }, + "armor": { + "visible_bounds_width": 1, + "visible_bounds_height": 1, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "cube", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 0, -4], "size": [8, 8, 8], "uv": [0, 0]}] + }, + { + "name": "eye0", + "parent": "cube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-3.3, 4, -3.5], "size": [2, 2, 2], "uv": [32, 0]} + ] + }, + { + "name": "eye1", + "parent": "cube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [1.3, 4, -3.5], "size": [2, 2, 2], "uv": [32, 4]} + ] + }, + { + "name": "mouth", + "parent": "cube", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [0, 2, -3.5], "size": [1, 1, 1], "uv": [32, 8]} + ] + } + ] + } + }, + "render_controllers": [ + "controller.render.slime", + "controller.render.slime_armor" + ], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 10} + }, + "small_fireball": { + "identifier": "minecraft:small_fireball", + "materials": {"default": "fireball"}, + "textures": {"default": "textures/items/fire_charge"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -4, 0], + "size": [16, 16, 0], + "uv": {"south": {"uv": [0, 0]}} + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.fireball"] + }, + "snow_golem": { + "identifier": "minecraft:snow_golem", + "min_engine_version": "1.8.0", + "materials": {"default": "snow_golem", "head": "snow_golem_pumpkin"}, + "textures": {"default": "textures/entity/snow_golem"}, + "geometry": { + "default": { + "visible_bounds_width": 1, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "bones": [ + { + "name": "head", + "parent": "piece1", + "pivot": [0, 20, 0], + "locators": {"lead": [0, 20, 0]}, + "cubes": [ + { + "origin": [-4, 20, -4], + "size": [8, 8, 8], + "uv": [0, 0], + "inflate": -0.5 + } + ] + }, + { + "name": "arm1", + "parent": "piece1", + "pivot": [0, 18, 0], + "bind_pose_rotation": [0, 0, 57.3], + "cubes": [ + { + "origin": [1, 20, -1], + "size": [12, 2, 2], + "uv": [32, 0], + "inflate": -0.5 + } + ] + }, + { + "name": "arm2", + "parent": "piece1", + "pivot": [0, 18, 0], + "bind_pose_rotation": [0, 180, -57.3], + "cubes": [ + { + "origin": [1, 20, -1], + "size": [12, 2, 2], + "uv": [32, 0], + "inflate": -0.5 + } + ] + }, + { + "name": "piece1", + "parent": "piece2", + "pivot": [0, 11, 0], + "cubes": [ + { + "origin": [-5, 11, -5], + "size": [10, 10, 10], + "uv": [0, 16], + "inflate": -0.5 + } + ] + }, + { + "name": "piece2", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-6, 0, -6], + "size": [12, 12, 12], + "uv": [0, 36], + "inflate": -0.5 + } + ] + } + ] + } + }, + "render_controllers": ["controller.render.snowgolem"] + }, + "snowball": { + "identifier": "minecraft:snowball", + "materials": {"default": "snowball"}, + "textures": {"default": "textures/items/snowball"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -8, 0], + "size": [16, 16, 0], + "uv": [0, 0], + "rotation": [0, 0, 0] + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.item_sprite"] + }, + "potion": { + "identifier": "minecraft:splash_potion", + "materials": {"default": "splash_potion_enchanted"}, + "textures": { + "moveSlowdown": "textures/items/potion_bottle_splash_moveSlowdown", + "moveSpeed": "textures/items/potion_bottle_splash_moveSpeed", + "digSlowdown": "textures/items/potion_bottle_splash_digSlowdown", + "digSpeed": "textures/items/potion_bottle_splash_digSpeed", + "damageBoost": "textures/items/potion_bottle_splash_damageBoost", + "heal": "textures/items/potion_bottle_splash_heal", + "harm": "textures/items/potion_bottle_splash_harm", + "jump": "textures/items/potion_bottle_splash_jump", + "confusion": "textures/items/potion_bottle_splash_confusion", + "regeneration": "textures/items/potion_bottle_splash_regeneration", + "resistance": "textures/items/potion_bottle_splash_resistance", + "fireResistance": "textures/items/potion_bottle_splash_fireResistance", + "waterBreathing": "textures/items/potion_bottle_splash_waterBreathing", + "invisibility": "textures/items/potion_bottle_splash_invisibility", + "blindness": "textures/items/potion_bottle_splash_blindness", + "nightVision": "textures/items/potion_bottle_splash_nightVision", + "hunger": "textures/items/potion_bottle_splash_hunger", + "weakness": "textures/items/potion_bottle_splash_weakness", + "poison": "textures/items/potion_bottle_splash_poison", + "wither": "textures/items/potion_bottle_splash_wither", + "healthBoost": "textures/items/potion_bottle_splash_healthBoost", + "absorption": "textures/items/potion_bottle_splash_absorption", + "saturation": "textures/items/potion_bottle_splash_saturation", + "levitation": "textures/items/potion_bottle_splash_levitation", + "turtleMaster": "textures/items/potion_bottle_splash_turtleMaster", + "slowFall": "textures/items/potion_bottle_splash_slowFall", + "default": "textures/items/potion_bottle_splash", + "enchanted": "textures/misc/enchanted_item_glint" + }, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, -8, 0], + "size": [16, 16, 0], + "uv": [0, 0], + "rotation": [0, 0, 0] + } + ] + } + ], + "texturewidth": 16, + "textureheight": 16 + } + }, + "render_controllers": ["controller.render.splash_potion"] + }, + "squid": { + "identifier": "minecraft:squid", + "materials": {"default": "squid"}, + "textures": {"default": "textures/entity/squid"}, + "geometry": { + "default": { + "visible_bounds_width": 3, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 0.5, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "cubes": [ + {"origin": [-6, -8, -6], "size": [12, 16, 12], "uv": [0, 0]} + ] + }, + { + "name": "tentacle1", + "parent": "body", + "pivot": [5, -7, 0], + "cubes": [ + {"origin": [4, -25, -1], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, 90, 0] + }, + { + "name": "tentacle2", + "parent": "body", + "pivot": [3.5, -7, 3.5], + "cubes": [ + {"origin": [2.5, -25, 2.5], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, 45, 0] + }, + { + "name": "tentacle3", + "parent": "body", + "pivot": [0, -7, 5], + "cubes": [ + {"origin": [-1, -25, 4], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, 0, 0] + }, + { + "name": "tentacle4", + "parent": "body", + "pivot": [-3.5, -7, 3.5], + "cubes": [ + {"origin": [-4.5, -25, 2.5], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, -45, 0] + }, + { + "name": "tentacle5", + "parent": "body", + "pivot": [-5, -7, 0], + "cubes": [ + {"origin": [-6, -25, -1], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, -90, 0] + }, + { + "name": "tentacle6", + "parent": "body", + "pivot": [-3.5, -7, -3.5], + "cubes": [ + {"origin": [-4.5, -25, -4.5], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, -135, 0] + }, + { + "name": "tentacle7", + "parent": "body", + "pivot": [0, -7, -5], + "cubes": [ + {"origin": [-1, -25, -6], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, -180, 0] + }, + { + "name": "tentacle8", + "parent": "body", + "pivot": [3.5, -7, -3.5], + "cubes": [ + {"origin": [2.5, -25, -4.5], "size": [2, 18, 2], "uv": [48, 0]} + ], + "rotation": [0, -225, 0] + } + ] + } + }, + "render_controllers": ["controller.render.squid"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 15} + }, + "stray": { + "identifier": "minecraft:stray", + "min_engine_version": "1.8.0", + "materials": {"default": "stray", "overlay": "stray_clothes"}, + "textures": { + "default": "textures/entity/skeleton/stray", + "overlay": "textures/entity/skeleton/stray_overlay" + }, + "geometry": { + "default": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ], + "parent": "waist" + }, + {"name": "waist", "pivot": [0, 12, 0]}, + { + "name": "head", + "pivot": [0, 24, 0], + "locators": {"lead": [0, 24, 0]}, + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "parent": "body" + }, + { + "name": "hat", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 0.5 + } + ], + "neverRender": true, + "parent": "head" + }, + { + "name": "rightArm", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-6, 12, -1], "size": [2, 12, 2], "uv": [40, 16]} + ], + "parent": "body" + }, + { + "name": "rightItem", + "pivot": [-1, -45, -5], + "neverRender": true, + "parent": "rightArm" + }, + { + "name": "leftArm", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -1], "size": [2, 12, 2], "uv": [40, 16]} + ], + "mirror": true, + "parent": "body" + }, + { + "name": "leftItem", + "pivot": [1, -45, -5], + "neverRender": true, + "parent": "leftArm" + }, + { + "name": "rightLeg", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-3, 0, -1], "size": [2, 12, 2], "uv": [0, 16]} + ], + "parent": "body" + }, + { + "name": "leftLeg", + "pivot": [2, 12, 0], + "cubes": [ + {"origin": [1, 0, -1], "size": [2, 12, 2], "uv": [0, 16]} + ], + "mirror": true, + "parent": "body" + } + ] + }, + "overlay": { + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "parent": "waist", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ], + "inflate": 0.25 + }, + {"name": "waist", "neverRender": true, "pivot": [0, 12, 0]}, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "inflate": 0.25 + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 0.5 + } + ], + "neverRender": true + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ], + "inflate": 0.25 + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-6, 15, 1], + "neverRender": true + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ], + "mirror": true, + "inflate": 0.25 + }, + { + "name": "rightLeg", + "parent": "body", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ], + "inflate": 0.25 + }, + { + "name": "leftLeg", + "parent": "body", + "pivot": [1.9, 12, 0], + "cubes": [ + {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ], + "inflate": 0.25, + "mirror": true + } + ] + } + }, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 27}, + "render_controllers": [ + "controller.render.stray_clothes", + "controller.render.stray" + ], + "enable_attachables": true + }, + "strider": { + "identifier": "minecraft:strider", + "materials": {"default": "strider"}, + "textures": { + "default": "textures/entity/strider/strider", + "saddled": "textures/entity/strider/strider", + "suffocated": "textures/entity/strider/strider_cold", + "suffocated_saddled": "textures/entity/strider/strider_cold" + }, + "geometry": { + "default": { + "bones": [ + { + "name": "right_leg", + "pivot": [-4, 16, 0], + "cubes": [ + {"origin": [-6, 0, -2], "size": [4, 16, 4], "uv": [0, 32]} + ] + }, + { + "name": "left_leg", + "pivot": [4, 16, 0], + "cubes": [{"origin": [2, 0, -2], "size": [4, 16, 4], "uv": [0, 55]}] + }, + { + "name": "body", + "pivot": [0, 16, 0], + "cubes": [ + {"origin": [-8, 14, -8], "size": [16, 14, 16], "uv": [0, 0]} + ], + "locators": {"lead": [0, 15, -1]} + }, + { + "name": "bristle5", + "parent": "body", + "pivot": [8, 19, 0], + "cubes": [ + { + "origin": [8, 19, -8], + "size": [12, 0, 16], + "pivot": [8, 19, 0], + "rotation": [0, 0, 70], + "uv": [16, 65] + } + ] + }, + { + "name": "bristle4", + "parent": "body", + "pivot": [8, 24, 0], + "cubes": [ + { + "origin": [8, 24, -8], + "size": [12, 0, 16], + "pivot": [8, 24, 0], + "rotation": [0, 0, 65], + "uv": [16, 49] + } + ] + }, + { + "name": "bristle3", + "parent": "body", + "pivot": [8, 28, 0], + "cubes": [ + { + "origin": [8, 28, -8], + "size": [12, 0, 16], + "pivot": [8, 28, 0], + "rotation": [0, 0, 50], + "uv": [16, 33] + } + ] + }, + { + "name": "bristle2", + "parent": "body", + "pivot": [-8, 28, 0], + "cubes": [ + { + "origin": [-20, 28, -8], + "size": [12, 0, 16], + "pivot": [-8, 28, 0], + "rotation": [0, 0, -50], + "uv": [16, 33], + "mirror": true + } + ] + }, + { + "name": "bristle1", + "parent": "body", + "pivot": [-8, 24, 0], + "cubes": [ + { + "origin": [-20, 24, -8], + "size": [12, 0, 16], + "pivot": [-8, 24, 0], + "rotation": [0, 0, -65], + "uv": [16, 49], + "mirror": true + } + ] + }, + { + "name": "bristle0", + "parent": "body", + "pivot": [-8, 19, 0], + "cubes": [ + { + "origin": [-20, 19, -8], + "size": [12, 0, 16], + "pivot": [-8, 19, 0], + "rotation": [0, 0, -70], + "uv": [16, 65], + "mirror": true + } + ] + } + ], + "visible_bounds_width": 3, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 128 + } + }, + "spawn_egg": {"base_color": "#9c3436", "overlay_color": "#4d494d"}, + "render_controllers": ["controller.render.strider"] + }, + "text_display": { + "identifier": "minecraft:text_display", + "geometry": {} + }, + "trident": { + "identifier": "minecraft:thrown_trident", + "textures": { + "default": "textures/entity/trident", + "loyalty_rope": "textures/entity/lead_knot" + }, + "geometry": { + "default": { + "texturewidth": 32, + "textureheight": 32, + "bones": [ + { + "name": "pole", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-0.5, -3, -0.5], + "size": [1, 31, 1], + "inflate": 0.01, + "uv": [0, 0] + }, + {"origin": [-1.5, 22, -0.5], "size": [3, 2, 1], "uv": [4, 0]}, + {"origin": [-2.5, 23, -0.5], "size": [1, 4, 1], "uv": [4, 3]}, + {"origin": [1.5, 23, -0.5], "size": [1, 4, 1], "uv": [4, 3]} + ] + } + ] + } + } + }, + "tnt_minecart": { + "identifier": "minecraft:tnt_minecart", + "min_engine_version": "1.8.0", + "materials": {"default": "minecart"}, + "textures": {"default": "textures/entity/minecart"}, + "geometry": { + "default": { + "bones": [ + { + "name": "bottom", + "pivot": [0, 6, 0], + "cubes": [ + { + "origin": [-10, -6.5, -1], + "size": [20, 16, 2], + "rotation": [90, 0, 0], + "uv": [0, 10] + } + ] + }, + { + "name": "back", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-17, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 270, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "front", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [1, 2.5, -1], + "size": [16, 8, 2], + "rotation": [0, 90, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "right", + "pivot": [0, 0, 0], + "cubes": [ + { + "origin": [-8, 2.5, -8], + "size": [16, 8, 2], + "rotation": [0, 180, 0], + "uv": [0, 0] + } + ], + "parent": "bottom" + }, + { + "name": "left", + "pivot": [0, 0, 0], + "cubes": [ + {"origin": [-8, 2.5, 6], "size": [16, 8, 2], "uv": [0, 0]} + ], + "parent": "bottom" + } + ], + "texturewidth": 64, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.minecart"] + }, + "tropical_fish": { + "identifier": "minecraft:tropicalfish", + "materials": {"default": "tropicalfish"}, + "textures": { + "typeA": "textures/entity/fish/tropical_a", + "typeB": "textures/entity/fish/tropical_b", + "aPattern1": "textures/entity/fish/tropical_a_pattern_1", + "aPattern2": "textures/entity/fish/tropical_a_pattern_2", + "aPattern3": "textures/entity/fish/tropical_a_pattern_3", + "aPattern4": "textures/entity/fish/tropical_a_pattern_4", + "aPattern5": "textures/entity/fish/tropical_a_pattern_5", + "aPattern6": "textures/entity/fish/tropical_a_pattern_6", + "bPattern1": "textures/entity/fish/tropical_b_pattern_1", + "bPattern2": "textures/entity/fish/tropical_b_pattern_2", + "bPattern3": "textures/entity/fish/tropical_b_pattern_3", + "bPattern4": "textures/entity/fish/tropical_b_pattern_4", + "bPattern5": "textures/entity/fish/tropical_b_pattern_5", + "bPattern6": "textures/entity/fish/tropical_b_pattern_6" + }, + "geometry": { + "typeA": { + "visible_bounds_width": 0.5, + "visible_bounds_height": 0.5, + "bones": [ + { + "pivot": [-0.5, 0, 0], + "cubes": [ + {"origin": [-1, 0, -3], "size": [2, 3, 6], "uv": [0, 0]}, + {"origin": [0, 3, -2.9992], "size": [0, 4, 6], "uv": [10, -6]} + ], + "name": "body" + }, + { + "pivot": [0, 0, 3], + "cubes": [{"origin": [0, 0, 3], "size": [0, 3, 4], "uv": [24, -4]}], + "name": "tailfin", + "parent": "body" + }, + { + "pivot": [0.5, 0, 1], + "bind_pose_rotation": [0, -35, 0], + "cubes": [ + {"origin": [0.336, 0, -0.10594], "size": [2, 2, 0], "uv": [2, 12]} + ], + "name": "leftFin", + "parent": "body" + }, + { + "pivot": [-0.5, 0, 1], + "bind_pose_rotation": [0, 35, 0], + "cubes": [ + { + "origin": [-2.336, 0, -0.10594], + "size": [2, 2, 0], + "uv": [2, 16] + } + ], + "name": "rightFin", + "parent": "body" + } + ], + "texturewidth": 32, + "textureheight": 32 + }, + "typeB": { + "visible_bounds_width": 0.5, + "visible_bounds_height": 0.5, + "bones": [ + { + "pivot": [-0.5, 0, 0], + "cubes": [ + {"origin": [-1, 0, -0.0008], "size": [2, 6, 6], "uv": [0, 20]}, + {"origin": [0, -5, -0.0008], "size": [0, 5, 6], "uv": [20, 21]}, + {"origin": [0, 6, -0.0008], "size": [0, 5, 6], "uv": [20, 10]} + ], + "name": "body" + }, + { + "pivot": [0, 0, 6], + "cubes": [ + {"origin": [0, 0.0008, 6], "size": [0, 6, 5], "uv": [21, 16]} + ], + "name": "tailfin", + "parent": "body" + }, + { + "pivot": [0.5, 0, 1], + "bind_pose_rotation": [0, -35, 0], + "cubes": [ + { + "origin": [2.05673, 0, 2.35152], + "size": [2, 2, 0], + "uv": [2, 12] + } + ], + "name": "leftFin", + "parent": "body" + }, + { + "pivot": [-0.5, 0, 1], + "bind_pose_rotation": [0, 35, 0], + "cubes": [ + { + "origin": [-4.05673, 0, 2.35152], + "size": [2, 2, 0], + "uv": [2, 16] + } + ], + "name": "rightFin", + "parent": "body" + } + ], + "texturewidth": 32, + "textureheight": 32 + } + }, + "render_controllers": ["controller.render.tropicalfish"], + "spawn_egg": {"texture": "spawn_egg", "texture_index": 44} + }, + "vindicator": { + "identifier": "minecraft:vindicator", + "min_engine_version": "1.8.0", + "materials": {"default": "vindicator"}, + "textures": {"default": "textures/entity/illager/vindicator"}, + "geometry": { + "default": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 1.25, 0], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [0, 0]} + ] + }, + { + "name": "nose", + "parent": "head", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-1, 23, -6], "size": [2, 4, 2], "uv": [24, 0]} + ] + }, + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -3], "size": [8, 12, 6], "uv": [16, 20]}, + { + "origin": [-4, 6, -3], + "size": [8, 18, 6], + "uv": [0, 38], + "inflate": 0.5 + } + ] + }, + { + "name": "arms", + "parent": "body", + "pivot": [0, 22, 0], + "cubes": [ + {"origin": [-8, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [4, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + {"origin": [-4, 16, -2], "size": [8, 4, 4], "uv": [40, 38]} + ] + }, + { + "name": "leg0", + "parent": "body", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [2, 12, 0], + "mirror": true, + "cubes": [{"origin": [0, 0, -2], "size": [4, 12, 4], "uv": [0, 22]}] + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ] + }, + { + "name": "rightItem", + "pivot": [-5.5, 16, 0.5], + "neverRender": true, + "parent": "rightArm" + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "mirror": true, + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 46]} + ] + } + ] + } + }, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 39}, + "render_controllers": ["controller.render.vindicator"], + "enable_attachables": true + }, + "wandering_trader": { + "identifier": "minecraft:wandering_trader", + "materials": {"default": "wandering_trader"}, + "textures": {"default": "textures/entity/wandering_trader"}, + "geometry": { + "default": { + "visible_bounds_width": 1.5, + "visible_bounds_height": 2.5, + "visible_bounds_offset": [0, 1.25, 0], + "bones": [ + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 10, 8], "uv": [0, 0]} + ] + }, + { + "name": "helmet", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 10, 8], + "uv": [32, 0], + "inflate": 0.5 + } + ] + }, + { + "name": "brim", + "parent": "head", + "pivot": [0, 24, 0], + "bind_pose_rotation": [-90, 0, 0], + "cubes": [ + { + "origin": [-8, 16, -6], + "size": [16, 16, 1], + "uv": [30, 47], + "inflate": 0.1 + } + ] + }, + { + "name": "nose", + "parent": "head", + "pivot": [0, 26, 0], + "cubes": [ + {"origin": [-1, 23, -6], "size": [2, 4, 2], "uv": [24, 0]} + ] + }, + { + "name": "body", + "locators": {"lead_hold": [0, 40, 0]}, + "cubes": [ + {"origin": [-4, 12, -3], "size": [8, 12, 6], "uv": [16, 20]}, + { + "origin": [-4, 6, -3], + "size": [8, 18, 6], + "uv": [0, 38], + "inflate": 0.5 + } + ] + }, + { + "name": "arms", + "parent": "body", + "pivot": [0, 22, 0], + "cubes": [ + {"origin": [-4, 16, -2], "size": [8, 4, 4], "uv": [40, 38]}, + {"origin": [-8, 16, -2], "size": [4, 8, 4], "uv": [44, 22]}, + { + "origin": [4, 16, -2], + "size": [4, 8, 4], + "uv": [44, 22], + "mirror": true + } + ] + }, + {"name": "held_item", "parent": "arms", "pivot": [0, 0, 0]}, + { + "name": "leg0", + "parent": "body", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 22]} + ] + }, + { + "name": "leg1", + "parent": "body", + "pivot": [2, 12, 0], + "cubes": [ + { + "origin": [0, 0, -2], + "size": [4, 12, 4], + "uv": [0, 22], + "mirror": true + } + ] + } + ] + } + }, + "render_controllers": ["controller.render.wandering_trader"], + "spawn_egg": {"texture": "spawn_egg_wandering_trader"} + }, + "wither": { + "identifier": "minecraft:wither", + "min_engine_version": "1.8.0", + "materials": {"default": "wither_boss", "armor": "wither_boss_armor"}, + "textures": { + "default": "textures/entity/wither/wither", + "armor_white": "textures/entity/wither/wither_armor", + "armor_blue": "textures/entity/wither/wither_armor", + "invulnerable": "textures/entity/wither/wither_invulnerable" + }, + "geometry": { + "default": { + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "upperBodyPart1", + "cubes": [ + {"origin": [-10, 17.1, -0.5], "size": [20, 3, 3], "uv": [0, 16]} + ] + }, + { + "name": "upperBodyPart2", + "parent": "upperBodyPart1", + "pivot": [-2, 17.1, -0.5], + "cubes": [ + {"origin": [-2, 7.1, -0.5], "size": [3, 10, 3], "uv": [0, 22]}, + {"origin": [-6, 13.6, 0], "size": [11, 2, 2], "uv": [24, 22]}, + {"origin": [-6, 11.1, 0], "size": [11, 2, 2], "uv": [24, 22]}, + {"origin": [-6, 8.6, 0], "size": [11, 2, 2], "uv": [24, 22]} + ] + }, + { + "name": "upperBodyPart3", + "parent": "upperBodyPart2", + "pivot": [0, 24, 0], + "cubes": [{"origin": [0, 18, 0], "size": [3, 6, 3], "uv": [12, 22]}] + }, + { + "name": "head1", + "parent": "upperBodyPart1", + "pivot": [0, 20, 0], + "cubes": [{"origin": [-4, 20, -4], "size": [8, 8, 8], "uv": [0, 0]}] + }, + { + "name": "head2", + "parent": "upperBodyPart1", + "pivot": [-9, 18, -1], + "cubes": [ + {"origin": [-12, 18, -4], "size": [6, 6, 6], "uv": [32, 0]} + ] + }, + { + "name": "head3", + "parent": "upperBodyPart1", + "pivot": [9, 18, -1], + "cubes": [{"origin": [6, 18, -4], "size": [6, 6, 6], "uv": [32, 0]}] + } + ] + }, + "armor": { + "visible_bounds_width": 3, + "visible_bounds_height": 4, + "visible_bounds_offset": [0, 2, 0], + "texturewidth": 64, + "textureheight": 64, + "bones": [ + { + "name": "upperBodyPart1", + "cubes": [ + {"origin": [-10, 17.1, -0.5], "size": [20, 3, 3], "uv": [0, 16]} + ], + "inflate": 2 + }, + { + "name": "upperBodyPart2", + "parent": "upperBodyPart1", + "pivot": [-2, 17.1, -0.5], + "cubes": [ + {"origin": [-2, 7.1, -0.5], "size": [3, 10, 3], "uv": [0, 22]}, + {"origin": [-6, 13.6, 0], "size": [11, 2, 2], "uv": [24, 22]}, + {"origin": [-6, 11.1, 0], "size": [11, 2, 2], "uv": [24, 22]}, + {"origin": [-6, 8.6, 0], "size": [11, 2, 2], "uv": [24, 22]} + ], + "inflate": 2 + }, + { + "name": "upperBodyPart3", + "parent": "upperBodyPart2", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [0, 18, 0], "size": [3, 6, 3], "uv": [12, 22]} + ], + "inflate": 2 + }, + { + "name": "head1", + "parent": "upperBodyPart1", + "pivot": [0, 20, 0], + "cubes": [ + {"origin": [-4, 20, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "inflate": 2 + }, + { + "name": "head2", + "parent": "upperBodyPart1", + "pivot": [-9, 18, -1], + "cubes": [ + {"origin": [-12, 18, -4], "size": [6, 6, 6], "uv": [32, 0]} + ], + "inflate": 2 + }, + { + "name": "head3", + "parent": "upperBodyPart1", + "pivot": [9, 18, -1], + "cubes": [ + {"origin": [6, 18, -4], "size": [6, 6, 6], "uv": [32, 0]} + ], + "inflate": 2 + } + ] + } + }, + "render_controllers": [ + "controller.render.wither_boss", + "controller.render.wither_boss_armor_white", + "controller.render.wither_boss_armor_blue" + ] + }, + "wither_skeleton": { + "identifier": "minecraft:wither_skeleton", + "min_engine_version": "1.8.0", + "materials": {"default": "skeleton"}, + "textures": {"default": "textures/entity/skeleton/wither_skeleton"}, + "geometry": { + "default": { + "texturewidth": 64, + "textureheight": 32, + "visible_bounds_width": 1.5, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "bones": [ + { + "name": "body", + "parent": "waist", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ] + }, + {"name": "waist", "pivot": [0, 12, 0]}, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [{"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]}] + }, + { + "name": "hat", + "parent": "head", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 0.5 + } + ], + "neverRender": true + }, + { + "name": "rightArm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-6, 12, -1], "size": [2, 12, 2], "uv": [40, 16]} + ] + }, + { + "name": "rightItem", + "parent": "rightArm", + "pivot": [-1, -45, -5], + "neverRender": true + }, + { + "name": "leftArm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -1], "size": [2, 12, 2], "uv": [40, 16]} + ], + "mirror": true + }, + { + "name": "leftItem", + "parent": "leftArm", + "pivot": [1, -45, -5], + "neverRender": true + }, + { + "name": "rightLeg", + "parent": "body", + "pivot": [-2, 12, 0], + "cubes": [ + {"origin": [-3, 0, -1], "size": [2, 12, 2], "uv": [0, 16]} + ] + }, + { + "name": "leftLeg", + "parent": "body", + "pivot": [2, 12, 0], + "cubes": [ + {"origin": [1, 0, -1], "size": [2, 12, 2], "uv": [0, 16]} + ], + "mirror": true + } + ] + } + }, + "render_controllers": ["controller.render.wither_skeleton"], + "enable_attachables": true, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 29} + }, + "wither_skull": { + "identifier": "minecraft:wither_skull", + "materials": {"default": "wither_skull"}, + "textures": {"default": "textures/entity/wither/wither"}, + "geometry": { + "default": { + "bones": [ + { + "name": "head", + "cubes": [{"origin": [-4, 0, -4], "size": [8, 8, 8], "uv": [0, 35]}] + } + ], + "visible_bounds_width": 1, + "visible_bounds_height": 1, + "texturewidth": 64, + "textureheight": 64 + } + }, + "render_controllers": ["controller.render.wither_skull"] + }, + "zoglin": { + "identifier": "minecraft:zoglin", + "materials": {"default": "zoglin"}, + "textures": {"default": "textures/entity/hoglin/zoglin"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 19, -3], + "cubes": [ + { + "origin": [-8, 11, -7], + "size": [16, 14, 26], + "inflate": 0.02, + "uv": [1, 1] + }, + { + "origin": [0, 22, -10], + "size": [0, 10, 19], + "inflate": 0.02, + "uv": [90, 33] + } + ], + "locators": {"lead": [0, 20, -5]} + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 22, -5], + "rotation": [50, 0, 0], + "cubes": [ + {"origin": [-7, 21, -24], "size": [14, 6, 19], "uv": [61, 1]}, + {"origin": [-8, 22, -19], "size": [2, 11, 2], "uv": [1, 13]}, + {"origin": [6, 22, -19], "size": [2, 11, 2], "uv": [1, 13]} + ] + }, + { + "name": "right_ear", + "parent": "head", + "pivot": [-7, 27, -7], + "rotation": [0, 0, -50], + "cubes": [ + {"origin": [-13, 26, -10], "size": [6, 1, 4], "uv": [1, 1]} + ] + }, + { + "name": "left_ear", + "parent": "head", + "pivot": [7, 27, -7], + "rotation": [0, 0, 50], + "cubes": [{"origin": [7, 26, -10], "size": [6, 1, 4], "uv": [1, 6]}] + }, + { + "name": "leg_back_right", + "pivot": [6, 8, 17], + "cubes": [ + {"origin": [-8, 0, 13], "size": [5, 11, 5], "uv": [21, 45]} + ] + }, + { + "name": "leg_back_left", + "pivot": [-6, 8, 17], + "cubes": [{"origin": [3, 0, 13], "size": [5, 11, 5], "uv": [0, 45]}] + }, + { + "name": "leg_front_right", + "pivot": [-6, 12, -3], + "cubes": [ + {"origin": [-8, 0, -6], "size": [6, 14, 6], "uv": [66, 42]} + ] + }, + { + "name": "leg_front_left", + "pivot": [6, 12, -3], + "cubes": [ + {"origin": [2, 0, -6], "size": [6, 14, 6], "uv": [41, 42]} + ] + } + ], + "visible_bounds_width": 4, + "visible_bounds_height": 3, + "visible_bounds_offset": [0, 1.5, 0], + "texturewidth": 128, + "textureheight": 64 + } + }, + "spawn_egg": {"base_color": "#c66e55", "overlay_color": "#e6e6e6"}, + "render_controllers": ["controller.render.zoglin"] + }, + "zombie": { + "identifier": "minecraft:zombie", + "min_engine_version": "1.8.0", + "materials": {"default": "zombie"}, + "textures": {"default": "textures/entity/zombie/zombie"}, + "geometry": { + "default": { + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 32, + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]} + ], + "parent": "waist" + }, + {"name": "waist", "neverRender": true, "pivot": [0, 12, 0]}, + { + "name": "head", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 24, -4], "size": [8, 8, 8], "uv": [0, 0]} + ], + "parent": "body" + }, + { + "name": "hat", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-4, 24, -4], + "size": [8, 8, 8], + "uv": [32, 0], + "inflate": 0.5 + } + ], + "neverRender": true, + "parent": "head" + }, + { + "name": "rightArm", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ], + "parent": "body" + }, + { + "name": "rightItem", + "pivot": [-1, -45, -5], + "neverRender": true, + "parent": "rightArm" + }, + { + "name": "leftArm", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [40, 16]} + ], + "mirror": true, + "parent": "body" + }, + { + "name": "leftItem", + "pivot": [1, -45, -5], + "neverRender": true, + "parent": "leftArm" + }, + { + "name": "rightLeg", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-3.9, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ], + "parent": "body" + }, + { + "name": "leftLeg", + "pivot": [1.9, 12, 0], + "cubes": [ + {"origin": [-0.1, 0, -2], "size": [4, 12, 4], "uv": [0, 16]} + ], + "mirror": true, + "parent": "body" + } + ] + } + }, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 12}, + "scripts": { + "pre_animation": [ + "variable.tcos0 = (Math.cos(query.modified_distance_moved * 38.17) * query.modified_move_speed / variable.gliding_speed_value) * 57.3;" + ] + }, + "animations": { + "humanoid_big_head": {"loop": true, "bones": {"head": {"scale": 1.4}}}, + "look_at_target_default": { + "loop": true, + "bones": { + "head": { + "relative_to": {"rotation": "entity"}, + "rotation": [ + "query.target_x_rotation", + "query.target_y_rotation", + 0 + ] + } + } + }, + "look_at_target_gliding": { + "loop": true, + "bones": {"head": {"rotation": [-45, "query.target_y_rotation", 0]}} + }, + "look_at_target_swimming": { + "loop": true, + "bones": { + "head": { + "rotation": [ + "math.lerp(query.target_x_rotation, -45.0, variable.swim_amount)", + "query.target_y_rotation", + 0 + ] + } + } + }, + "move": { + "loop": true, + "bones": { + "leftarm": {"rotation": ["variable.tcos0", 0, 0]}, + "leftleg": {"rotation": ["variable.tcos0 * -1.4", 0, 0]}, + "rightarm": {"rotation": ["-variable.tcos0", 0, 0]}, + "rightleg": {"rotation": ["variable.tcos0 * 1.4", 0, 0]} + } + }, + "riding.arms": { + "loop": true, + "bones": { + "leftarm": {"rotation": [-36, 0, 0]}, + "rightarm": {"rotation": [-36, 0, 0]} + } + }, + "riding.legs": { + "loop": true, + "bones": { + "leftleg": {"rotation": ["-72.0 - this", "-18.0 - this", "-this"]}, + "rightleg": {"rotation": ["-72.0 - this", "18.0 - this", "-this"]} + } + }, + "holding": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + "variable.is_holding_left ? (-this * 0.5 - 18.0) : 0.0", + 0, + 0 + ] + }, + "rightarm": { + "rotation": [ + "variable.is_holding_right ? (-this * 0.5 - 18.0) : 0.0", + 0, + 0 + ] + } + } + }, + "brandish_spear": { + "loop": true, + "bones": { + "rightarm": { + "rotation": [ + "this * -0.5 - 157.5 - 22.5 * variable.charge_amount", + "-this", + 0 + ] + } + } + }, + "charging": { + "loop": true, + "bones": { + "rightarm": { + "rotation": ["22.5 * variable.charge_amount - this", "-this", 0] + } + } + }, + "attack.rotations": { + "loop": true, + "bones": { + "body": { + "rotation": [ + 0, + "math.sin(math.sqrt(variable.attack_time) * 360) * 11.46 - this", + 0 + ] + }, + "leftarm": { + "rotation": [ + "math.sin(math.sqrt(variable.attack_time) * 360) * 11.46", + 0, + 0 + ] + }, + "rightarm": { + "rotation": [ + "math.sin(1.0 - math.pow(1.0 - variable.attack_time, 3.0) * 180.0) * (variable.is_brandishing_spear ? -1.0 : 1.0 )", + "variable.is_brandishing_spear ? 0.0 : (math.sin(math.sqrt(variable.attack_time) * 360) * 11.46) * 2.0", + 0 + ] + } + } + }, + "sneaking": { + "loop": true, + "bones": { + "body": {"rotation": ["0.5 - this", 0, 0]}, + "head": {"position": [0, 1, 0]}, + "leftarm": {"rotation": [72, 0, 0]}, + "leftleg": {"position": [0, -3, 4]}, + "rightarm": {"rotation": [72, 0, 0]}, + "rightleg": {"position": [0, -3, 4]} + } + }, + "bob": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + 0, + 0, + "((math.cos(query.life_time * 103.2) * 2.865) + 2.865) *-1.0" + ] + }, + "rightarm": { + "rotation": [ + 0, + 0, + "(math.cos(query.life_time * 103.2) * 2.865) + 2.865" + ] + } + } + }, + "damage_nearby_mobs": { + "loop": true, + "bones": { + "leftarm": {"rotation": ["-45.0-this", "-this", "-this"]}, + "leftleg": {"rotation": ["45.0-this", "-this", "-this"]}, + "rightarm": {"rotation": ["45.0-this", "-this", "-this"]}, + "rightleg": {"rotation": ["-45.0-this", "-this", "-this"]} + } + }, + "bow_and_arrow": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + "query.target_x_rotation - 90.0 - math.sin(query.life_time * 76.8) * 2.865 - this", + "query.target_y_rotation + 28.65", + "-(math.cos(query.life_time * 103.2) * 2.865) - 2.865" + ] + }, + "rightarm": { + "rotation": [ + "query.target_x_rotation - 90.0 + math.sin(query.life_time * 76.8) * 2.865 - this", + "query.target_y_rotation - 5.73", + "(math.cos(query.life_time * 103.2) * 2.865) + 2.865" + ] + } + } + }, + "use_item_progress": { + "loop": true, + "bones": { + "rightarm": { + "rotation": [ + "variable.use_item_startup_progress * -60.0 + variable.use_item_interval_progress * 11.25", + "variable.use_item_startup_progress * -22.5 + variable.use_item_interval_progress * 11.25", + "variable.use_item_startup_progress * -5.625 + variable.use_item_interval_progress * 11.25" + ] + } + } + }, + "zombie_attack_bare_hand": { + "loop": true, + "bones": { + "leftarm": { + "rotation": [ + "-90.0 - ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4) - (math.sin(query.life_time * 76.776372) * 2.865) - this", + "5.73 - ((math.sin(variable.attack_time * 180.0) * 57.3) * 0.6) - this", + "math.cos(query.life_time * 103.13244) * -2.865 - 2.865 - this" + ] + }, + "rightarm": { + "rotation": [ + "90.0 * (variable.is_brandishing_spear - 1.0) - ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4) + (math.sin(query.life_time * 76.776372) * 2.865) - this", + "(math.sin(variable.attack_time * 180.0) * 57.3) * 0.6 - 5.73 - this", + "math.cos(query.life_time * 103.13244) * 2.865 + 2.865 - this" + ] + } + } + }, + "swimming": { + "loop": true, + "bones": { + "body": { + "position": [ + 0, + "variable.swim_amount * -10.0 - this", + "variable.swim_amount * 9.0 - this" + ], + "rotation": [ + "variable.swim_amount * (90.0 + query.target_x_rotation)", + 0, + 0 + ] + }, + "leftarm": { + "rotation": [ + "math.lerp(this, -180.0, variable.swim_amount) - (variable.swim_amount * ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4)) - (variable.swim_amount * (math.sin(query.life_time * 76.776372) * 2.865)) - this", + "math.lerp(this, 14.325, variable.swim_amount) - this", + "math.lerp(this, 14.325, variable.swim_amount) - (variable.swim_amount * (math.cos(query.life_time * 103.13244) * 2.865 + 2.865)) - this" + ] + }, + "leftleg": { + "rotation": [ + "math.lerp(this, math.cos(query.life_time * 390.0 + 180.0) * 0.3, variable.swim_amount)", + 0, + 0 + ] + }, + "rightarm": { + "rotation": [ + "math.lerp(this, -180.0, variable.swim_amount) - (variable.swim_amount * ((math.sin(variable.attack_time * 180.0) * 57.3) * 1.2 - (math.sin((1.0 - (1.0 - variable.attack_time) * (1.0 - variable.attack_time)) * 180.0) * 57.3) * 0.4)) + (variable.swim_amount * (math.sin(query.life_time * 76.776372) * 2.865)) - this", + "math.lerp(this, 14.325, variable.swim_amount) - this", + "math.lerp(this, -14.325, variable.swim_amount) + (variable.swim_amount * (math.cos(query.life_time * 103.13244) * 2.865 + 2.865)) - this" + ] + }, + "rightleg": { + "rotation": [ + "math.lerp(this, math.cos(query.life_time * 390.0) * 0.3, variable.swim_amount)", + 0, + 0 + ] + } + } + } + }, + "animation_controllers": { + "humanoid_baby_big_head": { + "initial_state": "default", + "states": { + "baby": { + "animations": ["humanoid_big_head"], + "transitions": [{"default": "!query.is_baby"}] + }, + "default": {"transitions": [{"baby": "query.is_baby"}]} + } + }, + "look_at_target": { + "initial_state": "default", + "states": { + "default": { + "animations": ["look_at_target_default"], + "transitions": [ + {"gliding": "query.is_gliding"}, + {"swimming": "query.is_swimming"} + ] + }, + "gliding": { + "animations": ["look_at_target_gliding"], + "transitions": [ + {"swimming": "query.is_swimming"}, + {"default": "!query.is_gliding"} + ] + }, + "swimming": { + "animations": ["look_at_target_swimming"], + "transitions": [ + {"gliding": "query.is_gliding"}, + {"default": "!query.is_swimming"} + ] + } + } + }, + "move": { + "initial_state": "default", + "states": {"default": {"animations": ["move"]}} + }, + "riding": { + "initial_state": "default", + "states": { + "default": {"transitions": [{"riding": "query.is_riding"}]}, + "riding": { + "animations": ["riding.arms", "riding.legs"], + "transitions": [{"default": "!query.is_riding"}] + } + } + }, + "holding": { + "initial_state": "default", + "states": {"default": {"animations": ["holding"]}} + }, + "brandish_spear": { + "initial_state": "default", + "states": { + "brandish_spear": { + "animations": ["brandish_spear"], + "transitions": [{"default": "!variable.is_brandishing_spear"}] + }, + "default": { + "transitions": [{"brandish_spear": "variable.is_brandishing_spear"}] + } + } + }, + "charging": { + "initial_state": "default", + "states": { + "charging": { + "animations": ["charging"], + "transitions": [{"default": "!query.is_charging"}] + }, + "default": {"transitions": [{"charging": "query.is_charging"}]} + } + }, + "attack": { + "initial_state": "default", + "states": { + "attacking": { + "animations": ["attack.rotations"], + "transitions": [{"default": "variable.attack_time < 0.0"}] + }, + "default": { + "transitions": [{"attacking": "variable.attack_time >= 0.0"}] + } + } + }, + "sneaking": { + "initial_state": "default", + "states": { + "default": {"transitions": [{"sneaking": "query.is_sneaking"}]}, + "sneaking": { + "animations": ["sneaking"], + "transitions": [{"default": "!query.is_sneaking"}] + } + } + }, + "bob": { + "initial_state": "default", + "states": {"default": {"animations": ["bob"]}} + }, + "damage_nearby_mobs": { + "initial_state": "default", + "states": { + "damage_nearby_mobs": { + "animations": ["damage_nearby_mobs"], + "transitions": [{"default": "!variable.damage_nearby_mobs"}] + }, + "default": { + "transitions": [ + {"damage_nearby_mobs": "variable.damage_nearby_mobs"} + ] + } + } + }, + "bow_and_arrow": { + "initial_state": "default", + "states": { + "bow_and_arrow": { + "animations": ["bow_and_arrow"], + "transitions": [{"default": "!query.has_target"}] + }, + "default": {"transitions": [{"bow_and_arrow": "query.has_target"}]} + } + }, + "use_item_progress": { + "initial_state": "default", + "states": { + "default": { + "transitions": [ + { + "use_item_progress": "( variable.use_item_interval_progress > 0.0 ) || ( variable.use_item_startup_progress > 0.0 )" + } + ] + }, + "use_item_progress": { + "animations": ["use_item_progress"], + "transitions": [ + { + "default": "( variable.use_item_interval_progress <= 0.0 ) && ( variable.use_item_startup_progress <= 0.0 )" + } + ] + } + } + }, + "zombie_attack_bare_hand": { + "initial_state": "default", + "states": { + "default": { + "transitions": [{"is_bare_hand": "variable.is_holding_left != 1.0"}] + }, + "is_bare_hand": { + "animations": ["zombie_attack_bare_hand"], + "transitions": [{"default": "variable.is_holding_left == 1.0"}] + } + } + }, + "swimming": { + "initial_state": "default", + "states": { + "default": { + "transitions": [{"is_swimming": "variable.swim_amount > 0.0"}] + }, + "is_swimming": { + "animations": ["swimming"], + "transitions": [{"default": "variable.swim_amount <= 0.0"}] + } + } + } + }, + "render_controllers": ["controller.render.zombie"], + "enable_attachables": true + }, + "zombified_piglin": { + "identifier": "minecraft:zombie_pigman", + "min_engine_version": "1.8.0", + "materials": {"default": "zombie"}, + "textures": {"default": "textures/entity/piglin/zombified_piglin"}, + "geometry": { + "default": { + "bones": [ + { + "name": "body", + "pivot": [0, 24, 0], + "cubes": [ + {"origin": [-4, 12, -2], "size": [8, 12, 4], "uv": [16, 16]}, + { + "origin": [-4, 12, -2], + "size": [8, 12, 4], + "uv": [16, 32], + "inflate": 0.25 + } + ] + }, + { + "name": "head", + "parent": "body", + "pivot": [0, 24, 0], + "cubes": [ + { + "origin": [-5, 24, -4], + "size": [10, 8, 8], + "uv": [0, 0], + "inflate": -0.02 + }, + {"origin": [-2, 24, -5], "size": [4, 4, 1], "uv": [31, 1]}, + {"origin": [2, 24, -5], "size": [1, 2, 1], "uv": [2, 4]}, + {"origin": [-3, 24, -5], "size": [1, 2, 1], "uv": [2, 0]} + ], + "inflate": -0.02 + }, + { + "name": "leftear", + "parent": "head", + "pivot": [5, 30, 0], + "rotation": [0, 0, -30], + "cubes": [{"origin": [4, 25, -2], "size": [1, 5, 4], "uv": [51, 6]}] + }, + { + "name": "rightear", + "parent": "head", + "pivot": [-5, 30, 0], + "rotation": [0, 0, 30], + "cubes": [ + {"origin": [-5, 25, -2], "size": [1, 5, 4], "uv": [39, 6]} + ] + }, + {"name": "hat", "parent": "head", "pivot": [0, 24, 0]}, + { + "name": "rightarm", + "parent": "body", + "pivot": [-5, 22, 0], + "cubes": [ + {"origin": [-8, 12, -2], "size": [4, 12, 4], "uv": [40, 16]}, + { + "origin": [-8, 12, -2], + "size": [4, 12, 4], + "uv": [40, 32], + "inflate": 0.25 + } + ] + }, + {"name": "rightItem", "parent": "rightarm", "pivot": [-1, -45, -5]}, + { + "name": "leftarm", + "parent": "body", + "pivot": [5, 22, 0], + "cubes": [ + {"origin": [4, 12, -2], "size": [4, 12, 4], "uv": [32, 48]}, + { + "origin": [4, 12, -2], + "size": [4, 12, 4], + "uv": [48, 48], + "inflate": 0.25 + } + ] + }, + {"name": "leftItem", "parent": "leftArm", "pivot": [1, -45, -5]}, + { + "name": "rightleg", + "parent": "body", + "pivot": [-1.9, 12, 0], + "cubes": [ + {"origin": [-4, 0, -2], "size": [4, 12, 4], "uv": [0, 16]}, + { + "origin": [-4, 0, -2], + "size": [4, 12, 4], + "uv": [0, 32], + "inflate": 0.25 + } + ] + }, + { + "name": "leftleg", + "parent": "body", + "pivot": [1.9, 12, 0], + "cubes": [ + {"origin": [0, 0, -2], "size": [4, 12, 4], "uv": [16, 48]}, + { + "origin": [0, 0, -2], + "size": [4, 12, 4], + "uv": [0, 48], + "inflate": 0.25 + } + ] + } + ], + "visible_bounds_width": 2, + "visible_bounds_height": 2, + "visible_bounds_offset": [0, 1, 0], + "texturewidth": 64, + "textureheight": 64 + } + }, + "spawn_egg": {"texture": "spawn_egg", "texture_index": 13}, + "render_controllers": ["controller.render.zombie_pigman"], + "enable_attachables": true + } +} \ No newline at end of file diff --git a/renderer/viewer/three/entity/exportedModels.js b/renderer/viewer/three/entity/exportedModels.js new file mode 100644 index 00000000..fde9391f --- /dev/null +++ b/renderer/viewer/three/entity/exportedModels.js @@ -0,0 +1,38 @@ +export { default as allay } from './models/allay.obj' +export { default as axolotl } from './models/axolotl.obj' +export { default as blaze } from './models/blaze.obj' +export { default as camel } from './models/camel.obj' +export { default as cat } from './models/cat.obj' +export { default as chicken } from './models/chicken.obj' +export { default as cod } from './models/cod.obj' +export { default as creeper } from './models/creeper.obj' +export { default as dolphin } from './models/dolphin.obj' +export { default as ender_dragon } from './models/ender_dragon.obj' +export { default as enderman } from './models/enderman.obj' +export { default as endermite } from './models/endermite.obj' +export { default as fox } from './models/fox.obj' +export { default as frog } from './models/frog.obj' +export { default as ghast } from './models/ghast.obj' +export { default as goat } from './models/goat.obj' +export { default as guardian } from './models/guardian.obj' +export { default as horse } from './models/horse.obj' +export { default as llama } from './models/llama.obj' +export { default as minecart } from './models/minecart.obj' +export { default as parrot } from './models/parrot.obj' +export { default as piglin } from './models/piglin.obj' +export { default as pillager } from './models/pillager.obj' +export { default as rabbit } from './models/rabbit.obj' +export { default as sheep } from './models/sheep.obj' +export { default as arrow } from './models/arrow.obj' +export { default as shulker } from './models/shulker.obj' +export { default as sniffer } from './models/sniffer.obj' +export { default as spider } from './models/spider.obj' +export { default as tadpole } from './models/tadpole.obj' +export { default as turtle } from './models/turtle.obj' +export { default as vex } from './models/vex.obj' +export { default as villager } from './models/villager.obj' +export { default as warden } from './models/warden.obj' +export { default as witch } from './models/witch.obj' +export { default as wolf } from './models/wolf.obj' +export { default as zombie_villager } from './models/zombie_villager.obj' +export { default as boat } from './models/boat.obj' diff --git a/renderer/viewer/three/entity/externalTextures.json b/renderer/viewer/three/entity/externalTextures.json new file mode 100644 index 00000000..82ad82a8 --- /dev/null +++ b/renderer/viewer/three/entity/externalTextures.json @@ -0,0 +1 @@ +{"allay":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAV1BMVEUAAAA4jNkuh9Ypg9FBnNpCm9r///+c/P+A/P9k+/9N8/hM6f9Q2f8+5eo94PdG0P821+4s1ewiz/8syf8ox/8bxPNNq+wQwf8os+hCnNpCm9oep9s0h8D7j8AOAAAABnRSTlMAoKCg3PODq/XXAAAA60lEQVR42tWP0W7DIAxFb9OtwdA6xQ3rzZL//84BD0nRljzsZdqxZCx8hLio3Lz4GwtYMWLDi4jnPM+vwogNKTTC43Elr6vgRMQ1wvM5ktsbvRPXN38wGxKHMmnI9M65vgxavwsg2WCpCvlSg6iqlCF4ceKbFEGZVC+5NFFXYUtxZzILl1xmiffoxUcA5DUHKULZp6iqsQzU6KNWYcxBUMnp8A2mwWxAhTPR0qRYFs6sDT+zTMZpWj5pO8L0wamexJ9xXvm10J27rrQ94dSdOqC0PSFXPV4JRuwRzIxGHMB38O14j4N9Wf4/vgDzpRGDwkNeQQAAAABJRU5ErkJggg==","axolotl":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAP1BMVEUAAACvsv+zsPmmqv+nn/+GkPXWhCt+iOyBb+d1b/9odutodOyTWuRbb+NlZfS0W0xsV+JpVuNNWc82QZ86AGw+Ir4cAAAAAXRSTlMAQObYZgAAAUdJREFUeNrtk9FugzAMRXG4twFS1jbl/791cbJUQnuAmE2VKk5cKpDukeNA9zeAhP4mwDlgahdAEoDm1dAukIzmlXaB/HBcUGbQJCBkBejgkMrt3j5WeYGD0iAglkXkehVZFlBQ2b0FkKjtE2CjIIYEUfIhESdMCUyWoyBFZPZI+Nks8OUs/f7kXSsLgCxwiRbBl9YRgddazcC5lhnc/T1VFdQObDMIwdJBRQQhYNWBTTCXYzR0AMZIyOy9c373FuQFGXLJLzYFEJQvQSHKgwKwJQAF1BWqIBC6hNlKbAg0GPXyjDHkeqoj6iVAn4DdP/NQhuHxsAr6HroAswB52QUcySTgeGQGg3J8lPY55h7Q9705XQdpEgwaHXVhtHZQX6Whew+X+mfldsn5W3fEYM9fVjfm/pXShd1g38UrdvuIGZycnJy8kW/CDQ5IMRlUUgAAAABJRU5ErkJggg==","blaze":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgBAMAAABQs2O3AAAAJ1BMVEUAAAD//////4T/+Ef/1Sj8shf8lgDReACrdQGLNAFsMQBfAgExDgs044iSAAAAAXRSTlMAQObYZgAAAPdJREFUeNrdzzFuAjEQheH3vNR4xtCkibyQA4CSCyAlfZocIjdKm4sFxAHwGKVmQo21Ts9X//IbE1evBfpBjG9ozXDlJZkKTkAr4IpShNVkMjiJ7wuUkwEJhcAmAzFGNcTJoFisJZph6heJiG7xDLT4XKRC4KiubvSf24kY6hiLnVPMVfE+NhPbo2Y3YVBfPA2/Q3PkchGGx++H4yZvd3GdNrjBr32FeDzPUdN88Mvn7QRHHiSX9SkMwnxYNTdkq7sDlMsLkZHRBEwBGaBpKnQ6GqsVegLIfrDOfOkGI0W7gQTN6JhJQlcYCOm+oJyjHyD+F7jg7v0B5TtIgi1mkx4AAAAASUVORK5CYII=","boat":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABABAMAAAAg+GJMAAAAG1BMVEX///8AAADCbT+6YzetXTKgVjCZUCuPTCqIRyg96zNeAAAAAnRSTlMAAHaTzTgAAAPOSURBVHja7VTLbus2EBX6XOcPimGzL3jG7rbIzChdFjap3GUB65Fl0ZtY/oFr67NLqoljFVDkRXFXOZZnQI/nmOYcnqL4se/7U59xyGGy+qtI+OanHDdWvOLmEkXxnWp1DKZqj43mVB2jakiroH+8EfhZgu8t2BdVC/opWCbKq6hppfbbG8F2juApxqp9RRPDp+G0f112hyF9/9tfxr+wmiF4NvZE6VmNMdyfWoAB3oHRHs4ENrsDgzYChcYc4/3eHhq1YFWOXfr+D3/mrjueIdhHgVgVhMcYu2c1a/dRY473ZwKPGYLh6Df0MzndjvFxeFoDW1glOT4Q2n6/81TcydwOyqHvhqHfH3I6NN3jcBoSDmM6Oq2GUxAqUM5OQTjEIGBhtm28b7Sq2pgnGWJbslWJ/cnP6+C5jGKKlUXvaePrh7axJmjT1ow1r7ns0kZOvpAwt4PSOyFHxBpFtL6vYQIBx6oxq1zZJ4IvVGy2s2NkgEO0ynYcY7yvg2pVNe1zp0lh+RD7/u9EMDvGath3w6k7jOkxH2I/5AMc0/HcJavZMToLEI0rckSrx+GztcGsqncQcHfuWtmskG69c3TriDlaFbvPNUSwEw5V0/bnLtLZMSqiCrOM2wgP+1A2eYSat/G2A8YcgVngChaj5G3kyxSqJ2vbRrBrD+cux7O3cXKd4+/T69z4HZFLj3u5tGvXTwmKuEXGCv0rLn9COELBlfqXSxvlvwS0oYxbGl5xSbDsieS33hP8ypG/cyBP7C/qy54I2TFUsE5xJyrKpVzUlz0RWgsEWiprrQLWUi/qy57Y79Ohp6frcsro2ov6sidSAI8GagJhAURxUV/2RG1ijM/pXcUzLurLnlhgOyeDjGVPzDqYymBSd/owHM+eOKMDAmHlHYknELtJnfvDcIz6jici7FjApQlqQGUtk/qv2RFbfccTEWqooDRkGUxUkHGbCfYyeuK8DrqzDCYqyKC+Hw9x3hMpMNYKmIIFIuBJfdkTsw4eJjKY1Jc9sQBGJbykfoJUX/TEgjw2BHKgjSM/TJDqi55I3rmNzwyUkvPkSQj5gzvv6GbZEzH6ADgK1xCDCtISlhJUbpY9EVFWdVSwxUY4WgDXMQgHrsHxCk9sX+ygzcjpctneLCL7gVhAaRaE2QRQBpeM8TXfOPWDf6VwVsN5GRe6l3VwDYHztElvuJQchgmuIaCEDdFForu3dAUBtpIHBnAevKmkzAJAa6heRTB2ytgBE6juFGBBLSwzXf+zDsaBrwUQiAnALChFwIB+DR28X/4g+CD4ILgW/wAFIWww3uybGQAAAABJRU5ErkJggg==","camel":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAATlBMVEUAAAD8w2n1ul3prUrbnz3xi1ywmYjLkzfrdTmoilu4gieqg0Scf1DaZiyMcEV/b2OnTiFtX0h3XTNfUj5VSENfSCN/ORlJPzBRIQwvKBwTHWK4AAAAAXRSTlMAQObYZgAACApJREFUeNrtmItiqzYMho2kE7VeKbRJGX3/F110sQ0xlNC0y85Z/6aJLwJ92EYWhBC6U4iil5fjy0uYCppGPmEiRIyRtSBFkVVYC66maQCbs8JH+iuYDgngeDxuAwAwovQhInA0GpAazwAauBbgcAgGcBTNAUBOBLPrB0A+awrAaADMMwDYAkjmXQb4+wIAFQDDkgAQHKCWHnYNgGsdABpYBXgCYI58K0BUMRMicTRlAAQAXAbAx8dHfGLmpxUAaK4D4OwfkLkCwBpAqZ6ezgBPT1Iu/fsXoQOwAAAgOYH6yLeZFKQOJut8fX17ent9XQcAhD0ARAhYAAQH3t7ftfb+/gZClwHwTZgeXx8RpfxpgOcCQITqQ1YBJ4DJCCQAdIDz9aukgPjZNWBBJ68AI5DpiIEIVFEEKmEUFAyAKCswf8PyGsAtgBeLu+5fgG0VEHEQbwXA2QhFFNbUFBkANHMB6HVlgGMGkHa3YDIAZUKKMZIUzL+OwToAFE+N/+UmrQBOASTurgGgE5Ao+Qe7F8KaAJNrkTlzlLME3ucwE4QMgJCngIg5gBO4Y/sxrQMgpqtEQkLU7wwiVflUQ8h2E6iIWKRxAI1A/8mmAUQY1qReHbdIWmDWWgGwDjupSVQFVIfyXQq4FBdXMok9Nub+LPk2AA4I6ZILCC7dBSuZxB4b88zEImIDELcZIJWJkJAqgKVMYo+N+0ciGwsFmM5ALhLLnwJsbeQ7bAyAAIGYMgAnAiz+mVj11QDqH4EsCjrAljYziWJj3RyLagAktI8RMIUtbWQSRZHZt9lVAGZxTc+EhEZA2wBLmQQvAcy7DbkGiM9Hfubjc0S3C5uqMwmRpjIi9Hs7+AAROYAQ14P0fDw+H+XrYiAbFTBYQc/pIqLLTEIVfBNSC+JQ+tVadX2sUvcKAAbARUQXmYRfMjg0s1bNf14FeuD1sUq2J2iQUH8b4qnoMpMg8RIaE5OIA3m3E7AYXR+rfGdH39fTNfjv5UaOZxUAJhuB1A0GIEbboaIApG1U3bh/MoIagAjnI7AEQLQHAETEBCIFiHJmKyxlEgVANJkCQAMQo+tjlR+ZvHjcIbddzCTyIiRi4ckGnnCL0YeximcAlkawpRWN+08El5mENTqAj1SIeiw5tk3iZqwqAN7MYuMAZQSWMwmPAzGyAzAno+VoWcWq2RSgYzFj0/gApDNVmYSYCTSILZtN7k0cXAPMY5V8pgBGpABGkgGqTIItnRWB+YuBrBOdwGxmmscq8zGZAo4mRmjm/mOVSVhCb4rmTwDIbdhBLwDqWGWMDhCTHIBUalllEjOAyOs2M1WhQk1qgPouWM4kygjYFPDEhsxmH8D6CCxmEtMRiGs2M63HqnoNlEUgzcuZBJp0KtdsZlqPVfVd4P6dYDmTQJPBrtjMNI9VVSByaPYRyABmVCsDmMK2qlhVRULzawCRZkbogvwE0yBKgeQ3Nc9VAUxiVQ3gCbcGy2ozcgDKTzBi5G8TGqloq1mU73ChKlaJlwwAYHcOAfgUuOYAVN4IEBIgkdZUVACkWAOUWFUBgG2HbJsh1GtAz5sB0F9pIBFpbQ7gPVc/GdUJSfJfRiCfFwHBLpKJDZkQtZUEUcTWVwOsxyqwlIwtJQOOsQxAAdA29a5dFEk5jcHaDICjnfv6JyN7s4SMoIk5c0kIHIAFwNeQHipOSBxZFcVWARij7bY1wHqsUv+AhKAEpH3qRWTH6hVb3GPx7GKeNiMjl8fXfU9GnhVL0c5WQvEXyV+q6o8WSoMWbQq0XDq1Vo5LQv/dCeDnqAWz54LKJru/GcCvL6uUPVsldD+1XTm4AEDYI7DrnF0hpjKQrzzKLTgbIRsbx4MI+wHyO8lyJSAVL4p/JQD3KJ354ss7TDsuWh/uBGgAmTC/1wWgNOeAFE2EkNYEJTutMEKzC2BcADACBPRNldK6xwkApnuCiqH5NwABjwSwBTDUAHIK9sQIPLpaK6ImSfKFmJ9Bix0xa6t2ap8W9gHYhHuMRf2j6GsCiSPbh9DnPLqVZyZgrQAOJwUK6+pXXrJH4pxykzqBRgGSCHWWtS9bMkWwPduWMpMVkrP24eGh7YfhQwDf6/NG6/Eb9cxS1T9m5UTpy3Zi6f49qfWJrC67d79tGyrZLehZrCgngQAYI6f9V+v5CTbb6wSopO5coVb7IAr/ltqhFw1t+D7p/I6iUGsYx2GQr3A/Cdmt8on73DgO/RDuqr7t/1yAdq3WnSqAr/dSolldO5xuXgPbXsqOWtcOh677srtgWK2N7sTVjaXYnU5fEwfavu+G3gdRCl3ft63GnrYagTtEwjVqL/SC+uvXL8Gt274PSgfMh6w19Uttfy7AMPbmYRyG3jQstX3n9jOI9Ne11BZ+9KMf/eh30tj37XkLa/t+vBdAa7oXwJABhh+A/yVAOw69J3L9MPbjXGFRnrkmm9t0dpnTmHFsLxKNsKgzrxCb5a0AYXKGuzzq3x+gHwpL/wPwA/AD8F+OA22/0fW7ArTTveCjzait6KquT6mf7oYfbUb9sLGMvjsfuD/AuNH13QDDuNF1f4D7Pxd0J1F3pycjf4vbHQ4b8aKqjEPvMzDus9zWNoCfd7C3bTst9wMMVWWv5e37Xl3ZtvxjAA790FWn3WN5O8DYySry17ujlK0STKk+mqUbjl/22qAbxlM57eTNbnKQ62JZUL3/9kDUnfur8LnD8vZANI5V/L7J0r12G4XqtFXFtd/Sx32j8N0Ap9N24R/eOq3aGiGdPwAAAABJRU5ErkJggg==","cat":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAMAAACVQ462AAAATlBMVEXv9O3r8Oj72bPW1sz71Wf2ymD1yF7ywFnxv1jvt1Pqq0uvdh57bWJjSy9KMBc6Kh0RDxgAAADq6urOzs6vr7C+c3NanRJWU18kJDEcGCdfq47cAAAAEnRSTlMAAAAAAAAAAAAAAAAAAAAAAACVcz0/AAABUUlEQVR42t3T3VrCMAyA4Yi1SmtlSxSS+79Rkz6R0dEywTO/0rPyPst+IFhiMSJyAW+amJBFA08EEWBeBQtQ/1BKuRuY5yAusACo4ABSBUpFxbsCPkJKDgiLgAktANYYOFhyDlxQgFCFbUA6VaGg9lsAj3LExmBCi1i8MdDNBWJ5GBDmFmBhFuE7ANQWgInVY+q8B8wh58w8gy2rBxASIRJ2gVwBOOf3oAFQ6wL1kP0QeQU0AhRdIb5eAe+15V1vAWqB/X4E2PgrADtA3O/XgJ3WTSDeCJi8zcc4eAo+QroBsC7hC4AMOAspxGQNAUZdTDwAtkdAQrTdALQAMYX4FkIYA1VwoNZ+CynqCLeuIOSkAYyAqRZjFyDNAe8FytIOLuoCNv3hkLPtkP3k8xNc1RthZ6YiPwAMmmoAHUC028DGCKevkwg8DnxafwDmO/uHwDebkIAap1EwrQAAAABJRU5ErkJggg==","chicken":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgBAMAAABQs2O3AAAALVBMVEUAAAD////i4uL85XDT09PhzGLGxsbgu2nTrlrQqT/Bk0OWcjRjVkH/AAAAAADtfCsnAAAAAXRSTlMAQObYZgAAAO9JREFUeNrtzMFJxFAQxvFZrGAewaMwwxQg2IA7fMzZElQecxZswHZc7CAd2MM72IlJVoXEbATP+7998OMj2kmHW6LXQ9/T0AUt25UuB/D+dgQ317+AXLZ7OgxN4vmJ5vGxforGXhbgSj9ElFqjrxYXomN+GriqmqG1H3E3B7DmQN0A0Wpk0laqKlw2gKv9AdycbRNE1dgA1SOy0hTWQCIrgqaUlnGBqkLY4aeAq0FYfT/OFRBQVGERWQddAKh7ZuFVUCwqorow8166jgVzoBaZWV2FRZS5iM2BYwKwBzEfjJSYg/zOIx7hDk86948+AcUmS5dD8ZFCAAAAAElFTkSuQmCC","cod":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAJFBMVEX///8AAADr2sPWxa3KtJXCqIW2lmusiVmScVqEZVEiHyYAAAB2QJV6AAAAAnRSTlMAAHaTzTgAAACbSURBVHja7coxCsJAEIXh5w18RSRiZQT7sAS8Rgyz2kbYIN5CiDBbx8CewHM6QS3sLf1hivl4yMc626+ZCgKQzENVF6eSsaCVkRCRfCiZhFYwcM4t+13SqFdOwS6/Vw+5HA3qFyz7beOqriX9ezFsKmlcySn4lFKMMQiJGYWwR9VQyTnGmggh3M7eeyGBQ0u4TwZkR/C7P/weVk/OOkCzBdD8ogAAAABJRU5ErkJggg==","creeper":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAYAAACinX6EAAAK2klEQVR42tWZ61NU5/3And+L3zTNdDpT08Q0NiamOtFG8cJlQa4uy22vsCzLLrssgtw0KooIMcaqFFFRXOSiQjA11lwIVRF1QRBW7gIuy9H1pLgpM9SZ/hmf7j4zzXT6Jn1jkTPzzNlzec6e7+f53s+yn9piOzdzwltJp3SdNrmZW1IHKc5E+ufvUDJhJndYR4/UTa5Pw8ePrWQ1mrjp/5qhhT76JRfLlvoWcXYzceei+EMAws7v06n070R9LpXxF0NktKSjuR1L7/wtSr3ZHBgsYNDfi8Gp5Za3gw7/1aUPIHkwjLSxKAytGg5KBZT1FOD3+/nkWTH75uwMzQ0w9sJNXk86X/nbyT5lpuqvhWSPJnFL/mrpAyh6bMI+osPUmEnetA7bPS0j824OeXdS6DbR4+ui23MDSZKYm5sT+3JvPoYuJU2e00sfQHrfdpTd4bh9A0LVi3stQsiqsV3sdtnF7wOTeZQ/ykeWZbzyY/IeGnDUOrgndy59AHG1CmxuHa1yPabmDF68eEHB5wVitXd2Z9Ev9XJkdhelXTYBQ1+nE5B2XilgcL536QPoePInrnmvsOz6MrT3NUzNj2NxWshx5uBodmB2ZmHo2c7M/BTGJgPWhmwRKfZM5nBwomDpAzD0a9gxYhQAXr/6Os8XvhcAhuUB0j/X4BjWUThnxNRjRD0Ry26fhYzzBg75Cyh/UPjqA1DPxKC/r6Td24RjVI+lJ42cOgtFY1nYh/Rcf/wFy7/9JZruBNrH24Wa1/gP8tn0XrTONEpnzOwbzaPl6VkB6Xe33iWpbjslwxby+4w898/hGDSwtzdPRI978i0+9lnZNW1FU5+2+ICyHqSgP6PjrHSUlBYV2t446qQTJN2PEgnQusa1ATAWElzh7H1UiKYhhTK/ncJ+k4Cx566D5AYl9z33gwDEuC13cGikhPl/PMfRZse90EvpkF1cW92+msrJQgrdWVzw1LL4Kt6ow+fz0em/ykXpnMj24k/GEn8+AMBTTvJoOKsy30KRvZlG+SzmS1m8q1sRPBYrWnilUHj/q1NX2dS1id989zY51VbMrZlIPi+H/1rMoYDArmnXj4CyhtScnq1h73j+4gOonCrih4UfMHuTyXmqpsN/DZd8gxb5LK2yE81UjBA4cCvFMyaSb0eK329FvUGVpzioDQJE/qwRi5TG9/5nYv7oC7fQkE/9JVQMltAr32PFzTf4xdev0/aojdimGJTuMP6vbdnPFhWAozsDkcpOWcXqKFyh2CU16uloqqUjnJZOUOgy0yTXs1L/Br/VvMmw5CblrIpcr4bM7kQhaPXf9lPeJ7RBCH3YU0qLVMdl2UnR7WwkeZY94zmUDxaKOsLQoqPoSebia0DecDoXZScJDbECwPKOX5E3qSX+dhjX59r4s9RK+kWdUPnA7WKsMq2gWDYxKPWxe9gmkh/9ZQ2Vo6UiTzgwvYMDDwuCgor0WFevERlj0YgZe4udPc9zMM4oGZOHFh9AbJOCK1Ije6d2EXVRQeaFDOJubqXaW0mDp0ZUdcVXi4Tg/z4c/QbSL2nRtKcKDbjmacXozMDeamP/QD4LCwtMShMMzw1gv2wjsS6Bsgc7xPlPPKWYXSkBGDYWXwMmdUEBRIJz1ddMu9yMsS+RG95vSGlMEit94m9lwuYbpT8Gzwsz2FYfQcmMGePkdjq912iW64MOVAh9yF3K7LwHq9PKvhk7H89YSW8w0Om/hnu+lz0PczFeNlA1Xfzq5QkZl/W0+xqEEzwmVfG+6h10Bi3bdfEoDKH8ZPXYmIA07xUFkk/2sacvlztyJ9f9X9Ar3eVLbyvai6lBkxCmUDCQyRVvCxVPCnCM6BYfSDAiqM7Fc9RTToOnmhXhb/KB4X00VdtZqfk1PzU/GDojzmyiyXdK+ABbgw31hWTOeY6z85kRw8x2kTdc9jYQcS6MzR3riHVFcdxXRlpf7OIDyD2Zy+GZErJGE0U4eztlOaEV61hr+oBVmrf5qfnbasJIm1BgH1YzK3kplIzYn6gxNOsolI0YHii5LrdRIBkJda1HRJ7eUHIGNDxaGFl8ADMLjyj63sTO/mBr6yve177DyqS3eCN0Oe9pVvxXGmCYiiPTpcITeNa+GRtlQ/kk1Megn44ht19H91xHAHAqb327nJQBFbWzxznmKRcR438ucLCo2ekxYvWoaXhaJ1bkva53yK4145YG+HjQjqYrhpOeCmESyV0Rwjeo7ilI7FaIVpnyYSiq4fDgPSJ9zn6YSlqtikfSGFGHN+NwGfjUWymumbtTRNTR9SuxdxuELyiczRDzj3krhSPdULWWNRnvCT/00gEE/1T7OJbtfwnn/PRJRNX3zWtY2yzMyjNknTeyz72DW/6vWd3+Hkc8VWgbU4WPiOvcjOF4CiFHP+DDPatIP5HGGtNqdrgzyGjS81R+QpgplKQj0XQG5oef28oV2RmYnyaSqdIHVlE3FDxLF6F395kS1ls/JGT/GrRNqQLuSwegcaZSMGIUL7Kx6SNCLm3gnq+LHZKBfRO5jM8PiZfXt2tYdWOlKIxCT29AUb+VyMBQnNmMyqUQqx92KoSPLOuprDuIZTKZ5PEoATTqQhgfFa0XYfCy9zza5lRMLUZszTnoz2pxPDBQefIgIZaPSL+kF5mpfUaDeiLm5QMom3Dw2Q+7eDo/i31Wzac/lOJocbB/No+Do0V4pRmsj1Ip8ZsIrRMtcsJPhwiBoxtCUT0MReOJFoVT5piSbF8qCls4m459yLbbm1D3JbHy9pusav0NIbYNNEunSGxMEN2irM+NZE4mElUTgq3GROa0EtOTJIQZ3n0b2+D/ICzW/r2C8gGRw1Mynv2vUPfjfmruEbl9OvIHM0W1eFE+i84TTfL9SCIDKq19vA3lnQihrmXj+aJrvKM+jy2V61HsD/mxAoy5t4XMaj364ymEVq8npGINH5jfZeOxNWwIqHxNYH6mW0VKb7S4/2df/D9bKta/fACHRoqxNdkEgP8QXuwDQxRE6XeVYvWD3wlSxxSo7oRR7SkXDdOw2hDhwAwXdFhdapHsZLgTOSkd5bWm1/j5n36OqnubmK9siEM7GUuyK1oci/mnN4lnJThjSOmKxdFsI6T2Q2Euy171LbIhTAgfcIoilT4tHSHmeAQR9VuFUOrxSKJrtlBRVyaupbQkkv/AyA3pujCbmEZFsM8gntEr3+XIuU+IyozC2mrmxvy3rz6AkKO/I++4GdWJSNLOxPJZ9RFR5YkGi+xENxVN0QML+2p2EXl0I6b7SSKcJl5IQDsdzw6fnrGFIYzjCcIciqrz6Jr/jpvSN8Fy/NUHYO7WCJtd17saU18SJdUFRBzfgPlJkugFnJKOkuPS0OG9TuSRjYSUrWVPTQlrzKtRnNhA6IH1VJ05yMZAKN1YsVZohmNCg8GTENSqVx/Altu/FwA2XQph273NQq1//+lq1u17H6fvlHBusefFt0VsPTp0dRoRYYyTcaJeUN0JF98RExpjUN6NEB2prEklCbe2cmwpAPjll78QAPJHLWxoWidyg8SuSMrO7KLs5G76JBc5ly3onGrS7kYJh2rxpKC8E0Z8QxTGVl0QlACnu6BG2RxP/M2tXJMuBfsRS6CtPhZNm+wU9noyMAKrJjrK33ivEGLdyOHnxRQ8y0DfrAmGUfElKfNuUgBUGFkziZgmVQzIvaIBUx+A853vS5J6FOI40Rn30gH8ExZbYyyH/1DEAAAAAElFTkSuQmCC","dolphin":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAP1BMVEX///+wwc2In7V8gp1ZV3NXVHBIRWP////D0uO/0Nu9y92wxNmwwc2lutCmuc2dssmSo7qKmrGAhqJrcY4ICR+8V/49AAAAB3RSTlMAAAAAAAAAVWTqWAAAAc1JREFUeNrt1GGPokAMxvFRz9sd2+kz5fb7f9ZrmYECnuDmkn3FL0oaSf8RJaT7iB6Pz8/Hg3J3u91+mzRCITtVIJwNS3JcUzMHSlkErtfr3fQAPQxB8uhVYPAA5xHf3fQNSguU6eSLwJ9hHXBpROTXR5S7F4GcLTBd5ioQP9BuwJF4gWU/wAt2tumBpnQRINoEhGUORIHeDggE0gJlWgLKPHUvLkEEqLUCIhZAVQXsaCoAP2q38yMG1Y8vdcOg7utD9VsBFgNf9zfEcO7eCuTMvdG3bb0X+K3AL3sDzGmlFNpVZskB22xxR9sRENkGUAqA4rDWPoqPk+OngIaKWdVnaVAVo2pDBKotGl+KQhurUa1zQAQjMRHICywCE3/vSrq2h0+/8KnDvC5s95m5D6ntR4BZLpfL+BgRv7WEKKY0Y03d3UWALZ5GlLMAkjPFdBQgskCOQKbl4ThQiEoEQHlEiGkRwItA3OsKalsa07cCg+/51hBTBGQvIIJxTWHUJ0Bk/V8AEXsKpD3M8Ux1ywCI8F5AwJD/CAhUtBUkFYeNMvlXQABVf3kCHgBq1YVagQgcid2N6tIxEWGXZ+ykScdie4En6XQ6nU6n00/7C3s4RNq7Xn9vAAAAAElFTkSuQmCC","ender_dragon":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAMAAABrrFhUAAAAdVBMVEUAAADgefqKioqFhYV9fX17e3t2dnZ0dHRwcHBpaWliYmJdXV3MAPpXV1dNTU1LS0tHR0eWALwjIyMiIiIhISEgICAcHBwbGxsaGhoYGBgXFxcWFhYREREQEBAPDw8ODg4NDQ0MDAwLCwsKCgoJCQkICAgDAwM0IucAAAAAAXRSTlMAQObYZgAAEQRJREFUeNrtXYt22ygTdm13JSVxnKa/XQsS+1/U7fs/4goj9AkNFyFF9lqHOWcOFwFWycx8DAzqStHb2/5N5Rjn3Mfh9uH+GAc0rG+YRvZ92+/3zQCMH49HyadjnWfgaz2zt1dt6j4MZcknlT82KVP9rykI46g+jKlx9JhH/WzQBOBdkdYcmoDX11eVK0v5spp52S+72/v6oV71USmIjiPbkL4+ouOU5fC++7e3RqQ5/3U6nTQz3i+T9u0zVz/an3OZmkTac0b7DiDefYfhfZ+f3/bNAJhzLXxG2dPe7Mdc9eAViI7DWL8/GzQB5B0G9f3+/e0VAxiC2Ct72qMt6ddpU5aSf/9Tp9YXhxKRvkMnAL+FvFf493me/yXTmk3B47xftrRHW+7oB3aKIhX4vnINRQH8FvKevvvn3fPzfves0rc96wsi65Y5c7fnui0sP2Xmtt4hJRqKAuTd/X1fX9+enl53T69Pu9c6/xpCAdKetoUAU4YozoUCx0gUkIK8e3veve32V6EOoQBpT9oSAQ5bcqAAVSgw6RsYh3PaN0yc+VFgqNV1oYP/d8F8LAqopRQQB78bohgUAPHSKrTIe/rTcaajgEIZyquhRFAgYMUNy08t8GBLjvZQqDCCjPRHfMT8gmhZw6OtzQIPteSkPeMsqq8UeL3+N/0T7WMcdbvAWroVvkZ4ugLuWMNTxHD5AmEUgBKRvnGW/0RQaRCahASItrcKrdMX8K7hz5+y3fmslAh5WR/qSy1/D5WQJ1ZzGjtQgEWigHz++SnbfZ6hRDIv67197ejDnPm+1WyEBRZTCxKHEnTL2sqr8iAUQL13Aj4+ZJuPMwRY5mV9AEF8/git91hfziPKsPbUgY32BajAc24ohacv8UGQD/sFjBGr7y8zj68AjvcFjn2B56yvFGEE4SyQp+OUPUsbLJe+8iRfAAIPhYJSDEOQkuYpQlELCuZmmYXLHGV3u/Ca3BB4KNsgFHCgD3chFDU+YBbaEXK297YLr+cNgdfLGCgF42wYCtjzzMj7JqAcXSY+RBwKGAIPxPk4y/TjQ+aHoIADlcoACritN6fP3eVwvW+JRVFgOFutvQuhIlCAWnn6PJSnKKLGNPf9+8se9RwCDAe3aav3/Hvv7LT8zIVEAatOygQVSF/aDsx99UABn3JBsPFbkXnfTgyPKMPaU0sbjQ4WX4AHlAt9I/O+nRgWUYa1j/AFOEMf3jkEO/z8+fPw+fmzTj/PMv9TtjMPyGQf9Ee9f/1PEcG3E1OS8jH0fJgvgDZ2Pry/vx8+Pt7r9OMs8+94FmSMH3wfigJEwMaiAicWeIgv8CUnwp73CfsC/jV8EBWmngswhrbmya4qrwaQC4kGnRGUx5CVD6BCOe1cwIoy4NizAIJEwR0hzkO+QBgVgALxvgDHb3KO8azto30BO1qFUCBq7U9QINYX4F1rzsjvk/ZhXyCICBEoAKvqKyNfxvsC2FWSqf8cItoXsL93wBfg5FzAW55yOgwU0P1Jv0koQPNhX4BY+cCOUSQKcCsKYIlDfn8CCnDkZ/cFqNUdfC5Q6rYqlTwWBfA+9N2G7gixoC/gbR+upyig26oU449BgbBvQscM7viwAAqwqBghigIYkyEfiwK+9T9Fq8Bp8CTfgCJCwKqT8caiAP1dZz7mNDiqDOaDT4cZ6TcuLkhxB0lUvlUAKJr/XGC8L0DahX2BMApFRIdGMEEB/9o/phyut59GXwUUB3NN3oYa1v6aL79fvtX08vuCfmELGtr3D5V9J7OE+dTTaEv/E9fvggmIiAnCDg22HM2yFmpSPsWcDmPMSez1Ay6/f9Qz8PLj9wXt4mJq4tlhgX2Rosdmza9OpOXuT9O33g1SYzZl/RtqPFX2IsDl95+Xmv5ABeYnxuN8AXraXPNB5g8HxsOn097fryfgz48ff/5ABeanoC8QRBFZdzgef177hHwRf4ySnABJUIH5KTJSFKEYunz89vKtrCfgndeZkxGfZEMd724QJuB2KhARKQp0gDLU7b69vHxjdVmmsmwokM83wO8DBRTdUgVid4QCvkew7PMDMAE3VIHoc4H6Gay7HVXa/KBIVTjTnQkorZeCZqDoSFEWPC0m7QMogDU+IypALgVNp6mRojTmqM9xkarGCbNHBfb7t/08KFCOOh3WbenSCu08t9ZAxpbqpaXSci9iBhXwRIp6bpOZVp6zv1++XenlbziwQAke9iVaZcIEoJ1xNXQGIrsuodghRnyD/7cTwGzPwyjQKgEmgFmvhs5BFmsfE95wFdx2AkrynJQH+jI3RYH4GCFttS0ogOcnLtsj5UphRvLMKECtvbt+KlPnupeXKcrN786IAlxbc2LZ4QCjfvLveeKDfM9mQ4FYYfwK1OEaLbhCCSgVFFKVgSi7nQMFIFzL5vwvoIBzLQ22L2/6yxXkewrQllEPNhQETBSIXN6x+wLYByQoIC1/w9/z799l2jKx4kGO3P8fOW58jBEmQCpCixby2X632z0rllc9ZaoYiIAdnTDHWfsZxrX7AtgINU+A9b1oxfv6wr9MFQMRYFXjOLzzM8O4dl8AG6GGsrb3op92kl+fnpA3EIFHCGZ05Od4Hnz3mGMj1NiR0uv/mq9Cv9upVNZJJhsakRze+WFjxou/e8yxD0iiQeX6/8r6wr/MNzx5AsL7/5PGDZ8u0wnovkvkXeHx7LLWI1Eg/u5xdxeIRZwqT0WB8K0xNse4nHkmgESDRuzoRHH86XA8D480xQQQFIg/HY7nQIxQNMdHmmICjLV/5I5OPIdjhOZBF88E4Ddxihymuaz1SHSJjzS9tIQ+ZXkrFOCc+erH8/BIU0wA+vDZUSAcEToZXRz1ngnAVyJiUOD+vsD0GCPKYRS4my8wHV3GsedwcwYUwFp+RnRB3FIvL1OUm34zTABQ4Ia+AE6PZblU7ciuFNqGUYHx/6gv4KgfqwSeff15doQmjutEgTn29WGxSaiCbzuzbdf202M0ZYwJwcT4qMNYxju0bQ3hn2Vf/5F4tRQq8jy/Jbtf5F4TkGVZsV5nRbZeb400U7yuy0hlXf1cporrtiiD67p2PFlux1y5KF/dh/Jiu91sY7koxvZzv8j5cp8J2Gw3m2gucvSLYvffObvTBChhjeZsbD+3Ll7uMwNFAQGN4KLYjuvnfhFxPt8PBa4CmteMNM9VCguuhF/mNyhL1v2R5i33FCf3TsDlTihwIw6gQHW5qRLkRVHckakqbPLL+ZYykOcFEVZVhjDX9aYAq7LuhzpDYVR7jKvHqp/pvpuCqsI6u07AzeyAWsJgKRPF6De2P1WFbSEuUgluJQOFtuajUCAvSP+paLDNxVnJwG2EQAuzSuMY/fLR/ekEZGoCbmUJCr1WHyHA8Bmy0f2pESwqqQAt3wAF1JoeKeWu0KKueV6nqp9uo/2DXh2UBfVWFKjU3x88Nwrk92MrCmACuiyyOR1lup8/th1o3CfVgQImVxCWeYhzXGr3neaq57gY4z3kwyV6FUXqaU1RwGRR5Le4bIVQ57HtQKwTJh0Ik6AoQBVgK2aERZxKt1ue4XYq9YZ6tFu07jAJLwqAi21ezWsMGfb/h/y/A1y3DyoV2loVxo8CUIBNLmaeAOz/D/lqNGNBoeb4PwY8n2DxokCrDFmRiZn9A4Ro+4XVvEXmRQFczm8mIBYFKq0AVaEUYzUjDd3v56fP0+nMuEoDKMBlO8QnxaKAAALM5yTHfyHi83j6lNZdpj4UkG0YMz7CG4kCmIB1pvJzWf/eF+RUeiy59W7wx/H0IZ+pNLy0AkeiQNVRgKK65me2/jTlnLY/n36dT1ynY/+HmQEo0KY56mb74gSzp5zR9ufj8fPEdEqe98Mh8OFeogwBFKhaBUDdbF+c6N8Ndlr5o/yHf5yOOqWC3wusM1AAS6IwClTnJs23SgHmUQJ8PxQRpShTK3+6Wn/5TKVkPBKSwTinF2+4BwVyZQTFWaVy61DnZxABXHbvpviiHJkAZf2POiXjkfBqxjgNtmMeFMhEdwKqrFaAJi95FhSAcJKUTICy/keVuifACPMgwXoe9NAWX7QK0HOQ57hrDOG0pNzgX8r6OwPkIPhUGRBs50WBQnSWwUIqgMzPJQP4fqghpCgz8zulR2X9G8FGvSqbH/6iyqDrvCjQnYAq0+UOz+cDQEibMvmwbvn+fn5//zi805giy9VNxCupZ1AwDwps8wp+gCi2hWjy4Bm+OGFYf5SpgB8On4fD+X+H2WKLtptcSPTXCmDdIfpSFIDAQrBRXt2atutMQAGyNSxAl79wAmCpCRrAgb0hba7LnkohQNEoxIXwl/oCuE9A0eD2E4BlDxTAwnPtBDFmpqtb03otJ4AoAOUZfAFYf6SrGxJQwKUAMxyaEetPfIFbEVBAI0C+zYXKO/gLUQDWH+X7oYBWAHJGMIMlcPkAGh3uggJOBai+XhFg9a07QvdCgSrPN9oxBtvl4ct8AaAByndCAYUAPQWoxHkGRMA9gM7llxLpXVDAqgAV8hae6X7CfVBAK0AXAUSFvJUXcFcAKFBk6x4CIO/iL70rsJYp4v91GQFx9rsCTRtLH5nirkAIBVRMTgHhh0Ps5i++K1D062Q8EOoQF4Tn6Icx0Eazjg51nhGokGMshwSEf7YVwT3ignBoxlkPBZQCZLAAs04ABPm2XGK5VfZRYFszwiQG8mj9b4QbAq7TDRXg4vq8fdYKOSJF0V6PSxRL/fu4Wm5Rf2Obb4AA4NmMoD/mX+fRRrMZAm0wqeu1y+VvKuFXitBDASBADE9BgHswCZ6bSMXqYWiWJdclXz0AwQHXwo/8NMf7XGWrhyGOHaiym5/y97+IB1IB1u44cY78pO3Xy1k8hgpgG7YRfuQnbL+qSNLVw1DZuXyP/PjtVxVH9Ego0J4/MI78r5EqoDdLHh4Fjmyk8Csu1quHoc7/VgNFsKFAXvgPwbq+QL5dPQx1LT/jyNvcdGHf+dN14HyzegwCCjQHcMjTlhkOxgIssgdSgXYJBEVwBM5Vg53iqnggFYAjjAs69kM4kefYCveyKB5DBXAY16IA8rSlvCk2cAIeDQUQko38ilJVbYYpQfVQKMAh/MhbD+EuQ5VAPBQKsDYWyVgOWScASrAsFEDgnPejXLgsQ4X+cVEAjjAzlkP2pa5UAuvf/IFRABGprJt3TEC2tiqBiECBx90R6t4Y84ZKVA/qC4R2hJSji8C5LlcPjgLUKXZMwEXYY4Wqx0OB+A/v6ltjuDQDFgQFFkjN39oaMSoeDgUm7PhcQxKEdwLWqyVS5+6wvjgDrggKLI4MK69DJlBHUGBxZH5CZZ1lFVUCoMACqbfU2RZm4Fy1eBQw/975dtPzC8TSUYDs+vRukImFo0DfAaaxQ9WyUYB8Skd9+lB0jd+iUcCy9ZnJIDohMAGLRgG6CySaL74JKMGCUcD2PSlRIIiuKwP5ElHAuv9fNZ8nr4SxHMq2C1QB6xmAqAoVrVlV3fpiszwVcG2BV81HaSvRrdssRgXCEyD0h3AF6rL18lTAfRBWVSqcGbtEoi6vFkbecyDRfM1ZwE9YhAqEJwBwqC6piKa8PBSA1ZepfUmEXaJqcShgGD0hnEuiTS6qhaEAJiAwCXpJVIgFooB9CVSZdZW+pFJVS0MBt/UX5pKouZAiFoYCDutP7w8LfNt/USjgjweqKlGRJdECUMCvANQoYkmk0GABKhAxAdRBXgIKhBXA6yCvFkDYCYxhoRzkVaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQoUaJEiRIlSpQo0X+M/gVoPrkgKWtroAAAAABJRU5ErkJggg==","enderman":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAYAAACinX6EAAAABGdBTUEAALGPC/xhBQAAAY5JREFUaN7lWNESgzAI8yv8/z/tXjZPHSShYitb73rXedo1AQJ0WchY17WhudQZ7TS18Qb5AXtY/yUBO8tXIaCRqRNwXlcgwDJgmAALfBUP8AjYEdHnAZUIAGdvPy+CnobJIVw9DVIPEABawuEyyvYx1sMIMP8fAbUO7ukBImZmCCEP2AhglnRip8vio7MIxYEsaVkdeYNjYfbN/BBA1twP9AxpB0qlMwj48gBP5Ji1rXc8nfBImk6A5+KqShNwdTwgKy0xYRzdS4yoY651W8EDRwGVJEDVITGtjiEAaEBq3o4SwGqRVAKsdVYIsAzDCACV6VwCFMBCpqLvgudzQ6CnjL5afmeX4pdE0LIQuYCBzZbQfT4rC6COUQGn9B3MQ28pSIxDSDdNrKdQSZJ7lDurMeZm6iEjKVENh8cQgBowBFK5gEHhsO3xFA/oKXp6vg8RoHaD2QRkiaDnAYcZAcB+E6GTRVAhQCVJyVImKOUiBLW3KL4jzU2POHp64RIQ/ADO6D6Ry1gl9tlN1Xm+AK8s2jHadDijAAAAAElFTkSuQmCC","endermite":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAYAAACinX6EAAADR0lEQVRo3u2Y61ITQRCF5wGsEhESCrkloiEhITctQG4xiQQRuRuIKPrH93+Etr8OHQOloPyQbJKu6prNzu5mz+nuMz0bwpWtL+7LVqkl69lzWU5tS3IiJ9NjL+TZ0+cyF89I6LJ66di8+qoZ5mLpkIhnuqfD6KO4+e/stvse1OqFc9EXk1rpSCAD4G1Pysx46hoBq4Vv5mvZZpifzBuYvyXgtvseDHi9qF44k7N4yXwzeyicf1dsaTY0ZDW9K5WlExvVw1buOOg1YS2zF/TeUM03yaDwdun0Gvju47vuezDTP5dq/pMBfZP+YOPyy4bsvv5u55mnJJhTANKzQO5rRBaQ5fmqFBKbUkxWZGXhvUW/VmgaaH5TFmTGXFfd3kzz21K/501T3qKoGWCCSCbUVBNUtKwcOKeiJRNPZiU+MmOORiS6BDKSBADcvHjeIcEBVwqnspE9MgIgBLCTowkjITYyLVNj8zIbW2D+j7Xf80bd4lrvDv6fMyCSte/WKH0xEfMRcXPA1Hwlf3JnBiCKCOLG4kHnOZExIs8L+0gpAN6WR40+vQHgOefNEeBjj6esR/AMWEvvGQn+nChlgC53TfGRqOOoP/2BAlMCdkTB6crwWbZLF7Y6+HWsIlzLvGZA5zlRygB7YR8BbYAU+Eb2wIBxjHMe8FzD0klvwDzHdo0e+3MiQwAR5YV99PpfvVr7iaodZz7K/soP6w+cAL8G4LaXUIL8OZEigKj62O78diy9yQCAA5RmiPTmOgjgHPNEnBaZ+5wAnhMlAtidtZc7dYRONynmCjIoAUEjHzTyJpAInp3XJRPRY2QViKwRsc3cUafOKQGEDWdOI29LG0RBAOA18qb27AsgJNIEmKJfEcCIOwnUsjY7oa+NKLt6m+Jn2moPAZBDc0Oa9zMBmtotaZS/At7qmpRWAsgOAx+pxuY+GWDKXbwwEm7u7yHCxY7a7zv7BbxljupbVuimiBECEDxteoyIvrOd8qUBZROk67+pPEABTjZo+9sBjx70tfnX3tRUOSQnsmHgbCV/aV9t+Vw9M54aPAL4Xk8GaDfYG5+s/1MjZILHqE2Q7ev53Ra/Zuj7PgDxAyhC6B80BqoPGNrQhja0Qbaf/P4PM3XaxMkAAAAASUVORK5CYII=","fox":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAgBAMAAACm+uYvAAAAJ1BMVEWAgIAAAAD59PTn2dPVtp/nj0G0j4PifCHMaSCwUSKOPyRWPzQGBA4kh8LGAAAAAnRSTlMAAHaTzTgAAAGUSURBVHjahdAxb9NAFAfw8wRIDLkFEsSCG4kMHVAzwAiV5W9gXUdA1omugPWOEdpwzxthaP2qLhnrD9ClHaKuvQ/Vv2OnrZuhf1myrJ/+vvdO6YcZ8p/4jdZqoKLB87AchKCQqA9X2+F1HJa3sNuCUv/3ZfRV/q3hMP4E0A8DSABN46knV1prUYm4FJGK/d4KyJgyTfP74FZQZOZvkiSfG2AA86xYwyHg4x0U9AgUtAlDZiYibvN7Mknyb5PJeKxGVQelIPM4RjVG1Ahl7CF41XU9j8e3IG77bfb9yssJYKHXAWCf5kctoIwnArySra3pdLqzI3UD7RwK0f0cTD/cAS7rwL5TK0D5HjzJfmK7TYhedoBPDCsiHfgf4b0LQWvnOE9S9n5WuAaSXazVgO/AFRn1piIuARUTGQNQEtTg2ekyAghAmAz1wXXgjSGAVFwPWU4WOPyXTeyx95R1cAaQhSZyNrWeiIoWShkB5gDObcpEM9qEfAXG9MC50ua2whlmD3ARzu2Ly+vzL5pZjuy+MPvC3QC9wfXEFSoo+QAAAABJRU5ErkJggg==","frog":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAQlBMVEUAAAD9trb/ioq+rWqxnl+mkE9/oFjlXl5zlktjkC6NdEVWgCLMPj5NgDBGaypJax46Whk3VBkxRhRGKiktJi0uHRCwcSzMAAAAAXRSTlMAQObYZgAAAadJREFUeNrFleFShDAMhBEoZ1x1Qz3f/1VtQm9qgVoZf7h0pqWXr2k2M8eQJMBwSSJSvStpow0sUmdgCHMIbEQTIgCo5CMkzNM0zaEBgPf7x0SNUfUBhHmeQwOoiq4zTPOUhk32BF+VomvAlDAPT1jY+LRxXrQlqA638G3lHkKQxFL0i501vxzus2WIyunjfidUYwb8uClU98mr7CyRFGwrh4ecUwABj61Iwlt15zcwSeHjAGgS379fILxTk+I2mt0gCRmyXpNs5qeJZ4BQKQW43ToABITgEgAU4DaOt58Bwp/fAxChlAzj0zj2gOcKGK8Brh6wyBmw6bv9SCMpAybfy408ZPB4UlUpAp/pBAEbBTiqZO7V4Nm1NESU/BFYdsDSBaQCpAvIDpAWUOwnSBDwSSTt2foUICT7SqVPjx3qaeOUsHBTjOoiAdrr0BCEGK5Ilg7wtwwgrEj3ZKXscnM9AFRCBO5JZE0IGc/+xbIpCV53v8eVjQ9K3qdgV1zro8hrtuIKkC3Cr53dPFIqcxG9EjaPTIPb1DGpVmlEaUNHa924dfgHfQFwmyc0LyT5NwAAAABJRU5ErkJggg==","ghast":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgBAMAAABQs2O3AAAAIVBMVEUAAAD////5+fnw8PDl5OTk4uLd2trYzMydmZlzc3NLSkr5ldknAAAAAXRSTlMAQObYZgAAAYdJREFUeNp9ksGN2zAQRdmDO5iBfN95JlWAgeRuAkLOZuRNzgrcQYLdBoJVOoirjCmRYDYy8i//wIc/n+Q4J7gs6YgdJxFRBBNXVQENRE8yZZG187sKkEIGLi/z/HL5D/Blvt3mH+8Ay044ZgBeb3e90QDVCkz94QFgpbGugOmvDPy2vxNYgMPnDFCAloCoLgDXqf9wfJBgKwAfU/+M8S9AGQH9MXzDSskGYJQRgcMEurkmDSCxfSiABtCeegsssuJbQETFTKS6q6r/v/FOl/1wXSrRtQOESDh1F6aeZG12mKBvC6N9Bq6nBtA8xApM5vCJRxpXAAdgEfg6f/80/wS8wggrMCwjbCl33T09Zw+6dqolB5/Yw45p9xRAORMiaB2hQLTRlLSWHNTXBHICwD6Jv0Qg3E3CGTDWLffOJ7B9NFkTRP1ZYbTRkyCaUxiS6TCyaBhNwwgoOQGcMsp+RBRe38CE4axrhxhKAlYqALmEEqIpRA9D+SwTikQpt1n93R5IcTOKi/wBKsTOnkkgxrkAAAAASUVORK5CYII=","goat":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAAAMFBMVEUAAAD////6+vrw7+zq597b1cLArJCenp6ciHaDg4OFcmF0c3NXV1dNTU1APj40MzImjJ+xAAAAAXRSTlMAQObYZgAAA5JJREFUeNqNk71u7EQUx0eb9YqKZ4jOeFPchjAze4s0rObDQrcy9ngU3QKixDNaueAFaChIFFHQR4IGci2078ADoER5g0g8ANqKHs7YeONsyIqf5HP88fP5j3dt8r+ZAAOokPxVQaDgvc/J9Q8bgsQ24oCnlFehfVWYUMrAuT0CMAZVE8JpCFer8O1HfRtFCKVUFdbeVRVuZ7O+jSfQOGEdqkrHKwm2XQHAhRYFaYzOk76Nn0Kg0GCEBW2O8lnfxk8hMCK0rjJSSrNM+razBtc0vtAppOnhpG9PQlJFmjbYAiTY5bRvO4IL+BS1qWqXJ33bFVzjv7z//f5h88fHfXsREXxOxuwKIbhd4YDSyiDaDpQUAXb4TNAaBdxiQQGQ4+H5U7CZ1kbXeL0rRQqAznZCFDDC1tZWOpbzFCPE0wQKtdHZ5/H277pSUEjnczYIBxSsMVGwUbBRoGNhmrLaZeZdVdf2g4mlECk9eiuXg7Dg/tQZ8+Gytu+rWC4WgtIL9SRIu3KZD5d1cFkshRGpkmqISLLitlmFq6v2arXKYvk5M9qWehBmzrbfN6v21za2WG5xSbW3+fN3nkrgez9Myrgkw9DQ/c3h681WONCCA+wRJlQoyvcJAJwPE3zmry79zIbTlcuHCEbVdpE2tb62iTSZM8ttBJdCkZ4UZG3lRKZHRh+OItgQYebSGj0t7Fzb5RAhmIRBcM464xPvTf20BsqVGtbw5/2P95vN8NoPEamiQP4TCsAAIMUe97oXmo/d7rQCzijITq2QYiSkwAAFilWim9LT6+vrchwRBd7BUKAvBQZM/itIBhyi8CyCoUGV4lwA7okXE1IZ71NKCRFn6fnuBCrRUFpbISSTUnUTKoA363Uv8KKUkluFApOqKBcVMhbUpCykKpVdCCnL4sAQJKF8K9hJXZbleSEW87K059OcRIQ+GYR8mkxre14sjua2TqakF7R+txVwYELK6fz4GDseJwhRNApbEjIlx8tlMhwlREIU9sDYyX4B2Jsd4eGGjPnk79eF7v1N/+oaQnpuvrm5ITPnvD9be8Uov+DATXMLKem5++nujiSZ83W+/oqDMJVm9LP3t1yMJySLrC5z/wUHjjD6aeX5gvQ8/vb4SMjbk18u4mdhBLLQzjmddZ9dTvBTuCekyZOWtHi+MsY4pLWOEGqEJJuHzYaQszyZkbZFpaNt16EhhLuFIhuEoDF78ZP9A0Obf2KBegjhAAAAAElFTkSuQmCC","guardian":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAhFBMVEX///+rjEZQjnQtWUcAAADX1c/Y1cvX1czX1MzX08vW083X08rW08vX0snW0snV0crAuq7Auq3Auaq+ua3dkET/gi+DpZy5k2Syk0/wdyjecipqlYPsZCqFhmBmiYDLZSNdf3XeSSh4dVCmXCxOeWbUQSDKPBxBcVpkW1BgVko5ZVJ5CxKoxgN0AAAABXRSTlMAAAAAAMJrBrEAAAOASURBVHjapZaJcttIDAW5lvfIHtnLYiLDee4kzwsL+///F45I66AkW467akSoIHRhhjOkuq5bLper4fL/wHAhiscBItiMIYSgm+j76GOga1xdXXWD4PNy2epHQ9q1HrAz0+mneCswfeB+K/i8Wi6HsZoEA4vFojtP4E1vO8GmvvWw5QUBEd4TrFabBj53F9LbEfZOcLt8WN2ubi8WTEu7J1g9DPUPt5cLPBM83N3e3g2C6+tu4PqYmaCPxk5w99/9XRsvCaLR9+G0Y8ID3f3916/DuO8azwmMgTA4WuQWp7uvEy8KYFObOQpsR4K7S4kJ7Izod1MYaSvwetoivk2wWAyCGR4PUNmZbawHnOWLBTQeqxgZj3PBWQEHbhPRD2TfrlNuOqCmPQs2I6M/I0hCAleAgtwKNrmeMhIux1lBLwklknpy1l0rbfXinMD0SEDTxDwXLlVt2tubwrrbY02fNZFxlEMoKpB2gsfDHz2G/fev735+/6/NcU6yC0lxVtDbv7z78aff39s6EiRylRFxdgoB//z25x/v/kKa5ygD0T778/tAYMCS5rmKsoTKz9wFYRc4kee3OBU0byJtBZr9SFkViAqsnG8yQGpDz0whWqmi0DynPU4eJmy6xUDLffz06UueP+xnBMkueXPz4UvW9ws+thZEveaBkmV2325ubj59gXqFgPV6r4OhhQ9DD4cCIZ0XPK7Xj/MO8lDgFwWzNcjZDBC6cArddBcOkcyld6Htgx+6GXq+g2z6Z8HivEDPCSyxGchInN3K50A22Iim8ZNAESnFgKTjg5URaEyiAZA4mEK4CtPcCs97rngqEukcW5gJsgzGZTEThBKaYaynEjutQ0FRxs4T5z8kmbGF5nJVumYCtdo28NFDVEjpafZ22lQWsw5Mtmo4fg8IcE6fzjKm8EwALrBPvQckV1S5QrgYMDYHAoHBzjqeQogKRVRIY49ZTjQT2K288NEiQiE1C5AeV6o83wdNXRiYC4KUhFNIZELl0SLKgKn2oflG0saaaMCYsdOZYCQlceo9gJTQrttvB4JdOAVItCcTgl0sYIqRnuKUOBJk2i1pp/fi9BS3a/va4nK6uxqReqHFq7naCix5X3B9kiNB9yToUzJvEVi8SSBDvlXwpjVAAl19h6BX3wNm2ng4/SqB3MCVU5T1OgGokfb0/LVpczpVfuqPyjdt8tQvCjuwWwAAAABJRU5ErkJggg==","horse":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAh1BMVEUAAAD///+lpaWGhoareS2nbh92dnZxcXGPaR1jY2OKVS6AXCJyVBp2SShRUVFvQh9hOh1FPC9ZMxc2NDdOLBM2MCZTJQ5OIgsrKi1JHwkqJR0/Gwg6GAUhHiEfHBcuEwQpDwMjEQcmDQEiDgMbDQUcCAAZBgAPBwMNBgMQAgAIAAABAQEAAAAaegGbAAAAAXRSTlMAQObYZgAABHpJREFUeNqllouaojgQhTOzuurYitKsNCS7pR1lF2fe//n21CUBvMznN3MISYVQP5VKEN0LKitT6Z6rKovNZlMUm6KsnCtgVlVRpbFduYMw8qIKq0zlDkAgd+WrgNKqDNiIilcBmwXXi6rAPARQKOD1CCqroNVWAd++IYJfBVQ7+IOwq55M+PmF1WKLUlRlWRRlWRUPAbufXNiutihlIRE8m8KiwjLxQqHCWVaLtJgFlr6sxqtfoYstURQvRQBgwcAxgB/GusvY8wvVo8HX9Tog+IASRTfbetp9Dqjr3wL4+nCofYxEU8BisX3anQLgf/CRoOjqEELycCuzcvex6voARKQQKGImaPJWUmPoPpb41xQgIplJ3jvuJQXOQTAAKcCErTdspPtljMT5R+w1/CPbZB03SPfv47cRLl9+IHYR1T++AKEdDO7/Ev2TWqci6G8U7XiJAM6ASASeuKOA5Xw2my/b1I4AHyjaCd5z1BFCg04g7WCwnWoCiNEAsnJZ3LPufgh9ZCbA+8fH+yQRCB1Rj7Wftfv5DKHP25Hpa68FHnzYLmDdAdoW5etXhD4yzZGLVAZgZFAAP2e5tAiW6z//WC/bkalugpDWpnA6Se7uALP523qmUzDT3P10CieIRi/yev325vZwBA2lHZleUiA1ceN42U7fz+fvJ1kPKAN0/RFPOzLFjbimyC0DTud/z+f/zifyQnCm9qE83EicI/lIEQA6nUUAgKAAn0VpfxiY/YiiFhwOPichIAuyMl4BbB/QC1GVART1iAQBENAogOS9NACccaCPYQtBAeFGznSAyBLQNPIDpYBAcQLYrlar7Ttqad+3E0CMY4AiAKABcDwenQn29YrmBgAnTgNcFZEB4RlA36JHABQFxEcR9N3n8fjZ9RNAfpsBgIQShEB3EbA/E6QT4x0gzyFQAlxVvZYLnAG5TACQ8Q2AIhEIub/KgdKhvly6z8/ucuFbWYEoeC/mQWQNACFCaDq4dz28u65Hm3IgN3ueqnxf1c8A0wjgBoB4d5DlIEWARFoEYwQ6CMAAcNPH94zIOZBlgz8RI2ALoc4QW0YMX3sGcLniHHIAwS2IP9zNURGyjBkAP10CnNMcjJJoADFqi0AUCF62kHzc5MBLEjUJFoFUDEhz0EejdGxMc+DtwyxmbRGg4CAK9tGSh+dqkgOLIJg3BAMCwFNMe/k60ZCDNIc8AwPAm68TO0O3gCEH+isfIEFoIoM0zKXhbcTbi9OanIMUAE2SCJjNLAPIwdFOFOSg7zkHtvJp8sZLyyjmeEwb7/PX0Y23b9PoLmzYsMVoGrXQGgMyf4/Dwc67rpGmwc2ocBm12kIffic9hEpax3Zjg3Kr5L6BakHZ7jSKAOEScGraXEAl4UkcHDp8feOZYIZctBswPV0ye/0AgDSGPMXGs4TTsKFJys8PqvRXLAihEQQqGPII8UTRAGVA86H+pAcMRyR7WEOGPGTQZECNDcsgsYJVLnLrs9hBx1hqycUkHrUvqxgONt9iUv+p7ocjlD66/wNdcSNfhkmkngAAAABJRU5ErkJggg==","llama":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABACAMAAADlCI9NAAAAVFBMVEUAAAD868b14rjx3K/v2anr057jypXMqX7EonmlpaW6mnOvkW2liWaGhoareS2nbh92dnaiayOPaR2AXCJyVBpjUT1FPC9BOy82MCYzKSMqJR0fHBcP+iOkAAAAAXRSTlMAQObYZgAAA3lJREFUeNrtV0t22zAMJDAg+0ulxm7URr3/PYsPmUiMXja0vPJYJMbyAiOAGjynN7ACCmVkPO0AButlC1ueRnEkgBydAHBA45afIICJ8bEG/htvdhHRcI4APIGU7wVAauUB4wJiUX6OgAIymjaACLNLEBjPxJRZTjkDh4Ag5EHEuCUvym8pgOgTAZFWdw3Gc4EU3LQCpPhEQJbs2TXGpxTbbyygKNIhcom8UpRVbiwNQxS0AytEuvaqMs+YlWz4jQQwMdEL8wuRUgaaAIFyhkjN27ILwgvcjIhsx5AAZiL+8kWDUiiqAHddAL0AAM2TiWvVBgXw9x9PTz++814Ac61H2SFMUAFiplq2dAaYTctRC/RCawCFbQ1B4oFaopwC4OZ9uwJ49+HpowWg0QqAHCgVKdCsf18CEYn7cWbIdx61QQf3AhQQRc67FrgEA9roHK0AVXQCwIAAbj8NSt2R2xvC8R6eI6COYOwFZEEMZmlngGm0BYi3Gf0hjFZDcu58KH7xJhA5GRmCBLCjFpRqTGK3cHgEAGZhrkYA8Fjx+etXIl1MtaDOkgCsS7JsBcRcZF+ul2ngDEROejUBrxTgGuMQKnojMgAMRdWMsRYwRSt1cSy/m9gSSVbsBCjEhHH1oiEfgCVn9h3vb3bMl3oCvABdE9pAYpACAxUAwTP7jhbIQvJBAM3fIfttqS4wZkQIv4+AoI0nWP2lHEDCDaoCDAgQ1ONskQXuL4ibSRD171sQXYCA6ykEBgRYqpAB1tWiHD/U8tfxr8U0imimeNoMiImp3+VtIG3cebnM0zRf1hbTKCQjQ0R0N6Iri4SoQwFrhzSKLJLjgywwgqzL4wcBy3vplf65SRcsP8xbxFjRLS7lBwKmdZknLf28bmgaQv2H4SEr8Ri8pN6ZlnXV69u31eNyky54Ul1xOQ1eckm9M9ljX66/fl4vq9Hn5+d5uAKezD7FVv1W99Q7k2Wd5t/XaV6DXqZpVEDpbCZvQuqdabHE02xZGx0X8AlS70xLvP/zrPGdpvPQO9N6hFMF9M50bxw4033RO9PRMDoVvTMdDaNT0TvT0TA6Fb0zbSbQcpcu9M7kE8hH0LqhZwrosJlAm7mU7od47FmH0Bpz6eev6+XuAqbpMmt0ev2t9J4CZheg17qh6X6ICTSHDzR6TwHrIdIDDzzwwAMPjOA/NfpDB1xAY2EAAAAASUVORK5CYII=","minecart":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAMAAACVQ462AAAAM1BMVEUAAADBxMW2ubqvsrOprq+epKaUl5iMkJKFiYt1g4ludXlsdHhham5SVVZNUVI/QkMaGx04QmSDAAAAAXRSTlMAQObYZgAAATFJREFUeNrtk9FuwyAMRVMa7jWzwf3/rx3QLmsiOlpV2lOPk+BYypFRzLIs53A6hXA617sSzsurEABTSkRPsLxGAIEYI0ACiCAC4tqp5fbARGApJavRsLoggLHGyrWvmAoOIPSWtiamgmw7MgIhcQuAM0G+U+TcBERcY+wNgJwJPO9wBAq3Blo+E+wM7ghSIRqkVGaCPV3w9RsTQUVAMRMC+MlkUHusISVfLlkoW8ZRbRmTRFXNTG9YZ1wdCoTqXsy8dNysuJtQ7Z6JoBTV0rlmrk3gB0zHW2gCU7XS6ZlrugrKxp+Ccuyg3ATljscC0eLtM/d+aX+tVfOy46GAQwGfFsiwA5HnBRwK+O4W/k/w/m+U4SDJ84MkMhxlmY7y8TCVGy8fpsR+WnXDGuPq8mHIN8fuL8tkDiT4AAAAAElFTkSuQmCC","parrot":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAP1BMVEUAAAD/////7nn/6j3/5TPGxsa7u7vZra23t7ewsLCoqKienp6ZmZmWlpaRkZGQkJD3cwmGhoYlJSUPDw8AAAD7udxiAAAAAXRSTlMAQObYZgAAANJJREFUeNrN0tEKwjAMBdDGxpnbZqtx/v+32jYMN9QKPnkhYdBDk0EDHSIQ0CGBDkEV/pFgahtgBhxEZu7nSGj1Ajg6SAmpVQe4M98hgHCMVUAgqklbObgyXwGhXczUWlXg10Z+bj/4i3X19gra1KJrDfVGakcARdFyqyEHS353w35J2oGiBRO8++miqrU2MJdZIN6pJy+Lz3Cgs04yeaees6qeByMypZQo548jLDdl9mnE8D18B+EyBiG4+AGMduBwCi2/g+BiAAJ/BTwEW/4XPABsMA1LwNN2rAAAAABJRU5ErkJggg==","piglin":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAWlBMVEUAAAD/gID/////7aj/5bX12iryuobMzIPCwnTooHTVlXreihzJgmWHh1e6ZkWtVTKiWTplXEOhPjiESzOXQyKNNQ1rOSR6JiF2Kw08OS5TKxpgIwo6GgwhHhyEOBusAAAAAnRSTlMABHH+CSEAAAKgSURBVHja7ZZxU9swDMXDWAMSRspwYiDQ7/81pyd5Vzzf3Oz4t78GRU2kF9m5Hm8y7h8sMM34zMQrcKZj3BvTRHMVoHVVJwRm41n1eSDwYFSB2QW0AoG4psY0JgRAK5BeiV7TWCD2wLt7AXkhehE1Du1BL6CPKT0quL4HgMgFxIBAy6xt3hICsYniHBRIzET+6Ij1jxg3/NUyXxEwiK0wiITZBJC3And3d10uzCzKjOkNOzGrX6wKJoUVpiTJQ5MbVseyqpX9SEQWmHUV+4obhI8LQCd5aHJDBALCRLIaQuRfWSRhBK51M7bKQ5MbqwpLjAyB5Kmw6AoFToZAgNCE0OQQMIXEGHkFtU3UUsUU9XX6DnlocgNNql4HvEuRAzWO/Kx342xMFXbibWwb81TJOS+oOyQg9reK8mafqbLkJR8UEFEW3nRjzDBV8nJwAgGs1qoY5DKB0QrEukrJZc9BcXz7S6AiolspC8AMIJeLQME9xC9JJppL3FmKen/J1moPsOhFzfi4gXNZvMuKdiL0xmPLVjBaHTBiK1DQH8lealfyB1mIsbEqIABcBETQKjiDYsRi84I0WwYp6yeilFgSp/iFBgJVSMchBeTsR82RVgFiCIAJgMRkihBn/w0XI9ZS+/GxtK1LXyaQVnkHn3acLDhlh6TIkQms6s05/Tw9vQUfJzs+3v45Aa4mXCTCCnh3nj73T0wQOY6oQyT080WAqcKO70H2F9tsQq3zpzdLOJ/P7+/nX+84I8SqvT//2QKEv+umGzdu3ABH/cLAFxwVGPuC4xMs353AGAmM/ELvC8b0fqHzBUN6v9D7gjG9X+h8wZjeL3S+YEzvFzpfMKb3C91/5TG9XxD5zgTy3xP0fqHzBWN6v9D5gjG9X7jmC34DNs5yRa6KJBYAAAAASUVORK5CYII=","pillager":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAflBMVEWnra0CAgIAAAD////Hzs6Trq2VoKCVnJyVm5uTmZmQlpaOk5OLkZGKkJCIjo6EiYlmh4VzeXlwdXVobm5nbm5SWFhQVlYyZjx2QypfNiEmR0daLzg5Ojk5OTlPKxlLJi0fNjYqKikeKio+Hg8lJSU2GB4yFwkeHRwjEBQUFBN24XvqAAAAA3RSTlMAAAD6dsTeAAACP0lEQVR42u2VYZOaMBCG1TOCDUYQemeqRDEq8v//YN9laQYckaAzbT/ckyPEmXsfdhlnnUwbwlBKGS7CBjmZfn6m6WQ6G2DiBHUegrTmFUHIpGeQSorT9fcEixANvCt4rwVm4V5ig7/AvQRJ+AuQQPOSgjjwzYHPw4Im267AnaW3wIXbdxINC9zDZUPbADwEHMnztZTrPOc467wEa+SJc54vl3l+bgqADPgJJHf78SXl1wd/oDgb1sMCeg4yifqxXC5Vwk93DAsSMoBE/QQqkZxPEvrDNSxIWJGyIOW4Y1gwG+BfCS4Nt4YXBJso2ngLTsBe7bUlQB6GMQLkrYfAvwJq4Z0KYEDeR3C6QzOGBEb/wQCtRwjMZbVabQ7G5Qk/weFCa3fYIb874Nxa/YLj0QkuN1r49/0eEZxbq1dw/AWDp8C/haLwbMGa7XarjTa2UwGWXwXNW7a6Zqu7EQ8BPfoKDDSEfcJDAYWtIQlTMBVvXR4KIDaoHApotLmWTFWUZVGVXXoEhquHgS4nAF6C2Qi+Bd8CYi60ibIoe1mAvAmy4C2BzWB4XSCszdDDaAGHxVzE2jCxGC2IYyHimAcOBPFoAWY34MFJuxMU+5pyPhei5PPDCcRD9niiHaP34AQlJg+oRFGIqgA9A6Q9XGlrC0oSxKCi/FiBfcJdC27R5gQ49662gN8VV0ibE7jCUOWzH5KiNrgOuwJXEZ7aJ7jd4QT3pfa1oJTKAqWCDPcsU9noL5IKAhUFUaRqAvX/TKTfnHu1gRak8lQAAAAASUVORK5CYII=","rabbit":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgBAMAAABQs2O3AAAAMFBMVEUAAAD02ezy2Ovx1unxzue0pZSkjXOUgWKUfWKLdVp7aUpqWUFjVENhU0NZTDtSSDkNYhzDAAAAAXRSTlMAQObYZgAAAYBJREFUeNp10L1uE0EUxfERBdhQ0PAivAFPgUJHFT5ewC7TBJ8LBW4i3TM0VEgz09B6ptiOV+ARkjJt5GJyNbubtZLdv7zro52fJWtdq5aqENe3prV37vl2v959dK2SCsERQBrYwtoNwOdAP4AVrAsDZ7iUAWSG6B/AZtsAvsgl6VqBjGkEL84/NcAPvBoBlSnFfmL37z/Exxi/xj8x9kBVUsptBsX1DRjtCIAbUkjqSptZYflSyikA0HVdm8dM0pdaK87x7WwC9qTNZ+/ckH7G1Xv7RVCIj+3emXrzdgT0geJczaH9JcKnarlHGSDhoynOg2PJQYUqPpVuDtRjUVGIip3PAedrf7kVLtz0NYXarkUAEBBgGQgVBBeBMlKC+kUQfLQPEyGK3WYLi3RT2adDyr7kYAAbWD6dgpJKLnYr2UBfKqegDh0jx2JH96TVz9tpzLX+MYJf8+Bl+juNuV7FEeQFcPg9jbleH/YDuNvPA3s+jcd9L+1FqEiqVlZMZ/eZmCL8uK8JdAAAAABJRU5ErkJggg==","sheep":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAMAAACVQ462AAAAM1BMVEX////w+fz49vUAAAD////49vXs7Oze3t7S0tL/uLjmlJTAnoa3lHuviGtXRjoICAgAAABdC2QvAAAABHRSTlMAAAAAs5NmmgAAAhFJREFUeNqdkgFy2zAMBOMqONC+hdv/v7YRqCSMPO0kvpFEUhKWwBEv29Rl5MgcUo7U5dDLf7Qdep9cFNJINeEpQCoyx8id8BxgSJHaAXoOIMWRQ16+oUfAyNSMH08BRg5lu/jDDC6HUhEjMzWGfgQYmRE5QhkairGv1PVo/GoFNrKjsLG3bX/7AZA0rjcL25R8u3YpzZgAsANbwvEI2H/lhn6/2q9/xI02oouZAFsIBTZRnAHz90psqKzUrrYz3wEdCzZlcwJ0sVIm12v1Yq73awKEsNMCYThnoOP863ar2Qf79mN/vpvIYWBgsk6Af+tyQaCQcTFnDso29vcAKDG2yxZ0KCaDFTBad7hvb/MVICTseZloK3ohFg+0jcwGDOmUQSJCJjFB0DxhFsCmdq4z0DkDu2MKBcZWBUQQWkvYs8j7m8bYthWAbRVk2SSeHRGmlhKUYx567piHDKiykacHiTAWZmnlJnS8RmoFkBK2FdgUvYjp62Jib69j+ArQh22JwGkC265PQG/erT8fK+AwHkOY6JEG+hPgclFlCoxZASZQKKd5CMsWRCwmGibDprBXgA0gCQKZBgWBlwzALkw15wxIEhMVMtjOjo71FIr5CSj8FYCxQVHYCQSAzdrKmIIy9aaTB02WfZwfIthhImLxwEf9xT48tDImpveRBFAErCUUZeZNA76lD8B9VdX9p4C/n54rtHuYBiAAAAAASUVORK5CYII=","shulker":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAzFBMVEWOYI4AAAD////m8K3h6KjT1ZrHw426tnmzr3GsqGujdqOjdKOjcqOec56ecp6ecZ6ecJ6ebp6ebZ6Xa5eXapeXaZeXZ5eXZpeXZZePZ4+PZo+PZY+PZI+OZI6PY4+OY46OYY6OYI6MYYyMYIyMXoyJYImHYYeJX4mHYIeHX4eHXoeHXIeHW4d/XH+BWoF/W3+BWYF/Wn9/WX9/WH9/V39/Vn93V3d3VXd3VHd3Und3UHdwUHBwT3BwTnBuT25wTHBuTG5uS25uSm4AAADM1DMFAAAAAnRSTlMAAHaTzTgAAASDSURBVHja5ZN/e5s2EMdpk2Xrthg8dKfYuMVet4U7sTr86CRskuL2/b+nnUiN/Xh7nhT2574guNOdPjoJEby6ULFYlEWSbGtp5Sr5ayM6xnr7QsFlR9I4JtswuYbZunITBOc5LwMWlhGZpOUKjK1HAwpCpTWAQq2U4v1oQM3gpQBiRMzay/iLgJUlRAWAKBi2xWjA0rGK1R2AFga5ajSgYI34fAMCP44H0B0opTQqQEQevweJywCw3wJUxpWjAe8aAwBKAfR7UE/YAwC8Q+URCBOWUFKMKlaACCJqzw+SmJtv+Iy50szSSEPWlKMBya5h43ZM1nJmXTEaYIu6bauybevicV9V7Yu/c7EMk+JduCyW0bJIwmybhCtvl8l8IbGsTEKxZ6tiEa2KJJK45C3mSz9uu5xlwdKxJUeWHTnecbtyxpkdu9yxv/ZLlzXkjDXea8w+OeY6FovaYE6NQdMwsDOKXBlJBMUG6t/lTOiaLSuWnMyVoXEEvS9viQeJ7Q8/+AuQWqkIUWkQyYPalTWAIF3gZSSegyiOAaVTKiiNQp+qfBa7emsQlEIEgdyxqwqGGJWSBNCKmqrIUAN6Oorv6iBxJI4IY60cp0njfQ+RHsebd45RpMUFbWm9sKRVjH4IgvhBRE5s6YoRFdsqMo1CD9DyMk01zy0o6NNjJFuGPl8jgC+LXOUrSDdp2jdQ1EoF6dr78lTQ70mart9u0rdpisD7lSXx5ZIbNbfB1sBwOEK/5uzkz8X/kzE9+rfUFIWBwZ/5Cu6dSQeAy9f3jk6+zHYvbQBak0r+egA43gRzY0/E3FUh2VMCuTLkZohHZMsod+sBmLsy+N09nBJ+/dDeu4chIfztw/7efThN8P7h031zlv/+YR9441Kbr/L2oTscum64uxf/xkt1xCLKmTNmw58nALr80PX6fOj4MAXAncmNlxgvL2Fz4XZ5ZwTiJSR+Gg/gjg7S2AjniSdUIOP6S9afT1qCr5sOxhdiDjQNcJDLc7ibAqDOPLEcJpnfs0YDpOp+C5npMKkCX7c/SE9yC2LCUc46zpmIc8PUTQHQ8U96kuckALHpb5GhlwGXv3Mnkqll+v7570d5dhtGURRGx85ZeBvezue3Rz+chdE8nIdDfC7ZMmQAhICgENNhACoFZ/6tUggAp3iM+hgPnhMkrPTwBSONWqtzICAinIAQK1QDwBMV4NkMMwRBxCfAnfZTDBP8on3B6hmwXcoKNUAMAD8nW1Mns9DPqATy07L4Y5tE8xkoP0D9uCqzIpHFgxaiBolnQWIpZkdgHGtyvF5YFtsAO5ZG6dLbO4O0Y2QrccnLXQ7kqI8HBTfsZIQ8M0u23LKTniZrSHrJlaWxfUTiufRVEheW5R1Jy3ZlsEyrtkzL9mNayPvjp9W6eqylr07rtko/7pO0fpT4XmJttSnbZVpLbvlYie/7vh6k6+urq+vrm5s3b25uXo3SEXAl+i+Aq17/V4Df/3Ndf9W3A64uNBbw/T/0Q68RS/B6/eXq6svrZ/u7XiMBNzd+CycDjhs5BfA3y7f3PUOzujsAAAAASUVORK5CYII=","sniffer":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAMAAABlApw1AAAAe1BMVEUAAAD83VH6yTfyuCrpsSvopSHfnzHejyfUjifRgR/GeRxFnYrDchU4jXspiGCqVAilVAEsc02SQQBXUDOTMR1xQQIdXTwcWzpKNE6BIRhbNglENCUTRzM8LEREKxFxExMPNCosIjdgDQ0kHi5QCAgaGSJBCAg8BwYIBwb3shenAAAAAXRSTlMAQObYZgAADgFJREFUeNrUmYGK4zgMhsPOsjdXXz0nanSIBgSmsPP+T3jSL3vTpl2oZ8zA/iO7iexQfYkVJZ3ll2QZkSxDygTl7M0MO96WeSrzZ29C8J0CoUP5TwLop5+JmbHr9qcAxOnPlFNC/L7hni8AUFEzEXx+GIBAkJMbCLBv3dcAaA0K/RQAzj9n4hBRSl8BIB57xUX4BEDP34Tw13Vl38lzllA1aa1iQph3AN0wFBvG1PR0Em83UAPgSORZAOoAimVeRO8BTBuAxMRBgLaCiF0rgodrEoCqtfIQQKV68OgB4NOKqmN7e/ouBIJMfQXZ1iyAfgGKI5QiOwB1QFGn9KFSYiKu2whALwW8sotSItMkAJOWokXsb5ee/14LAEV8IgCMbqAS4w7q8ZNvpGmPEjXWgwOg3QH80wQAAUApVUcAPNi0ZbDjoBbMAnArovIAAOH/bfJP5ERRlQCw9nwSk4shoowVNBcAyVlEdgAe/V+QMSAnYmKkwEgSE0MoAQYAojkAEYloUSToYr10u8UBgCDZawXCSBLHbXSrAXlSIdOKtaBSIrZFkMtF3ORutogWMxw0UAeoZQG3KmzNNQcg7qOlRGwO4MLHPUBpAAqAsdtoLCEGQZ6XA205e7gBUEK/AShugkMG6gARGBzAtzhPzIGzqrcAKLog9q57gJMNquls9iwAzna/BHib5Hk5UFnVGpdTEQ4AifX/GIAcgM/K6vZsHYhnoUzxJMF5Yg6sFsyZz0ynwkbBixhAtzsAOREXa+uZ7Rg9P7+EyOLfnuXMMQ+Az35eiE7MJwIA9BDAZpgRTqOhrwN1gBjLHwQzC9nKq5k1IjfcKcPkQRKzh0GYv7oGrkBUAiJnpxSeKQCrmTWPjRi1Svub8AMAXnxWO2Yd+1nFjNjk/cQl5IZI2P5Mx2vdAVgjHIYDR96JuT8MrZRBNPVnFY1ibDoSHekI+aa7xMZM/XWyWFuG1OPPCbUYKQDNA8BrMervkV394fEo8KLaAaB8CIBM2ysZT63EoUu9VFEVKXTjpyLurjZ+EdXiANZ0GVKkAJtBUY3zbICL4o3gdtkf1VeQXmIcO2UcIOInQ9hqGTnERABT9fjr7gpUD7peXCpGGBAyCNCV8tVLGdFsgJ/v7++Vb/xczfezYhjVIQDKaBL36AlJQKbJSwghimjVHYB63Ii/4vyL9zIOgCrGxCZcgZxoNkC9SK1COwBy58WH1XMYJW4cIH6V4Owk222IaCZA/LZCfLjxH5hKURsLACSwyihALJh4FGoinr2EUAiE395u/G9vLCgDDoBKp6Ki4wAhZm9GMj0HtIpZUT78uPH/OLAagJq5cAeSMpzErv5fDYbINBVAxUyUX7/f+L+/srsV1m6j4wC7+FES4JoHICoIkO4ACH7YJ26j/aW4P1TkaJMBrNHh9cb/eqAYCBMkgo4/C0ENotPMBnA7PQA4dQL0Ju8iAuu6bQ506LcOE9qMjtEpuudq5HocxG1rP/d6DaosAFj2AsAicuuN0NJN9BFjSi3qRH3pJ+s6wAbtI9ahx5xwowVBp06mvoeWcp++bBI0XvbiGNljEQAShWUEQXBkAgVCii/GFELXGKkPEGIjdOChcAZ2bOFM4ZDmQSMCwF7/PeFxUdxVMuf2PUwRnltbAJxSe+5n32cMpGDckiHFVpvXnRFj3qgzYyYAURAjguWjwtqwxpnCEGNzEJMLcBhhsj46XJk4ID6BFdMwBbg5BoOBOWM8INsARwTLA728fHv5Fnp5+S0AvgYhrejjuxHrytjj/lUYCQ/C4P/buQLdxHEg6tOqQidVp1XlXcUnegOG8v+feDPvzcjUC6E6jiyR/MD2eDx23nOSkinb/StsHwc8ZYZchGMQy5nDZNDFTaLQiwJI/w9KSFfAHcSjpQkwFdxWPmvy0wp81YYAOra+z4CL9JOD7pYiIXDL32ZjPreFmhmO5qIAsNc3SroCW9DKVmGsIUBbsIgXzg530Gp2GnmMw0W+W51iq5nTAlQsDUr2uC3l+8SrAv7Q96wA23uUrbGgCnLE2tQTbqRhIGDRcXLIQf0gF2o8Tg1EgCpX4eUUS5LBdQGKWQE4LPdnt/25gxoFyJMLHKiCJiQFeRgM4V6EgHCAMSrnzfmxbWSQLsDoA9pcFbClAJDZ7rY7XVE9O/XY2maYR99oYOCtheS5o/AwZKctJ7lyko6ZfuX4qoYZAYEZAT93WIynd7fb8SDkrYYKgh6G6csMeHAhNEnqcso78MJczuBk620pwH3mxOozAn78YDUngIspYQowAtZssXbQVS8ogpaWXRMDAwVjmE8BocHnoPLLUGNQqYcMrlxCP/5RAVrNCdhCgPMA1S14g0ATAGkmwApqbTkKpwXvUGMmunBDE31UprX54KTczwJe+OkFgDsqx7eXl5dvhBovKdlC2ECuqS8DxZjH+ZkvBCCQfpDh+YEb7Lgi9Pl0W9gFWIOFQ4DHpwawCwF/K3etAOd9jpTIE5vA9XxF2CBGBtFHTaahnQ6XxWUoQJu2LLiTdrhgeJP+K8AM6/qbhQcKJQpW9NKPxj1scF2xAwHhjmWbbW92wky3wH8oEf/UoIELJrDpjtIqepq3NbTaNG1SC2bT+oDPbwJQbgsAe+CCADNiXevEYYNH6o5Pf0qNS2PujRnWwB8zYKcu8IsCXtsJOBeAozQ7liIdVBy2DtugQDcMKAxvapPQY1RzekALZ+frAl4hYHV4VfgVtFoBfhOs9AzwJuZNsE4BTcFaz8Am8Oxn4AUPEgQeRLVyfFOkp8cGj2sQYZkMKoU/CG3S0wP8jbG/zYRFBekeHK/hxoyK+nRiBcwIMHxrAHcAI8sLOIUA8q+oZwRsyF8LDLTom7HZLCxA6SrlWo0zXtbTdk7A5kU1WIFBG4C5tABSrmAP5tU6dUbA29v3t+/Ea8A6bwqtlhZQlbdBOZuOit6sgD83DXECoq9jiwvAnmsDS1/szF1CvOKt2mjRl3q05j2x+E0cCtyIakYAuBLNao7fIICcz5Xc/jEK6h04sLCAuGxi86vf0fP3wMs16F2wuADSjh8+VlV8DtyB5QXwJJgA415Px1UJ4AcxuFtrAvQcrEeAsSZOZvNCqisSUMHbysls3MurFKCGk1+XgHiO45XTPgnWJEAVYP9XK6BCAF/AmgTUyud/sraGZr06gTh87Pf7j8Ot8SUE8CcnBbACbgj4AMGPW+OLC9AX6i8IOOwPIDg7vkhKGfdu+zxbq4D4PMM5uCngY69lfnwJAeBfIYJJPdrjVwQctMyOLyaAF77y9gz/hBlrEQCYBNzJJ1SqZTUCTiFAAe5QcUGASKD4X3WrwVZKTcl6Itlgbkf28AcKwHZHTsNaXfWCgCJaSpUslSQzRIjakhLEhIAsXfiDBVQXoIjUrKYOtRSQrdz2agKUP95G0HpmZXorzkyEP1KAopJ71HhdEJCLsa7YXxNQQT0IuhkCuvDHCUAOHNR9/y8LkKysRaoYNSWX1UMfBUAOBQiIl7Pwh6aU53t/RFHzVwFTybWITGKscYnUXE2AekwA5Ey55GwxXfgiH2TVf9F+OR+YJgEfazNqmQpYqq0E1aHsJ1Tq6cIf/kHGnz0w6zUB0/tk1TsrItqUaPbjEfLYS4g7j7u5XhXwbqze9/aQ9m6PaXs6+FaCaLvxFvHIDzLfeW3OBZxSh73ioMQUe9SHw77h1vhjP4lP8SRH9rwd1pKRnU4UYFCz3c9rycj460SQR6knltNaEho8uCm0QaGh9f8r4PjbcUdG9qwCbucDQ8AQcIYkAaZgx1xylSJMA/xxujL9ysdaIjYz4gkEFGZYkYJV5VbRtnwAQ1VbG9BOgYDyNAJAKVKwyIeVa2RkUOQRFGA+lPIEAvjHwpGCWSN+1eR6JkC9TZ+F12cS0FIwI4Wrp4rkWkIA0y8IKFDqAuQJBEyfUjAjVa1SW4VRwDQh7+QoxCK70d70BAK6FExJ2Q6raS9JJnDy9EsgzBO0yZpnEDCfcc1nbM8hYD7jms/YnkDAnRnZEwi4LyN7AgF3ZGTPI+D+hKZquRv1gmMhAVKlHRQVCiEsdNGu0mLQa4u02WIVl+vWaebdGZlgISmSj8VZFKfUaMlRxDgUuNRGYQyYlljEZ6BUEQx08yCMS4rF3ZkPFKlS8Y3CMevCYMEDoKKnHAuOntVmX8AAMRpdciyi8SSJ8Vw4A3Wsgy2BWXCgewVk4VNsrrnosGSxlruVcbBiY6JOi0O/GAPGwJPbIsovixGDomzUz+dlJc2hmtWucrcAiedvAQ01+gSoCMZQaWhLhjyG+6z1xYyqm5f90RluKVaSiEBJN8HDU+r5Kc75ZR5fEI2oLgGKb6icAIhgNz1GUEq+nFF188icywnFJ7CR0k/w8JR6fkUUpfEzF95cvHQJUOyLR4I0nB4TIq5lVKXNQ8soLkqG/n++9BNcSkq/8IPexg/ljHifAMUgCXCH23dUFKK+axlVE1C4vjXm6QT8MsHDU+r5UUDwcxE1CwOKXEqAGMLrvvtKC/2ZjEpSmwcCGUs1UqmfMPmEJqDnVz7zYzKUtJeqCNrUJ0AJK2UdlZos9bBAxKAvNRZpGVViRiWf5iUcVC1zqrtop0vBhJmWiIZPRadHspbzVDWqS9DsHsEbRpLENkmxo4JHUfY2bg0iBPQZ4/1UIEttwbxibnvJ+Tx40YMGsJPUpWCeaakFn8ZaSlYmqyf1tAStgN/yWOA7sgWwwHdky+D+78gGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBtaCfwE/iN7wd4XgKAAAAABJRU5ErkJggg==","spider":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgBAMAAABQs2O3AAAAKlBMVEUAAACSiX+MgndgVEhPRTxHPjWoDg49NC0yKyYmIBsmHxoaFA88AgIiAADotIQjAAAAAXRSTlMAQObYZgAAAgpJREFUeNp10rFu1EAQBuB7B8RDUCIs0tB5rUuUNAivfBKvkI5b/eNLyVkzg6hQYGfyAkn6oDwAFUUqUvA4rHTGthTlb7b4P+3urHZV4uqqsuKbHdNNz3S9A5V1NUVIVW0leQfOCuQvhNzTDJhF3W6RlUvJV5R7przjBSBxu5KbHmV73OJaUc7DBDIVIKs5zuSU4nSIkYotgSUox25z0GAtfe+qk+GWN0PCARhI1fgwyJhjpOb7QDQBN0DVJ9BRiJmhB8CQAlhlAfZNaxAfb8ziwuSLQeqmrdx8BMJi0qsvBrms6hP3AuZIFxNYRJBj6L5W9d8UYg8SGcGmjSlRFuOB1/vqz7v6mLYbcscIEoYOAjNLoB+/6urtbwarGabB2q4juBnR5dnj+fnZ4wlDM2QEbQhdVHXOoLr69PBwVFfM0sNmgEE9g5Ve34U3dTh9IcZu/0Gsw2atboDL6f37u48vL+7E4c4jaD80YU2ult0v/NvP01d+707CGMG2DVVH5uNrPk0a2oog7vYM4G1qgN6FngEAgZmc8aQKMTSBgY62KbShCwIKaTODGPhztU6csA11FTgJQhNpBuGoNM2QIGDsQx0ktfF4ARKDIiKYmUAhdMZtxzIDYN+g5xLJVO4Aw8BYAG9L7waQeiaQGwlIZ5ARu9g7a9Yc0wYFK+kCeAbgDvfegdK7qyy+4z9b0kGP3NmJngAAAABJRU5ErkJggg==","tadpole":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAFVBMVEUAAABtUz1jSTNTOSNJLxlEKhQWCgDfr9AwAAAAAXRSTlMAQObYZgAAADdJREFUeNpjYGAyCglgAAFGRVcHMINNzMgARBuliSUZGQEZzkZGxsHODNiAs6KwA5RlYsBAOQAAqGUGQPKmAvcAAAAASUVORK5CYII=","turtle":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAABABAMAAAAg+GJMAAAAMFBMVEUAAAD////K0JHCt4ComnNHv0qUi2OCiFQ/pEI4jTopfUkwcj8gakMlZDMbWzExMTA/pVLKAAAAAXRSTlMAQObYZgAABDNJREFUeNqd1s9r40YUB/DAZr1Z3JT+By2S6XnRiJyD9ZjmtBRSUbWnQITMQlgKXeJL6aGxlpltD2VZjKY2uRW2JodAlxAxm9DD4satYnKuI7OH0qUkEfQ/6Iwk/7isrNnvSUb2h5n3pHlekqkG9AVC60vvnLuEPJsCDxMRL01pYIWQ1hRwo+T6leeBixUA234MsJV98Cxdxx5YFuDSwG3b/tzFX8nLigtoDZngpdlSAHYbOYCMmoZMBaAa+LaIQ0/i+GKpsm1ouqYhFYARCRCWAZamGcLACkD4ITn+nvzXyQCUAWvlgdWQBQGlrBNLYFn8WO7BVABGTQ/Aa56kQAUAtBoAzgHl3DI0rV4XVVQDVvyWtT4FdE0dcDbr9yaAbiJ1wN80Pkqv7riWoWsIGmrAXX9Py4BbKN2CjhQBsolmQE0dWAlaZlaDZWTUTFNDpirwDNazGnhQr2mAVWsQMjf7cgWQ2IJuYjWgGoZTwHIxbIMqwHl7AmCrpmMFYBkAHhx5YfpSt971ZL7tt8yC35Y5Vfdq97JLxoiFkNwBqJyq5Ds9B8IgIIQ89lzLQGZ5wHmqTQBGbZ+0AOmarius4CnKAR4y33E+Qyapm6R8DeietZ4DzJft2CAy5YcjbYEEKp5nU992GKEAIMu4VRLotPGP2aWF0AZlbQCsMl2rnaMJQEQC9gIZCFQAfvTgMAd8/wvKfpU9MKHkXCSs7fE2iGx8uuQ4NmX8uGVstJA5edpNE0q/W7IHtHNMZPIVpPMaewtr8tYuWHJezwD1pPN6rRiocnbm22TQ4SPO/2XsivOLOcAwFgNhNyBdxnnMTznrnPITNWCV8796vd6IixE75pyfxvEMSOf1x8XAe6PLg2ESHYwuo+RG7CJOrn+b3kznNS4G7kT9YZIk/eh3r/FtEg2T5lzT5bxetIJlgETkbxDBjWbTA1ifA3StEKiOX0H28oDIcMSvB75t0+jqMAd0ExUC798IADdFdgVwniSsG9hOl+2/zu6n8xoXrSDuAzSaMi7g81HI6B+93oCyw5IPUvXkDVgZsA2f3PAwePLcdnpkBtQWAWNAzTRfm/djzsgvsgbPaX5EyHm9CHCnwMOYd3uB/Ov600EOuHJee4VFvGx4GbDb2ImTq5eBWAHp8kkR5bzGBcDqOJqtYGcYhzSSXRjQvAbpvMaFW7h8NAW+kTVwRBfOnEkN0nldCPB5YCQAW3Th5ylQcQGKpr0EmtMapMCXogZPJFCQghXsR2kbD4blANmFeUB0IRgQ26FnndclAdkFKwdAdiH44YyQSD6JpSK70NjNa9DciTlnpBtFAe2UB8YwXcF9CTCxggErD8RvADLgkXiZRjzsMkK7jJcFVuN/5l7nm3icRCFjL4fJRdkuXPfngCi54uxP1hEzonQX4v7sRMLnMefhfpIwXrAFhXyw4P7/kgmYSeJwxJwAAAAASUVORK5CYII=","vex":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAMFBMVEUAAABthJtgeY9Ta4H////z+Pzg6fHG2eqivNWUrMOGn7eCl6t5kqp6j6RthJtgcoMKluMvAAAABHRSTlMAoKCgEjok+wAAAPlJREFUeNq1yL1Kw1AAhuE3hxYrRYm5gmivQL0Hwa1LnAtCFpdOjuKY4KBjfnYhIUPWEnIBhgxZRSjHC8hp3KWxkg5ndfD5pu8FDqNAKQkwKXIE9Fuj3zCQjECYDCaPs4tOQP9pDME4B1MAbIwTgJEwv2yixPcCPw2igGkcljlZ3YfP33WSJTB9yhG25HaJPLUBtkCdvl5fpVlVVRy3ntdQZW+eX6e77UIcNqAke0eq+JCgGvam4apoUGqtHtC067K9Q1O+l2WMJl9RvPAnl7+0L5Ao9NBB16GxZpZloTGFeWYC47l7DzrXcUF3sHTQjW9YoHMW4zn/5QeNK1xt8XQSVQAAAABJRU5ErkJggg==","villager":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAbFBMVEX///++iGy3gnKze2J6enpra2thYWFUVFRUU1NISElMODM9LSkAAAD///++iGy3gnKUj4m1e2eze2KBfXl/e3eja01vbWqQXkNjYmAAlhFUU1N1Ry93QjVcQjpISElMODM9LSkzJBEjIyMjGBTjk4HHAAAADXRSTlMAAAAAAAAAAAAAAAAA7Uh4SAAAAn9JREFUeNrtlN1ymzAQRm3cuG5C9oMFJIW0idu+/zt2/wieiTNAk0ufgdEKs0cryWJXB0RguUEO1/Xzc871Irs3AViTQdnYLgAzGfmPkFnT9V4tiAI+IyCB/19AVgA+KyCaF9FZL3iDlfUCAl0AjpYmFgWagjkJfjNCtCwgml7niyrmcJ0gho7mQkDrBJALsAhwyYY1IAP4bahgdmKFgBme8PjE/PRI3mMGG1gWxMpnE3GetmFiWQA/yJl/CpzJutggYAYYIjAyQfu8XlAv8DWCb5sFqW2Btk2llJSKctwqIAFJ8oVFQRL+ChcCEKGlKwJSQLRfENBHFYCMZYG+2F6tAOauFgRtC8K1RYSdVqhgd6eCUmIUxTtdKknySXchOYOQEhkAmNmm4YJ5FPWM0nRdbKNGZRxHH2KElx8CRmWCvu+7roxd17nADE1qhdR0RfP1mQZMbAqwnxcT9KnYS5Lc903Tq0U6jVTt+Xo5SesWCUMvIheUMvh5GnwqqpKUJPU0jUSik57jnyswABWgitMYU2MjZlw0X9ppDbpOTMSkwCCQCXw+FBe4uGGUdehGy3950ScaEC4/duwCaWHPorEdGSM/0mMRRlKYogD2bZzGZvuJIa+/SFIQYfCjqvb7w6EKDiYAGe5h4DU4/3o9ezSzF94JGK4IC84Tr+d3PHzwTbTqvQVkqjMlSEa5KjhYLUElPJxOD8r9/cmjGQJxJmMgQVN2B0UCbUxxPJ2+OyI4BnfKEcAwxF95mARL1BcAnJmcTIRqq0DzQsCZwJsEUIgGFUCIKmiTQEceZsGwRlBPQGHY3EOQB2Jalz9XAB11crFWUH+Sm+AmuAlugi8T/AM2/NtEbUTDnAAAAABJRU5ErkJggg==","warden":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAOVBMVEUAAADR1ra7w5sp3+uir4aBmYhudXsAkpVAV2wFYl0HSFcDQVAXKC8GLjcLISoRGyERFRoNEhcFBBJsUoYuAAAAAXRSTlMAQObYZgAABmJJREFUeNrtmuti4ygMhWMChEYrjtn3f9iVEG7r4E7iSyf7wyfcbGetzxIixTuXbyqloICdiCHDJV1+U0UEgFNiAOUdAIZApObfBlAUoLwToBCVE+B1gNvl+laA6+12e68HPoTgvXOAru8FYNrpgbJCAJwIgLHwhW4Sgo8jAfCjcSMIzgXAnJGZSO1f9wFgydiP4pS4fSNnMX+Rx98JIMLUQNQYRD0Mknog2bnMdDXrh4UAOQPIZl/GvWuiGwYXJ4DL5VgAZKDkYhqBRwIwwCKA8dKqTCkE9xoAGkAZpf+QRjQHADjF4NQDLsTEwHOApBFb4QELey7lH+WwwyZoZX0gUQiJ0XtgfxZkoHa1GQuQH6YhGCyyCDwHsOdf4YEMMz9qJ70AzASNwTBoBPAKAKWwDgBoIBMA5vYtBhaBg0LQA4xFalaGDsAYRHYexwNkmGGhGBUDetQgMF8Jf2EOQAHQ7FehmwPMthIy/9YcUAoNv3R2+F2wRLQk/J05kAH1/fJK2BCZJ7DjFiJ8AejwwxC+AeDLCRwCl1cBSAnW/hjZ43+OUeZCSrDR8SHof45nMhb1gI4PBFgnMBvYGwC6deBoEd3vdyKWXkV/cVdmMrMiae/0FgC6VQQpSSj+OgCpWhDoHSEww1MM3uIBc32bjG/wgJrV5qZNeg5wvdyOzgJqifCaB2Rjfj02BDf6ss89QG//4/A5UC3fTU8BrnRo5IkSiexAC7VLVuyKXZo8QHwAADMR852ll08temCH2lpzl5rbN5pZ3Znf6MJ7AVRZpPeXponaqczI+mFmaUi/ALQkUAIizvsAckaWCjVXTRXpqvSoIGsjKmUc60mUCUCccBGEvI+gAMVqwchjgRRoq6q2pVfr9Vt6AANoDNe9LjDrKjNq4uW3JbDuG4BoL8BMI1jUUCZBy3e9fscVAFkbsCUFN5zZrs2EXwIwcfm3Sga9+r3i9Ot5EAAKq3ETd6Ff+CO52uf7/TAAyLOrxA8ovZjLXLY47gdosTb7ED0Q9CHIfwTI2zwwFuR6Tya2tyUwtv4d5aTpd2N+rz6BV2zNOAOQjtHfrP9/SXcmsU/fAHLptAoAmAYvzQF7fuJFD5jwIkC/De4VQ4gdgKbhPATo77BqRbTUIlr8DjP3bCYsjfMWAHusZYBhGLAUjHYSHcEKgH5164XBDeoF1K6UUYuJWejMNApg/VYAspndS9+Vs5c6DMkNbNlrzz4MSqUCSs6zNWMdABPRTyEIzg1JanCDspSmUXn0pDkggwhZR2s9MLY58GMIvHMuSaMM3g0oTc6FWmoIMiElUK72sSEE9/pZBhCrUaowBO8FIFdsOCcnXfUAQCknKZSBzZPwfuflEHjnozdzMm4GgODkggFkCi47KYHyawBLGc3Mi6tYEKvRe6cgUgGU0QCC90JQjIBCILP/IsD4sNhC0n0aPgL4GAQgSgkegHlAD/Tajr8Jx5bKDiySdEdjmANEr7a8lz7FYAAZiDGFmLYDmMRsqinupbo4OGEA8xwgBIEQ6z5SSp8eoETKsBnAHGBWw+CEw2kfKtFsIUoxqAvEGFEitOCBiUmv7fPA4LyYFPmkzZTb83e/lNT3UQZMjGICM4goxk0AaE+BwfsghoUjSpXeSTcHYOIkDDFxYhFKExh6aSMAGoDzwUz66M0Z0rnwAKBOSMykNjGFD9UJnDYCQM1XAK8Q3kfp1BnehzkAbNdO0j2+zFYA3gegGeakSO8FQKsM5wBgUbVf9FPy7I/6zQBjBQiaSGK7proUn2JI84mFwlLkU83PNEpFv7au8UBKFH2qa11QBrVOibqdNOx5l7QdoGAEJSIxqg4IMUWtxMRzgF77AQosgjbF1XBIOohEBH4GMFq7C6CJRYlTrHlGHLUB49c98Imv1kgYki1zicGMsgQAaw8DaAJQ85wsz2p5uIVZBSxk+A4xO8gbtmY1FQtamjPAsDs+TlilrC0BBqHVrphpbN6cVpMsH0jBwn/MRAARMZqj6hAytEFZElbvDdGs9wD0RL3/Ta9Mwp5jtLrln4Pgs8ULAE+0CmASNkzCowBW7w27hQ3WaYP1AP3e8DkAFt9NWIatA9i0NyyosGDriqV5aWmOVQD93lCV/3yPKYlrpdKl+RqATXtDeqI1ACv3hsfrx73hqVOnTp06derUqVOnTp06derU/1n/AR0CP3Q2vq+HAAAAAElFTkSuQmCC","witch":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAACACAMAAACMX59YAAAAmVBMVEUAAAD///+2qJWrn42rnYmmmoijlIOgkoCPj4+YiXeWdliWdFcltDWUc1Z6d3eAcl6PbFNra2uQXkN6XnBhYWFoWUwMixp1Ry8vaDVaTTZMTExHT0hQQy0/Pz9IPCc6OjpANSQkQCg1Lh0dPAkxKRwoKCgsKRg2F1guJxonJiYwFE0YKRoTLgEeHh4oEEIdCy8REREVByUKDAvCurIkAAAAAXRSTlMAQObYZgAAA1lJREFUeNrtloFS2kAQhiPphVJbKVq10XDG2Ba4mjvx/R+u/+5yR1U0d2SqYyefgcuO+T/2NoYxyw4PMyLPlVL5KN+gsuz8/Pg46+bw65dPtEoeginjBdFAkAvTEkwVxen1eoJRjg30FfTbgjAKQ0wlD0NQTEKQNq98ntcANhU3fQkVile1talogRJBkQsiIFG3QPnrVQHkNBhAt8BHCgKFxBURJSh8/hcjFeULECXwMzs4KYqTAwpLXgxFtwBXkWM6/gDGU0kHugUTMoDpeHx6Oh5PleQnExy0dAsmrICAmUp8S/ZeKQum/BFIFUyYWIEGP0GMYAEM+OeCgnkVQQNqCJrlcqlBDXBWqVGuKlSE1lVZVpW2wAtoeSxoWEB1XZVaKV2WqEBVleCBwNEaBFoEsm4Epaa3RgQlTvHmSGCQdxCYIKglWEOAbpdNAxclaoR8hWZwOGedgcABWkVQe0ENFY4lIIFmgVQaabw4CPzKglrX/MkNTuigAJpmQaUbrl4WIMXD07JKhHagMfiGigYmHFXVIahl9UNssANUAGdIw7FTgMslSAMAItAiCDpsCT/ZLubzppHcfD4D4tFVSV1UGwHycOwWXMwR/Hg0w3JBAuwaR83AQhORHtDjbgGYHc1mtH4DMjbN1DpUPKnseRZ+eRFjrbPWGKx88vev4gQGOQPYZJIFoQO7swNZXsSGLTzpYNEpcIA7gEHOxRY7RBFgBs4L/BycW6P0HaBar52VLxz7tAMJiUC6ySwiEBiZMucd8oR5IkAqCMS1EVi+2iwMFw5hEUTAAkuC2xsIaENUCdEC9EICRGy6wPEMsGkvWKcK1jKDrcAlbmENgoArt7/A7CFwDwRuDwFP0W+BJ5J+GyEwj+6CSRQYEZitgH6iBU4ExgtMssAaayCgR5QqK/8B2PgtWMsCePhhIB+wCX8H4PYGQdKJAG9JHYjAypNhKQ0ShshXs8DtIXCISMECrliYpbEK3AcSBS2zv6C9Y9pB8IaC/rfRkyZYRfKsoI0kspGOzrtuQdtHcEe8R0H/GfS/C23gd/uYNMH19+u9BFcbLs8+n11ePSSpgxU6WLUeea6TJsiz2xd88tsJ+m8h9osj+gvl3QnA6j7rBQ+uD9z2wMDAwMDAwH/EH571WWMJHeH4AAAAAElFTkSuQmCC","wolf":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAMAAACVQ462AAAAw1BMVEXt5+jk3t/c3Nzf2dnW0NHKxsfIwsO3t7ferIWzs7Nu1Je3q6WhoaGdnU10oIaBgYEatVh+dnBegyJlZi1iWkAodi5WVlZUVFRERERHQjs+PTBENiY5ODVDNSWAAHY/MCQzMzMtLSg1Kh8sLCo0KR4ZGRkAAAD////k2Nnd2tvV0NDTz8/Kx8jJwcLBvr7UtaTOr5bEq5ywqqefmpaalZGnj36ajIiVhnmheFuUe2iBdm2Mb1JJQjk5PD85ODUtLSgSFBY76smzAAAAJ3RSTlMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAi/HzzAAADR0lEQVR42s2UbXfbNgyF6Wli41WZqm3NtkQOZ3ZVwwCFbShO6r6k/v+/ahdwtjOp/dJvvZT5gqP7HAC2GYZhWFDBYBIilsvLy5Ty8HsPiY4yirIQBgtfX1/HLlbD/xUcQIXh51JI1ut1TumiXyz6SKKkAi4AzEQGCLH7AhCpFDxMmBmAlNIffYw9MlMgPewrAPDHKWCxiAtmEFjYyogIrNd//frixU8/lyKIF4htdUAIsxIETiEAfMPGQRmDC0HzGt1Xz6AKUwAXJxC8VAgkb+TgIgIacV//7UE1K8Fsb477/fGN+Q1HAFw9e5auErZi5KcVANcsA+D3H+7vP+yFvA9CvBZhr8qmU4dP9Ukx3AzABP/DAwjE9hbGb1TcYnYCynCOksJYpwCR/cM9QfcPe3lSApWwAgJ5AbazPhhqCkgpvdwddnjOzlLKOZnEatH/CKKEgJ0w5CuA7WHrgL8dkNMVLMKj18BWxegBIgVHZQrIOb/cHDYO+CGfAIl1VMHjDYRvFATYQ9hMAb9Am08bJHF2dg6Z/wqq+9j3nf3wYmhjFWOoY+xirOowBWw3Nzc3R3w22+1utz0fHqFl09Z919e1WAqS61hBDsA6B4Bg/g36cNidP5bySKVtYmeDCkSr6nl8jiy6PkYsU8Dh+Omk4+EEIHosVFV17LouFhKlEioQapj7LoZYTwE2NaucXl9cvLa9XwSLUHW9DaERDayRd4ghdH++whzngM+f373LKwA+fnz/dvCLIIaqRgv6qGKAEJxQhVcd0ghfBSQHvH2P0I8h4O3Tt6Cqo+riZK8i9MV98HThcVZMQsyDiLVO7CjYEGYqSlSFAABYUwDx6T/YwEesTANWOIRxNCuRFLZWLtGqpmmW7QxAzGZdqllUDFBOAMvA9pgVuTRt2yyXmOYZCDOsjYqjeGAqEBPEBSIERkCaJue2BWbeA7jwcYACMbAl4CWI+NYBVAyQVmkOuNPxTvVubAUWJZQAJxh2ZAD8RKNyaVv7r+c5AH6MUbMKwW5NZKtamP26RgiPjkwruLMxpgBhvr29ZTEAmwsAtq3gMdbpNDIjfSBWaTUFrFJOVlvGQHrAm9XNPmEAwCqc7UWbpoDh2/WdAf4B+LQj08eGOFAAAAAASUVORK5CYII=","zombie":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAclBMVEUAAAAAzMyPj495nGVxlVtvlVxtlVtnkFYAr69ph1Z6d3cAqKgAnp5ae0gAmZlra2tXdUdOezZhYWFIdTJJcTVWScwAf39KaS0+aS07Yi9MTExGOqU2WiUAaGg4UiYAW1s/Pz86MYkwKHImIVsoKCgaGho5R/XAAAAAAXRSTlMAQObYZgAAAkJJREFUeNrtk2FzmzAMhpPNm+0akmjVqFRGEsPy///iXtnlml27laRfeWwswZ0eI3NsZkRFVWwUdHMrIqzKitKC3C4gVjhgOQLVOwQEAcvdAmViwZQiuKOFsj2J3i1gZWEVrAqEbxaIlkHMAni5QK15VRSpwTI/UFuYFnx/q2ZCQYyMEq5PSKWMJW8gZSv//av75rneqcJFxMqLemdiiq1zLraR6llimEtk2fdnpvZycfFyaeGScggkqKclLQjqWShG1RhR/XIKCEgWtCByLJs96tOTPiIROoogMhEvO0QWqf+AWqXdsQIEWfhP/AS/wXy//VXYji/Mz8N2G5iIPxYcC28EW0CsnxOwqnyqhTf/yQhy3/fjNE096Lru1CRl0dR0oGlSCAn5bteZYI7vCcYiGIYuhUa1CQH5kFIAVRbAHP8S9FeCoQhC2XgAKSDB8h9BroIMQc79aRhOwQwoqzkyTMt3Ke3m+CrIVWAxwzacTiZIRQBCgwyXgAgEtGAzk/tcdh6R2ETNkEyAOSCfBcykLjovyuy9j68CVPUAS4lWZB3AkQa8b1WlJMzqW9eykvhD9O8IkM1foR5Bg3wwlzlQJ967loQ0Ru+vD7EKMjJggnJsuKosYZpA2TsXiVnjdQvnsxVa+fm8B93QdbanlRUBkoBFWMk574RF/PUbPJ9R+OVhj/BsgnEap1xIoZsmyO1EcyYI0IFXQTz4+CoA+4f93uIPAMHYF3JTcyRokkmodbFVEo6HeNisrKysrKysrPyDP68WY0lh7YK7AAAAAElFTkSuQmCC","zombie_villager":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAMAAACdt4HsAAAAt1BMVEVskkNwbWdVczVjW1tWYC5jVC9IYC4/WChUSSg4TSM4OyExPSUuNyQAAAD///+Iqlt3oEd2kk9skkOCe3RyhFFmij9ffzdwbWdedUVXdUdVczVjW1tUZkBOazBgXjhOaC1HZTdQVzdUTU1PUTNBWSiZKys/WChcQjpURypDTCQ4TSNKPj42TCpJQSRMODNCNzcxRB8vQh44OyExPSUsPRw7MTEyNyQqOSE9LSk2MiAzJBEgKxgjIyNApSiHAAAADnRSTlMAAAAAAAAAAAAAAAAAAKroblcAAAMeSURBVHja7dF/X9s2EMfxrGs3oGtxHXTSztIuE+mtyG1+2HNKxp7/49pXIoHSUhxe65/52E6cmHs7MpMXuxxR3p0iFF6+3Gz+vPztlxdP9AZN9h8IfQ1c/vEMgMkgItV/kYbN5upys/nw4dWhAOarGkS4Ay6vthmYfL8HAHNViD2w3VxdbbfPAGoMV1VVuz2w/fTpeUBt6ro6r4yWwtnZycnJ2dmrgwHMwqjODbmADgeIqrx6Q5XBKvALSlRyOCZjAJM5ZyJig0dgKkN3sw4HjwMEwTAFNlRfuIpDnkIF4DAOMAsRgGAMuYvzEBwmQRTG0SGAGlYX5hfv8AjfzYMT54QzwJ4OAkRFHc//Kc2ZhJQ9xvHCBwDCAkGE3r4P4f1bkuxB9ThRFR4FNCVFqQ9zFHp8wr7OX616XBsFUt+vUwbmf6M5ZtI6rYHgwqpfrQ4BUhb6eanv0rpba5dS32G8GwdOT1+f5iYjjQG/PvmHTwE/o5/Q5EFWhVnUNnc9FxBCfChgUd91/et7gDGu9AjgyNHnm8833wIQvgDoe7+A6to9CnQQvgQYgDwCmLqmGwhjS1Bh4scAMiQPgCZnse2zdmqbiHkS2Qm2URG11iEict47T6gAbRObaNvYNjhpbIyxzIsw42War8a4U/M8Nod5vQdibNs4DC0MGzNgpzGlJEiTLfMQUIwYNo68I3WexO2BdgCgQ3awNVlJuzrcGpP5FVkhckCIRLGLuwVaTaopJLyBGuK9gPmptRbfNFMc1qozZfFCglQKoIgDOeagA7Ym3zEOXa7MN1gASBBRlQwZQ96JOBwF4MCeidg5puQ4YMELPNgO5UeXsWVEgAYVJlMALkIBKIAAwHnH0SI8FE2xybddYr5tmzZFJAwAeWYIorcACzE5KC4wBwDLYVgu24gwPeR57KlFHpN1XRsiZgehACKz2wUJ+xnOF7uu/1pcL77Kq6caZUD2/0ZFAk9zM9XrfYvrb1L1TPXvNbFnhwqQEPOKZbVKaZW0aWIpvy+bZVOypUYT7vFx9tGz9zOcFuDN/+gIHIEjcASOwBH44cB/1lQM4ZNhKecAAAAASUVORK5CYII="} \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/allay.obj b/renderer/viewer/three/entity/models/allay.obj new file mode 100644 index 00000000..69765c22 --- /dev/null +++ b/renderer/viewer/three/entity/models/allay.obj @@ -0,0 +1,325 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o head +v 0.15625 0.5631249999999999 0.15625 +v 0.15625 0.5631249999999999 -0.15625 +v 0.15625 0.250625 0.15625 +v 0.15625 0.250625 -0.15625 +v -0.15625 0.5631249999999999 -0.15625 +v -0.15625 0.5631249999999999 0.15625 +v -0.15625 0.250625 -0.15625 +v -0.15625 0.250625 0.15625 +vt 0.15625 0.84375 +vt 0.3125 0.84375 +vt 0.3125 0.6875 +vt 0.15625 0.6875 +vt 0 0.84375 +vt 0.15625 0.84375 +vt 0.15625 0.6875 +vt 0 0.6875 +vt 0.46875 0.84375 +vt 0.625 0.84375 +vt 0.625 0.6875 +vt 0.46875 0.6875 +vt 0.3125 0.84375 +vt 0.46875 0.84375 +vt 0.46875 0.6875 +vt 0.3125 0.6875 +vt 0.3125 0.84375 +vt 0.15625 0.84375 +vt 0.15625 1 +vt 0.3125 1 +vt 0.46875 1 +vt 0.3125 1 +vt 0.3125 0.84375 +vt 0.46875 0.84375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b432e290-ff98-8fcb-61cd-b0f5c289cd94 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0.09375 0.25 0.0625 +v 0.09375 0.25 -0.0625 +v 0.09375 0 0.0625 +v 0.09375 0 -0.0625 +v -0.09375 0.25 -0.0625 +v -0.09375 0.25 0.0625 +v -0.09375 0 -0.0625 +v -0.09375 0 0.0625 +vt 0.0625 0.625 +vt 0.15625 0.625 +vt 0.15625 0.5 +vt 0.0625 0.5 +vt 0 0.625 +vt 0.0625 0.625 +vt 0.0625 0.5 +vt 0 0.5 +vt 0.21875 0.625 +vt 0.3125 0.625 +vt 0.3125 0.5 +vt 0.21875 0.5 +vt 0.15625 0.625 +vt 0.21875 0.625 +vt 0.21875 0.5 +vt 0.15625 0.5 +vt 0.15625 0.625 +vt 0.0625 0.625 +vt 0.0625 0.6875 +vt 0.15625 0.6875 +vt 0.25 0.6875 +vt 0.15625 0.6875 +vt 0.15625 0.625 +vt 0.25 0.625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b432e290-ff98-8fcb-61cd-b0f5c289cd94 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o body +v 0.08125000000000004 0.23750000000000004 0.050000000000000044 +v 0.08125000000000004 0.23750000000000004 -0.04999999999999999 +v 0.08125000000000004 -0.04999999999999999 0.050000000000000044 +v 0.08125000000000004 -0.04999999999999999 -0.04999999999999999 +v -0.08124999999999999 0.23750000000000004 -0.04999999999999999 +v -0.08124999999999999 0.23750000000000004 0.050000000000000044 +v -0.08124999999999999 -0.04999999999999999 -0.04999999999999999 +v -0.08124999999999999 -0.04999999999999999 0.050000000000000044 +vt 0.0625 0.4375 +vt 0.15625 0.4375 +vt 0.15625 0.28125 +vt 0.0625 0.28125 +vt 0 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.28125 +vt 0 0.28125 +vt 0.21875 0.4375 +vt 0.3125 0.4375 +vt 0.3125 0.28125 +vt 0.21875 0.28125 +vt 0.15625 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.28125 +vt 0.15625 0.28125 +vt 0.15625 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.5 +vt 0.15625 0.5 +vt 0.25 0.5 +vt 0.15625 0.5 +vt 0.15625 0.4375 +vt 0.25 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b432e290-ff98-8fcb-61cd-b0f5c289cd94 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o right_arm +v 0.15625 0.25 0.0625 +v 0.15625 0.25 -0.0625 +v 0.15625 0 0.0625 +v 0.15625 0 -0.0625 +v 0.09375 0.25 -0.0625 +v 0.09375 0.25 0.0625 +v 0.09375 0 -0.0625 +v 0.09375 0 0.0625 +vt 0.78125 0.9375 +vt 0.8125 0.9375 +vt 0.8125 0.8125 +vt 0.78125 0.8125 +vt 0.71875 0.9375 +vt 0.78125 0.9375 +vt 0.78125 0.8125 +vt 0.71875 0.8125 +vt 0.875 0.9375 +vt 0.90625 0.9375 +vt 0.90625 0.8125 +vt 0.875 0.8125 +vt 0.8125 0.9375 +vt 0.875 0.9375 +vt 0.875 0.8125 +vt 0.8125 0.8125 +vt 0.8125 0.9375 +vt 0.78125 0.9375 +vt 0.78125 1 +vt 0.8125 1 +vt 0.84375 1 +vt 0.8125 1 +vt 0.8125 0.9375 +vt 0.84375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b432e290-ff98-8fcb-61cd-b0f5c289cd94 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o left_arm +v -0.09375 0.25 0.0625 +v -0.09375 0.25 -0.0625 +v -0.09375 0 0.0625 +v -0.09375 0 -0.0625 +v -0.15625 0.25 -0.0625 +v -0.15625 0.25 0.0625 +v -0.15625 0 -0.0625 +v -0.15625 0 0.0625 +vt 0.78125 0.75 +vt 0.8125 0.75 +vt 0.8125 0.625 +vt 0.78125 0.625 +vt 0.71875 0.75 +vt 0.78125 0.75 +vt 0.78125 0.625 +vt 0.71875 0.625 +vt 0.875 0.75 +vt 0.90625 0.75 +vt 0.90625 0.625 +vt 0.875 0.625 +vt 0.8125 0.75 +vt 0.875 0.75 +vt 0.875 0.625 +vt 0.8125 0.625 +vt 0.8125 0.75 +vt 0.78125 0.75 +vt 0.78125 0.8125 +vt 0.8125 0.8125 +vt 0.84375 0.8125 +vt 0.8125 0.8125 +vt 0.8125 0.75 +vt 0.84375 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b432e290-ff98-8fcb-61cd-b0f5c289cd94 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o left_wing +v -0.03125 0.1875 0.5625 +v -0.03125 0.1875 0.0625 +v -0.03125 -0.125 0.5625 +v -0.03125 -0.125 0.0625 +v -0.03125 0.1875 0.0625 +v -0.03125 0.1875 0.5625 +v -0.03125 -0.125 0.0625 +v -0.03125 -0.125 0.5625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 0.75 0.15625 +vt 1 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 1 0.15625 +vt 1 0.3125 +vt 1 0.3125 +vt 1 0.15625 +vt 1 0.15625 +vt 0.75 0.3125 +vt 0.5 0.3125 +vt 0.5 0.15625 +vt 0.75 0.15625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 0.75 0.5625 +vt 0.75 0.5625 +vt 0.75 0.5625 +vt 0.75 0.5625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b432e290-ff98-8fcb-61cd-b0f5c289cd94 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o right_wing +v 0.03125 0.1875 0.5625 +v 0.03125 0.1875 0.0625 +v 0.03125 -0.125 0.5625 +v 0.03125 -0.125 0.0625 +v 0.03125 0.1875 0.0625 +v 0.03125 0.1875 0.5625 +v 0.03125 -0.125 0.0625 +v 0.03125 -0.125 0.5625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 0.75 0.15625 +vt 0.5 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 0.5 0.15625 +vt 1 0.3125 +vt 1 0.3125 +vt 1 0.15625 +vt 1 0.15625 +vt 0.75 0.3125 +vt 1 0.3125 +vt 1 0.15625 +vt 0.75 0.15625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 0.75 0.5625 +vt 0.75 0.5625 +vt 0.75 0.5625 +vt 0.75 0.5625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b432e290-ff98-8fcb-61cd-b0f5c289cd94 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/arrow.obj b/renderer/viewer/three/entity/models/arrow.obj new file mode 100644 index 00000000..469dd6cd --- /dev/null +++ b/renderer/viewer/three/entity/models/arrow.obj @@ -0,0 +1,60 @@ +# Aspose.3D Wavefront OBJ Exporter +# Copyright 2004-2024 Aspose Pty Ltd. +# File created: 02/12/2025 20:01:28 + +mtllib material.lib +g Arrow + +# +# object Arrow +# + +v -160 8.146034E-06 50 +v 160 8.146034E-06 50 +v -160 -8.146034E-06 -50 +v 160 -8.146034E-06 -50 +v -160 -50 1.1920929E-05 +v 160 -50 1.1920929E-05 +v -160 50 -1.1920929E-05 +v 160 50 -1.1920929E-05 +v -140 -49.999992 50.000008 +v -140 50.000008 49.999992 +v -140 -50.000008 -49.999992 +v -140 49.999992 -50.000008 +# 12 vertices + +vn 0 1 -1.6292068E-07 +vn 0 1 -1.6292068E-07 +vn 0 1 -1.6292068E-07 +vn 0 1 -1.6292068E-07 +vn 0 3.1391647E-07 1 +vn 0 3.1391647E-07 1 +vn 0 3.1391647E-07 1 +vn 0 3.1391647E-07 1 +vn -1 0 0 +vn -1 0 0 +vn -1 0 0 +vn -1 0 0 +# 12 vertex normals + +vt 0 0.84375 0 +vt 0.5 1 0 +vt 0.5 1 0 +vt 0.5 0.84375 0 +vt 0 1 0 +vt 0.15625 0.84375 0 +vt 0.15625 0.6875 0 +vt 0 0.84375 0 +vt 0.5 0.84375 0 +vt 0 1 0 +vt 0 0.6875 0 +vt 0 0.84375 0 +# 12 texture coords + +usemtl Arrow +s 1 +f 1/1/1 2/9/2 4/2/3 3/10/4 +f 5/8/5 6/4/6 8/3/7 7/5/8 +f 9/11/9 10/7/10 12/6/11 11/12/12 +#3 polygons + diff --git a/renderer/viewer/three/entity/models/axolotl.obj b/renderer/viewer/three/entity/models/axolotl.obj new file mode 100644 index 00000000..706474b3 --- /dev/null +++ b/renderer/viewer/three/entity/models/axolotl.obj @@ -0,0 +1,509 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.25 0.25 0.3125 +v 0.25 0.25 -0.3125 +v 0.25 0 0.3125 +v 0.25 0 -0.3125 +v -0.25 0.25 -0.3125 +v -0.25 0.25 0.3125 +v -0.25 0 -0.3125 +v -0.25 0 0.3125 +vt 0.15625 0.671875 +vt 0.28125 0.671875 +vt 0.28125 0.609375 +vt 0.15625 0.609375 +vt 0 0.671875 +vt 0.15625 0.671875 +vt 0.15625 0.609375 +vt 0 0.609375 +vt 0.4375 0.671875 +vt 0.5625 0.671875 +vt 0.5625 0.609375 +vt 0.4375 0.609375 +vt 0.28125 0.671875 +vt 0.4375 0.671875 +vt 0.4375 0.609375 +vt 0.28125 0.609375 +vt 0.28125 0.671875 +vt 0.15625 0.671875 +vt 0.15625 0.828125 +vt 0.28125 0.828125 +vt 0.40625 0.828125 +vt 0.28125 0.828125 +vt 0.28125 0.671875 +vt 0.40625 0.671875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0 0.3125 0.25 +v 0 0.3125 -0.3125 +v 0 0 0.25 +v 0 0 -0.3125 +v 0 0.3125 -0.3125 +v 0 0.3125 0.25 +v 0 0 -0.3125 +v 0 0 0.25 +vt 0.171875 0.59375 +vt 0.171875 0.59375 +vt 0.171875 0.515625 +vt 0.171875 0.515625 +vt 0.03125 0.59375 +vt 0.171875 0.59375 +vt 0.171875 0.515625 +vt 0.03125 0.515625 +vt 0.3125 0.59375 +vt 0.3125 0.59375 +vt 0.3125 0.515625 +vt 0.3125 0.515625 +vt 0.171875 0.59375 +vt 0.3125 0.59375 +vt 0.3125 0.515625 +vt 0.171875 0.515625 +vt 0.171875 0.59375 +vt 0.171875 0.59375 +vt 0.171875 0.734375 +vt 0.171875 0.734375 +vt 0.171875 0.734375 +vt 0.171875 0.734375 +vt 0.171875 0.59375 +vt 0.171875 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o right_arm +v 0.25 0.0625 -0.375 +v 0.25 0.0625 -0.375 +v 0.5625 0.0625 -0.375 +v 0.5625 0.0625 -0.375 +v 0.25 0.0625 -0.1875 +v 0.25 0.0625 -0.1875 +v 0.5625 0.0625 -0.1875 +v 0.5625 0.0625 -0.1875 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.03125 0.71875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.71875 +vt 0.03125 0.71875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vn -2.220446049250313e-16 -1 -2.220446049250313e-16 +vn 4.930380657631324e-32 2.220446049250313e-16 -1 +vn 2.220446049250313e-16 1 2.220446049250313e-16 +vn -4.930380657631324e-32 -2.220446049250313e-16 1 +vn -1 2.220446049250313e-16 4.930380657631324e-32 +vn 1 -2.220446049250313e-16 -4.930380657631324e-32 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o right_leg +v 0.25 0.0625 0.3125 +v 0.25 0.0625 0.3125 +v 0.5625 0.0625 0.3125 +v 0.5625 0.0625 0.3125 +v 0.25 0.0625 0.125 +v 0.25 0.0625 0.125 +v 0.5625 0.0625 0.125 +v 0.5625 0.0625 0.125 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.03125 0.71875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.71875 +vt 0.03125 0.71875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vn 2.220446049250313e-16 1 -2.220446049250313e-16 +vn 4.930380657631324e-32 2.220446049250313e-16 1 +vn -2.220446049250313e-16 -1 2.220446049250313e-16 +vn -4.930380657631324e-32 -2.220446049250313e-16 -1 +vn -1 2.220446049250313e-16 -4.930380657631324e-32 +vn 1 -2.220446049250313e-16 4.930380657631324e-32 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o left_arm +v -0.25 0.0625 -0.1875 +v -0.25 0.0625 -0.1875 +v -0.5625 0.0625 -0.1875 +v -0.5625 0.0625 -0.1875 +v -0.25 0.0625 -0.375 +v -0.25 0.0625 -0.375 +v -0.5625 0.0625 -0.375 +v -0.5625 0.0625 -0.375 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.03125 0.71875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.71875 +vt 0.03125 0.71875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vn 2.220446049250313e-16 -1 -2.220446049250313e-16 +vn 4.930380657631324e-32 -2.220446049250313e-16 1 +vn -2.220446049250313e-16 1 2.220446049250313e-16 +vn -4.930380657631324e-32 2.220446049250313e-16 -1 +vn 1 2.220446049250313e-16 4.930380657631324e-32 +vn -1 -2.220446049250313e-16 -4.930380657631324e-32 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o left_leg +v -0.25 0.0625 0.125 +v -0.25 0.0625 0.125 +v -0.5625 0.0625 0.125 +v -0.5625 0.0625 0.125 +v -0.25 0.0625 0.3125 +v -0.25 0.0625 0.3125 +v -0.5625 0.0625 0.3125 +v -0.5625 0.0625 0.3125 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.03125 0.71875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.71875 +vt 0.03125 0.71875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.71875 +vt 0.078125 0.71875 +vt 0.078125 0.796875 +vt 0.03125 0.796875 +vt 0.03125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.796875 +vt 0.125 0.796875 +vn -2.220446049250313e-16 1 -2.220446049250313e-16 +vn 4.930380657631324e-32 -2.220446049250313e-16 -1 +vn 2.220446049250313e-16 -1 2.220446049250313e-16 +vn -4.930380657631324e-32 2.220446049250313e-16 1 +vn 1 2.220446049250313e-16 -4.930380657631324e-32 +vn -1 -2.220446049250313e-16 4.930380657631324e-32 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o tail +v 0 0.3125 1 +v 0 0.3125 0.25 +v 0 0 1 +v 0 0 0.25 +v 0 0.3125 0.25 +v 0 0.3125 1 +v 0 0 0.25 +v 0 0 1 +vt 0.21875 0.515625 +vt 0.21875 0.515625 +vt 0.21875 0.4375 +vt 0.21875 0.4375 +vt 0.03125 0.515625 +vt 0.21875 0.515625 +vt 0.21875 0.4375 +vt 0.03125 0.4375 +vt 0.40625 0.515625 +vt 0.40625 0.515625 +vt 0.40625 0.4375 +vt 0.40625 0.4375 +vt 0.21875 0.515625 +vt 0.40625 0.515625 +vt 0.40625 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.515625 +vt 0.21875 0.515625 +vt 0.21875 0.703125 +vt 0.21875 0.703125 +vt 0.21875 0.703125 +vt 0.21875 0.703125 +vt 0.21875 0.515625 +vt 0.21875 0.515625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o head +v 0.25 0.3125 -0.3125 +v 0.25 0.3125 -0.625 +v 0.25 0 -0.3125 +v 0.25 0 -0.625 +v -0.25 0.3125 -0.625 +v -0.25 0.3125 -0.3125 +v -0.25 0 -0.625 +v -0.25 0 -0.3125 +vt 0.078125 0.90625 +vt 0.203125 0.90625 +vt 0.203125 0.828125 +vt 0.078125 0.828125 +vt 0 0.90625 +vt 0.078125 0.90625 +vt 0.078125 0.828125 +vt 0 0.828125 +vt 0.28125 0.90625 +vt 0.40625 0.90625 +vt 0.40625 0.828125 +vt 0.28125 0.828125 +vt 0.203125 0.90625 +vt 0.28125 0.90625 +vt 0.28125 0.828125 +vt 0.203125 0.828125 +vt 0.203125 0.90625 +vt 0.078125 0.90625 +vt 0.078125 0.984375 +vt 0.203125 0.984375 +vt 0.328125 0.984375 +vt 0.203125 0.984375 +vt 0.203125 0.90625 +vt 0.328125 0.90625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o left_gills +v -0.25 0.4375 -0.375 +v -0.25 0.4375 -0.375 +v -0.25 0 -0.375 +v -0.25 0 -0.375 +v -0.4375 0.4375 -0.375 +v -0.4375 0.4375 -0.375 +v -0.4375 0 -0.375 +v -0.4375 0 -0.375 +vt 0.171875 0.375 +vt 0.21875 0.375 +vt 0.21875 0.265625 +vt 0.171875 0.265625 +vt 0.171875 0.375 +vt 0.171875 0.375 +vt 0.171875 0.265625 +vt 0.171875 0.265625 +vt 0.21875 0.375 +vt 0.265625 0.375 +vt 0.265625 0.265625 +vt 0.21875 0.265625 +vt 0.21875 0.375 +vt 0.21875 0.375 +vt 0.21875 0.265625 +vt 0.21875 0.265625 +vt 0.21875 0.375 +vt 0.171875 0.375 +vt 0.171875 0.375 +vt 0.21875 0.375 +vt 0.265625 0.375 +vt 0.21875 0.375 +vt 0.21875 0.375 +vt 0.265625 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o right_gills +v 0.4375 0.4375 -0.375 +v 0.4375 0.4375 -0.375 +v 0.4375 0 -0.375 +v 0.4375 0 -0.375 +v 0.25 0.4375 -0.375 +v 0.25 0.4375 -0.375 +v 0.25 0 -0.375 +v 0.25 0 -0.375 +vt 0 0.375 +vt 0.046875 0.375 +vt 0.046875 0.265625 +vt 0 0.265625 +vt 0 0.375 +vt 0 0.375 +vt 0 0.265625 +vt 0 0.265625 +vt 0.046875 0.375 +vt 0.09375 0.375 +vt 0.09375 0.265625 +vt 0.046875 0.265625 +vt 0.046875 0.375 +vt 0.046875 0.375 +vt 0.046875 0.265625 +vt 0.046875 0.265625 +vt 0.046875 0.375 +vt 0 0.375 +vt 0 0.375 +vt 0.046875 0.375 +vt 0.09375 0.375 +vt 0.046875 0.375 +vt 0.046875 0.375 +vt 0.09375 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o top_gills +v 0.25 0.5 -0.375 +v 0.25 0.5 -0.375 +v 0.25 0.3125 -0.375 +v 0.25 0.3125 -0.375 +v -0.25 0.5 -0.375 +v -0.25 0.5 -0.375 +v -0.25 0.3125 -0.375 +v -0.25 0.3125 -0.375 +vt 0.046875 0.421875 +vt 0.171875 0.421875 +vt 0.171875 0.375 +vt 0.046875 0.375 +vt 0.046875 0.421875 +vt 0.046875 0.421875 +vt 0.046875 0.375 +vt 0.046875 0.375 +vt 0.171875 0.421875 +vt 0.296875 0.421875 +vt 0.296875 0.375 +vt 0.171875 0.375 +vt 0.171875 0.421875 +vt 0.171875 0.421875 +vt 0.171875 0.375 +vt 0.171875 0.375 +vt 0.171875 0.421875 +vt 0.046875 0.421875 +vt 0.046875 0.421875 +vt 0.171875 0.421875 +vt 0.296875 0.421875 +vt 0.171875 0.421875 +vt 0.171875 0.421875 +vt 0.296875 0.421875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_eacaae49-c631-7fce-d186-9315d408fc43 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/blaze.obj b/renderer/viewer/three/entity/models/blaze.obj new file mode 100644 index 00000000..d4037c53 --- /dev/null +++ b/renderer/viewer/three/entity/models/blaze.obj @@ -0,0 +1,601 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o upperBodyParts0 +v -0.5 1.625 -0.0625 +v -0.5 1.625 -0.1875 +v -0.5 1.125 -0.0625 +v -0.5 1.125 -0.1875 +v -0.625 1.625 -0.1875 +v -0.625 1.625 -0.0625 +v -0.625 1.125 -0.1875 +v -0.625 1.125 -0.0625 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o upperBodyParts1 +v 0.625 1.625 0.1875 +v 0.625 1.625 0.0625 +v 0.625 1.125 0.1875 +v 0.625 1.125 0.0625 +v 0.5 1.625 0.0625 +v 0.5 1.625 0.1875 +v 0.5 1.125 0.0625 +v 0.5 1.125 0.1875 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o upperBodyParts2 +v -0.0625 1.625 0.625 +v -0.0625 1.625 0.5 +v -0.0625 1.125 0.625 +v -0.0625 1.125 0.5 +v -0.1875 1.625 0.5 +v -0.1875 1.625 0.625 +v -0.1875 1.125 0.5 +v -0.1875 1.125 0.625 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o upperBodyParts3 +v 0.1875 1.625 -0.5 +v 0.1875 1.625 -0.625 +v 0.1875 1.125 -0.5 +v 0.1875 1.125 -0.625 +v 0.0625 1.625 -0.625 +v 0.0625 1.625 -0.5 +v 0.0625 1.125 -0.625 +v 0.0625 1.125 -0.5 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o upperBodyParts4 +v -0.3125 1.125 0.0625 +v -0.3125 1.125 -0.0625 +v -0.3125 0.625 0.0625 +v -0.3125 0.625 -0.0625 +v -0.4375 1.125 -0.0625 +v -0.4375 1.125 0.0625 +v -0.4375 0.625 -0.0625 +v -0.4375 0.625 0.0625 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o upperBodyParts5 +v 0.4375 1.125 0.0625 +v 0.4375 1.125 -0.0625 +v 0.4375 0.625 0.0625 +v 0.4375 0.625 -0.0625 +v 0.3125 1.125 -0.0625 +v 0.3125 1.125 0.0625 +v 0.3125 0.625 -0.0625 +v 0.3125 0.625 0.0625 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o upperBodyParts6 +v 0.0625 1.125 0.4375 +v 0.0625 1.125 0.3125 +v 0.0625 0.625 0.4375 +v 0.0625 0.625 0.3125 +v -0.0625 1.125 0.3125 +v -0.0625 1.125 0.4375 +v -0.0625 0.625 0.3125 +v -0.0625 0.625 0.4375 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o upperBodyParts7 +v 0.0625 1.125 -0.3125 +v 0.0625 1.125 -0.4375 +v 0.0625 0.625 -0.3125 +v 0.0625 0.625 -0.4375 +v -0.0625 1.125 -0.4375 +v -0.0625 1.125 -0.3125 +v -0.0625 0.625 -0.4375 +v -0.0625 0.625 -0.3125 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o upperBodyParts8 +v -0.1875 0.5 0.25 +v -0.1875 0.5 0.125 +v -0.1875 0 0.25 +v -0.1875 0 0.125 +v -0.3125 0.5 0.125 +v -0.3125 0.5 0.25 +v -0.3125 0 0.125 +v -0.3125 0 0.25 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o upperBodyParts9 +v 0.3125 0.5 -0.125 +v 0.3125 0.5 -0.25 +v 0.3125 0 -0.125 +v 0.3125 0 -0.25 +v 0.1875 0.5 -0.25 +v 0.1875 0.5 -0.125 +v 0.1875 0 -0.25 +v 0.1875 0 -0.125 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o upperBodyParts10 +v 0.25 0.5 0.3125 +v 0.25 0.5 0.1875 +v 0.25 0 0.3125 +v 0.25 0 0.1875 +v 0.125 0.5 0.1875 +v 0.125 0.5 0.3125 +v 0.125 0 0.1875 +v 0.125 0 0.3125 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o upperBodyParts11 +v -0.125 0.5 -0.1875 +v -0.125 0.5 -0.3125 +v -0.125 0 -0.1875 +v -0.125 0 -0.3125 +v -0.25 0.5 -0.3125 +v -0.25 0.5 -0.1875 +v -0.25 0 -0.3125 +v -0.25 0 -0.1875 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.1875 +vt 0.03125 0.1875 +vt 0 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.1875 +vt 0 0.1875 +vt 0.09375 0.4375 +vt 0.125 0.4375 +vt 0.125 0.1875 +vt 0.09375 0.1875 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.09375 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.5 +vt 0.0625 0.5 +vt 0.09375 0.5 +vt 0.0625 0.5 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o Head +v 0.25 1.75 0.25 +v 0.25 1.75 -0.25 +v 0.25 1.25 0.25 +v 0.25 1.25 -0.25 +v -0.25 1.75 -0.25 +v -0.25 1.75 0.25 +v -0.25 1.25 -0.25 +v -0.25 1.25 0.25 +vt 0.125 0.75 +vt 0.25 0.75 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0 0.75 +vt 0.125 0.75 +vt 0.125 0.5 +vt 0 0.5 +vt 0.375 0.75 +vt 0.5 0.75 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.25 0.75 +vt 0.375 0.75 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.75 +vt 0.125 0.75 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.75 +vt 0.375 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e49346a5-14a5-1082-ba30-5d05bc57359f +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/boat.obj b/renderer/viewer/three/entity/models/boat.obj new file mode 100644 index 00000000..72b2ca2a --- /dev/null +++ b/renderer/viewer/three/entity/models/boat.obj @@ -0,0 +1,417 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o bottom +v 0.875 1.3125000000000002 -0.5 +v 0.875 1.1250000000000002 -0.5 +v 0.875 1.3125 0.5 +v 0.875 1.125 0.5 +v -0.875 1.1250000000000002 -0.5 +v -0.875 1.3125000000000002 -0.5 +v -0.875 1.125 0.5 +v -0.875 1.3125 0.5 +vt 0.2421875 0.953125 +vt 0.0234375 0.953125 +vt 0.0234375 0.703125 +vt 0.2421875 0.703125 +vt 0.265625 0.953125 +vt 0.2421875 0.953125 +vt 0.2421875 0.703125 +vt 0.265625 0.703125 +vt 0.484375 0.953125 +vt 0.265625 0.953125 +vt 0.265625 0.703125 +vt 0.484375 0.703125 +vt 0.0234375 0.953125 +vt 0 0.953125 +vt 0 0.703125 +vt 0.0234375 0.703125 +vt 0.0234375 0.953125 +vt 0.2421875 0.953125 +vt 0.2421875 1 +vt 0.0234375 1 +vt 0.2421875 1 +vt 0.4609375 1 +vt 0.4609375 0.953125 +vt 0.2421875 0.953125 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o front +v -0.9999999999999999 1.6875 0.5 +v -0.8749999999999999 1.6875 0.5 +v -0.9999999999999999 1.3125 0.5 +v -0.8749999999999999 1.3125 0.5 +v -0.8750000000000001 1.6875 -0.5 +v -1 1.6875 -0.5 +v -0.8750000000000001 1.3125 -0.5 +v -1 1.3125 -0.5 +vt 0.140625 0.546875 +vt 0.015625 0.546875 +vt 0.015625 0.453125 +vt 0.140625 0.453125 +vt 0.15625 0.546875 +vt 0.140625 0.546875 +vt 0.140625 0.453125 +vt 0.15625 0.453125 +vt 0.28125 0.546875 +vt 0.15625 0.546875 +vt 0.15625 0.453125 +vt 0.28125 0.453125 +vt 0.015625 0.546875 +vt 0 0.546875 +vt 0 0.453125 +vt 0.015625 0.453125 +vt 0.015625 0.546875 +vt 0.140625 0.546875 +vt 0.140625 0.578125 +vt 0.015625 0.578125 +vt 0.140625 0.578125 +vt 0.265625 0.578125 +vt 0.265625 0.546875 +vt 0.140625 0.546875 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o back +v 1 1.6875 -0.5625 +v 0.875 1.6875 -0.5625 +v 1 1.3125 -0.5625 +v 0.875 1.3125 -0.5625 +v 0.875 1.6875 0.5625 +v 1 1.6875 0.5625 +v 0.875 1.3125 0.5625 +v 1 1.3125 0.5625 +vt 0.15625 0.671875 +vt 0.015625 0.671875 +vt 0.015625 0.578125 +vt 0.15625 0.578125 +vt 0.171875 0.671875 +vt 0.15625 0.671875 +vt 0.15625 0.578125 +vt 0.171875 0.578125 +vt 0.3125 0.671875 +vt 0.171875 0.671875 +vt 0.171875 0.578125 +vt 0.3125 0.578125 +vt 0.015625 0.671875 +vt 0 0.671875 +vt 0 0.578125 +vt 0.015625 0.578125 +vt 0.015625 0.671875 +vt 0.15625 0.671875 +vt 0.15625 0.703125 +vt 0.015625 0.703125 +vt 0.15625 0.703125 +vt 0.296875 0.703125 +vt 0.296875 0.671875 +vt 0.15625 0.671875 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o right +v -0.875 1.6875 -0.6250000000000001 +v -0.875 1.6875 -0.5000000000000001 +v -0.875 1.3125 -0.6250000000000001 +v -0.875 1.3125 -0.5000000000000001 +v 0.875 1.6875 -0.4999999999999999 +v 0.875 1.6875 -0.6249999999999999 +v 0.875 1.3125 -0.4999999999999999 +v 0.875 1.3125 -0.6249999999999999 +vt 0.234375 0.421875 +vt 0.015625 0.421875 +vt 0.015625 0.328125 +vt 0.234375 0.328125 +vt 0.25 0.421875 +vt 0.234375 0.421875 +vt 0.234375 0.328125 +vt 0.25 0.328125 +vt 0.46875 0.421875 +vt 0.25 0.421875 +vt 0.25 0.328125 +vt 0.46875 0.328125 +vt 0.015625 0.421875 +vt 0 0.421875 +vt 0 0.328125 +vt 0.015625 0.328125 +vt 0.015625 0.421875 +vt 0.234375 0.421875 +vt 0.234375 0.453125 +vt 0.015625 0.453125 +vt 0.234375 0.453125 +vt 0.453125 0.453125 +vt 0.453125 0.421875 +vt 0.234375 0.421875 +vn -1.2246467991473532e-16 0 1 +vn -1 0 -1.2246467991473532e-16 +vn 1.2246467991473532e-16 0 -1 +vn 1 0 1.2246467991473532e-16 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o left +v 0.875 1.6875 0.625 +v 0.875 1.6875 0.5 +v 0.875 1.3125 0.625 +v 0.875 1.3125 0.5 +v -0.875 1.6875 0.5 +v -0.875 1.6875 0.625 +v -0.875 1.3125 0.5 +v -0.875 1.3125 0.625 +vt 0.234375 0.296875 +vt 0.015625 0.296875 +vt 0.015625 0.203125 +vt 0.234375 0.203125 +vt 0.25 0.296875 +vt 0.234375 0.296875 +vt 0.234375 0.203125 +vt 0.25 0.203125 +vt 0.46875 0.296875 +vt 0.25 0.296875 +vt 0.25 0.203125 +vt 0.46875 0.203125 +vt 0.015625 0.296875 +vt 0 0.296875 +vt 0 0.203125 +vt 0.015625 0.203125 +vt 0.015625 0.296875 +vt 0.234375 0.296875 +vt 0.234375 0.328125 +vt 0.015625 0.328125 +vt 0.234375 0.328125 +vt 0.453125 0.328125 +vt 0.453125 0.296875 +vt 0.234375 0.296875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o paddle_left +v 0.21875 1.4135015877365276 1.2703323467065926 +v 0.21875 1.9760015877365271 0.29605376744909906 +v 0.21875 1.3052484122634724 1.2078323467065926 +v 0.21875 1.8677484122634724 0.23355376744909906 +v 0.09375 1.9760015877365271 0.29605376744909906 +v 0.09375 1.4135015877365276 1.2703323467065926 +v 0.09375 1.8677484122634724 0.23355376744909906 +v 0.09375 1.3052484122634724 1.2078323467065926 +vt 0.640625 0.71875 +vt 0.625 0.71875 +vt 0.625 0.6875 +vt 0.640625 0.6875 +vt 0.78125 0.71875 +vt 0.640625 0.71875 +vt 0.640625 0.6875 +vt 0.78125 0.6875 +vt 0.796875 0.71875 +vt 0.78125 0.71875 +vt 0.78125 0.6875 +vt 0.796875 0.6875 +vt 0.625 0.71875 +vt 0.484375 0.71875 +vt 0.484375 0.6875 +vt 0.625 0.6875 +vt 0.625 0.71875 +vt 0.640625 0.71875 +vt 0.640625 1 +vt 0.625 1 +vt 0.640625 1 +vt 0.65625 1 +vt 0.65625 0.71875 +vt 0.640625 0.71875 +vn 0 0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 -0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 0.49999999999999994 +vn 0 -0.8660254037844387 -0.49999999999999994 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o paddle_left +v 0.156875 1.4821313509461098 1.5264621099161748 +v 0.156875 1.7008813509461098 1.147575995760483 +v 0.156875 1.1573718245269453 1.3389621099161748 +v 0.156875 1.3761218245269453 0.960075995760483 +v 0.09437499999999999 1.7008813509461098 1.147575995760483 +v 0.09437499999999999 1.4821313509461098 1.5264621099161748 +v 0.09437499999999999 1.3761218245269453 0.960075995760483 +v 0.09437499999999999 1.1573718245269453 1.3389621099161748 +vt 0.546875 0.890625 +vt 0.5390625 0.890625 +vt 0.5390625 0.796875 +vt 0.546875 0.796875 +vt 0.6015625 0.890625 +vt 0.546875 0.890625 +vt 0.546875 0.796875 +vt 0.6015625 0.796875 +vt 0.609375 0.890625 +vt 0.6015625 0.890625 +vt 0.6015625 0.796875 +vt 0.609375 0.796875 +vt 0.5390625 0.890625 +vt 0.484375 0.890625 +vt 0.484375 0.796875 +vt 0.5390625 0.796875 +vt 0.5390625 0.890625 +vt 0.546875 0.890625 +vt 0.546875 1 +vt 0.5390625 1 +vt 0.546875 1 +vt 0.5546875 1 +vt 0.5546875 0.890625 +vt 0.546875 0.890625 +vn 0 0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 -0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 0.49999999999999994 +vn 0 -0.8660254037844387 -0.49999999999999994 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o paddle_right +v 0.09374999999999989 1.4135015877365273 -1.2703323467065928 +v 0.09375 1.9760015877365271 -0.29605376744909917 +v 0.09374999999999989 1.3052484122634724 -1.2078323467065928 +v 0.09375 1.8677484122634724 -0.23355376744909917 +v 0.21875 1.9760015877365271 -0.29605376744909917 +v 0.2187499999999999 1.4135015877365273 -1.2703323467065928 +v 0.21875 1.8677484122634724 -0.23355376744909917 +v 0.21875 1.3052484122634724 -1.2078323467065928 +vt 0.640625 0.40625 +vt 0.625 0.40625 +vt 0.625 0.375 +vt 0.640625 0.375 +vt 0.78125 0.40625 +vt 0.640625 0.40625 +vt 0.640625 0.375 +vt 0.78125 0.375 +vt 0.796875 0.40625 +vt 0.78125 0.40625 +vt 0.78125 0.375 +vt 0.796875 0.375 +vt 0.625 0.40625 +vt 0.484375 0.40625 +vt 0.484375 0.375 +vt 0.625 0.375 +vt 0.625 0.40625 +vt 0.640625 0.40625 +vt 0.640625 0.6875 +vt 0.625 0.6875 +vt 0.640625 0.6875 +vt 0.65625 0.6875 +vt 0.65625 0.40625 +vt 0.640625 0.40625 +vn 1.0605752387249069e-16 0.49999999999999994 0.8660254037844387 +vn -1 -1.848892746611746e-32 1.224646799147353e-16 +vn -1.0605752387249069e-16 -0.49999999999999994 -0.8660254037844387 +vn 1 1.848892746611746e-32 -1.224646799147353e-16 +vn -6.123233995736765e-17 0.8660254037844388 -0.49999999999999994 +vn 6.123233995736765e-17 -0.8660254037844388 0.49999999999999994 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o paddle_right +v 0.09437499999999988 1.4821313509461096 -1.526462109916175 +v 0.09437499999999988 1.7008813509461094 -1.1475759957604832 +v 0.09437499999999988 1.157371824526945 -1.338962109916175 +v 0.09437499999999988 1.376121824526945 -0.9600759957604832 +v 0.15687499999999988 1.7008813509461094 -1.1475759957604832 +v 0.15687499999999988 1.4821313509461096 -1.526462109916175 +v 0.15687499999999988 1.376121824526945 -0.9600759957604832 +v 0.15687499999999988 1.157371824526945 -1.338962109916175 +vt 0.546875 0.578125 +vt 0.5390625 0.578125 +vt 0.5390625 0.484375 +vt 0.546875 0.484375 +vt 0.6015625 0.578125 +vt 0.546875 0.578125 +vt 0.546875 0.484375 +vt 0.6015625 0.484375 +vt 0.609375 0.578125 +vt 0.6015625 0.578125 +vt 0.6015625 0.484375 +vt 0.609375 0.484375 +vt 0.5390625 0.578125 +vt 0.484375 0.578125 +vt 0.484375 0.484375 +vt 0.5390625 0.484375 +vt 0.5390625 0.578125 +vt 0.546875 0.578125 +vt 0.546875 0.6875 +vt 0.5390625 0.6875 +vt 0.546875 0.6875 +vt 0.5546875 0.6875 +vt 0.5546875 0.578125 +vt 0.546875 0.578125 +vn 1.0605752387249069e-16 0.49999999999999994 0.8660254037844387 +vn -1 -1.848892746611746e-32 1.224646799147353e-16 +vn -1.0605752387249069e-16 -0.49999999999999994 -0.8660254037844387 +vn 1 1.848892746611746e-32 -1.224646799147353e-16 +vn -6.123233995736765e-17 0.8660254037844388 -0.49999999999999994 +vn 6.123233995736765e-17 -0.8660254037844388 0.49999999999999994 +usemtl m_e12ce080-c1e9-6394-d577-2c59cc23ff2d +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/camel.obj b/renderer/viewer/three/entity/models/camel.obj new file mode 100644 index 00000000..8c8f050a --- /dev/null +++ b/renderer/viewer/three/entity/models/camel.obj @@ -0,0 +1,1061 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.46875 2 0.8125 +v 0.46875 2 -0.875 +v 0.46875 1.25 0.8125 +v 0.46875 1.25 -0.875 +v -0.46875 2 -0.875 +v -0.46875 2 0.8125 +v -0.46875 1.25 -0.875 +v -0.46875 1.25 0.8125 +vt 0.2109375 0.59375 +vt 0.328125 0.59375 +vt 0.328125 0.5 +vt 0.2109375 0.5 +vt 0 0.59375 +vt 0.2109375 0.59375 +vt 0.2109375 0.5 +vt 0 0.5 +vt 0.5390625 0.59375 +vt 0.65625 0.59375 +vt 0.65625 0.5 +vt 0.5390625 0.5 +vt 0.328125 0.59375 +vt 0.5390625 0.59375 +vt 0.5390625 0.5 +vt 0.328125 0.5 +vt 0.328125 0.59375 +vt 0.2109375 0.59375 +vt 0.2109375 0.8046875 +vt 0.328125 0.8046875 +vt 0.4453125 0.8046875 +vt 0.328125 0.8046875 +vt 0.328125 0.59375 +vt 0.4453125 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o saddle layer +v 0.2875 2.31875 0.31875 +v 0.2875 2.31875 -0.38125 +v 0.2875 1.99375 0.31875 +v 0.2875 1.99375 -0.38125 +v -0.2875 2.31875 -0.38125 +v -0.2875 2.31875 0.31875 +v -0.2875 1.99375 -0.38125 +v -0.2875 1.99375 0.31875 +vt 0.6640625 0.4140625 +vt 0.734375 0.4140625 +vt 0.734375 0.375 +vt 0.6640625 0.375 +vt 0.578125 0.4140625 +vt 0.6640625 0.4140625 +vt 0.6640625 0.375 +vt 0.578125 0.375 +vt 0.8203125 0.4140625 +vt 0.890625 0.4140625 +vt 0.890625 0.375 +vt 0.8203125 0.375 +vt 0.734375 0.4140625 +vt 0.8203125 0.4140625 +vt 0.8203125 0.375 +vt 0.734375 0.375 +vt 0.734375 0.4140625 +vt 0.6640625 0.4140625 +vt 0.6640625 0.5 +vt 0.734375 0.5 +vt 0.8046875 0.5 +vt 0.734375 0.5 +vt 0.734375 0.4140625 +vt 0.8046875 0.4140625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o saddle layer +v 0.22499999999999998 2.50625 0.31875 +v 0.22499999999999998 2.50625 -0.38125 +v 0.22499999999999998 2.30625 0.31875 +v 0.22499999999999998 2.30625 -0.38125 +v -0.22499999999999998 2.50625 -0.38125 +v -0.22499999999999998 2.50625 0.31875 +v -0.22499999999999998 2.30625 -0.38125 +v -0.22499999999999998 2.30625 0.31875 +vt 0.8046875 0.0234375 +vt 0.859375 0.0234375 +vt 0.859375 0 +vt 0.8046875 0 +vt 0.71875 0.0234375 +vt 0.8046875 0.0234375 +vt 0.8046875 0 +vt 0.71875 0 +vt 0.9453125 0.0234375 +vt 1 0.0234375 +vt 1 0 +vt 0.9453125 0 +vt 0.859375 0.0234375 +vt 0.9453125 0.0234375 +vt 0.9453125 0 +vt 0.859375 0 +vt 0.859375 0.0234375 +vt 0.8046875 0.0234375 +vt 0.8046875 0.109375 +vt 0.859375 0.109375 +vt 0.9140625 0.109375 +vt 0.859375 0.109375 +vt 0.859375 0.0234375 +vt 0.9140625 0.0234375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o saddle layer +v 0.475 2.00625 0.8187500000000001 +v 0.475 2.00625 -0.88125 +v 0.475 1.24375 0.8187500000000001 +v 0.475 1.24375 -0.88125 +v -0.475 2.00625 -0.88125 +v -0.475 2.00625 0.8187500000000001 +v -0.475 1.24375 -0.88125 +v -0.475 1.24375 0.8187500000000001 +vt 0.2109375 0.09375 +vt 0.328125 0.09375 +vt 0.328125 0 +vt 0.2109375 0 +vt 0 0.09375 +vt 0.2109375 0.09375 +vt 0.2109375 0 +vt 0 0 +vt 0.5390625 0.09375 +vt 0.65625 0.09375 +vt 0.65625 0 +vt 0.5390625 0 +vt 0.328125 0.09375 +vt 0.5390625 0.09375 +vt 0.5390625 0 +vt 0.328125 0 +vt 0.328125 0.09375 +vt 0.2109375 0.09375 +vt 0.2109375 0.3046875 +vt 0.328125 0.3046875 +vt 0.4453125 0.3046875 +vt 0.328125 0.3046875 +vt 0.328125 0.09375 +vt 0.4453125 0.09375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o tail +v -0.09375 1.8125 0.8125 +v -0.09375 1.8125 0.8125 +v -0.09375 0.9375 0.8125 +v -0.09375 0.9375 0.8125 +v 0.09375 1.8125 0.8125 +v 0.09375 1.8125 0.8125 +v 0.09375 0.9375 0.8125 +v 0.09375 0.9375 0.8125 +vt 0.953125 1 +vt 0.9765625 1 +vt 0.9765625 0.890625 +vt 0.953125 0.890625 +vt 0.953125 1 +vt 0.953125 1 +vt 0.953125 0.890625 +vt 0.953125 0.890625 +vt 0.9765625 1 +vt 1 1 +vt 1 0.890625 +vt 0.9765625 0.890625 +vt 0.9765625 1 +vt 0.9765625 1 +vt 0.9765625 0.890625 +vt 0.9765625 0.890625 +vt 0.9765625 1 +vt 0.953125 1 +vt 0.953125 1 +vt 0.9765625 1 +vt 1 1 +vt 0.9765625 1 +vt 0.9765625 1 +vt 1 1 +vn 1.2246467991473532e-16 0 1 +vn -1 0 1.2246467991473532e-16 +vn -1.2246467991473532e-16 0 -1 +vn 1 0 -1.2246467991473532e-16 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o head +v 0.21875 1.875 -0.375 +v 0.21875 1.875 -1.5625 +v 0.21875 1.375 -0.375 +v 0.21875 1.375 -1.5625 +v -0.21875 1.875 -1.5625 +v -0.21875 1.875 -0.375 +v -0.21875 1.375 -1.5625 +v -0.21875 1.375 -0.375 +vt 0.6171875 0.6640625 +vt 0.671875 0.6640625 +vt 0.671875 0.6015625 +vt 0.6171875 0.6015625 +vt 0.46875 0.6640625 +vt 0.6171875 0.6640625 +vt 0.6171875 0.6015625 +vt 0.46875 0.6015625 +vt 0.8203125 0.6640625 +vt 0.875 0.6640625 +vt 0.875 0.6015625 +vt 0.8203125 0.6015625 +vt 0.671875 0.6640625 +vt 0.8203125 0.6640625 +vt 0.8203125 0.6015625 +vt 0.671875 0.6015625 +vt 0.671875 0.6640625 +vt 0.6171875 0.6640625 +vt 0.6171875 0.8125 +vt 0.671875 0.8125 +vt 0.7265625 0.8125 +vt 0.671875 0.8125 +vt 0.671875 0.6640625 +vt 0.7265625 0.6640625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o head +v 0.21875 2.75 -1.125 +v 0.21875 2.75 -1.5625 +v 0.21875 1.875 -1.125 +v 0.21875 1.875 -1.5625 +v -0.21875 2.75 -1.5625 +v -0.21875 2.75 -1.125 +v -0.21875 1.875 -1.5625 +v -0.21875 1.875 -1.125 +vt 0.21875 0.9453125 +vt 0.2734375 0.9453125 +vt 0.2734375 0.8359375 +vt 0.21875 0.8359375 +vt 0.1640625 0.9453125 +vt 0.21875 0.9453125 +vt 0.21875 0.8359375 +vt 0.1640625 0.8359375 +vt 0.328125 0.9453125 +vt 0.3828125 0.9453125 +vt 0.3828125 0.8359375 +vt 0.328125 0.8359375 +vt 0.2734375 0.9453125 +vt 0.328125 0.9453125 +vt 0.328125 0.8359375 +vt 0.2734375 0.8359375 +vt 0.2734375 0.9453125 +vt 0.21875 0.9453125 +vt 0.21875 1 +vt 0.2734375 1 +vt 0.328125 1 +vt 0.2734375 1 +vt 0.2734375 0.9453125 +vt 0.328125 0.9453125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o head +v 0.15625 2.75 -1.5625 +v 0.15625 2.75 -1.9375 +v 0.15625 2.4375 -1.5625 +v 0.15625 2.4375 -1.9375 +v -0.15625 2.75 -1.9375 +v -0.15625 2.75 -1.5625 +v -0.15625 2.4375 -1.9375 +v -0.15625 2.4375 -1.5625 +vt 0.4375 0.953125 +vt 0.4765625 0.953125 +vt 0.4765625 0.9140625 +vt 0.4375 0.9140625 +vt 0.390625 0.953125 +vt 0.4375 0.953125 +vt 0.4375 0.9140625 +vt 0.390625 0.9140625 +vt 0.5234375 0.953125 +vt 0.5625 0.953125 +vt 0.5625 0.9140625 +vt 0.5234375 0.9140625 +vt 0.4765625 0.953125 +vt 0.5234375 0.953125 +vt 0.5234375 0.9140625 +vt 0.4765625 0.9140625 +vt 0.4765625 0.953125 +vt 0.4375 0.953125 +vt 0.4375 1 +vt 0.4765625 1 +vt 0.515625 1 +vt 0.4765625 1 +vt 0.4765625 0.953125 +vt 0.515625 0.953125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o bridle layer +v 0.22499999999999998 1.88125 -0.36875 +v 0.22499999999999998 1.88125 -1.56875 +v 0.22499999999999998 1.36875 -0.36875 +v 0.22499999999999998 1.36875 -1.56875 +v -0.22499999999999998 1.88125 -1.56875 +v -0.22499999999999998 1.88125 -0.36875 +v -0.22499999999999998 1.36875 -1.56875 +v -0.22499999999999998 1.36875 -0.36875 +vt 0.6171875 0.171875 +vt 0.671875 0.171875 +vt 0.671875 0.109375 +vt 0.6171875 0.109375 +vt 0.46875 0.171875 +vt 0.6171875 0.171875 +vt 0.6171875 0.109375 +vt 0.46875 0.109375 +vt 0.8203125 0.171875 +vt 0.875 0.171875 +vt 0.875 0.109375 +vt 0.8203125 0.109375 +vt 0.671875 0.171875 +vt 0.8203125 0.171875 +vt 0.8203125 0.109375 +vt 0.671875 0.109375 +vt 0.671875 0.171875 +vt 0.6171875 0.171875 +vt 0.6171875 0.3203125 +vt 0.671875 0.3203125 +vt 0.7265625 0.3203125 +vt 0.671875 0.3203125 +vt 0.671875 0.171875 +vt 0.7265625 0.171875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o bridle layer +v 0.22499999999999998 2.75625 -1.11875 +v 0.22499999999999998 2.75625 -1.56875 +v 0.22499999999999998 1.86875 -1.11875 +v 0.22499999999999998 1.86875 -1.56875 +v -0.22499999999999998 2.75625 -1.56875 +v -0.22499999999999998 2.75625 -1.11875 +v -0.22499999999999998 1.86875 -1.56875 +v -0.22499999999999998 1.86875 -1.11875 +vt 0.21875 0.4453125 +vt 0.2734375 0.4453125 +vt 0.2734375 0.3359375 +vt 0.21875 0.3359375 +vt 0.1640625 0.4453125 +vt 0.21875 0.4453125 +vt 0.21875 0.3359375 +vt 0.1640625 0.3359375 +vt 0.328125 0.4453125 +vt 0.3828125 0.4453125 +vt 0.3828125 0.3359375 +vt 0.328125 0.3359375 +vt 0.2734375 0.4453125 +vt 0.328125 0.4453125 +vt 0.328125 0.3359375 +vt 0.2734375 0.3359375 +vt 0.2734375 0.4453125 +vt 0.21875 0.4453125 +vt 0.21875 0.5 +vt 0.2734375 0.5 +vt 0.328125 0.5 +vt 0.2734375 0.5 +vt 0.2734375 0.4453125 +vt 0.328125 0.4453125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o bridle layer +v 0.16249999999999998 2.75625 -1.5625 +v 0.16249999999999998 2.75625 -1.9500000000000002 +v 0.16249999999999998 2.43125 -1.5625 +v 0.16249999999999998 2.43125 -1.9500000000000002 +v -0.16249999999999998 2.75625 -1.9500000000000002 +v -0.16249999999999998 2.75625 -1.5625 +v -0.16249999999999998 2.43125 -1.9500000000000002 +v -0.16249999999999998 2.43125 -1.5625 +vt 0.4375 0.453125 +vt 0.4765625 0.453125 +vt 0.4765625 0.4140625 +vt 0.4375 0.4140625 +vt 0.390625 0.453125 +vt 0.4375 0.453125 +vt 0.4375 0.4140625 +vt 0.390625 0.4140625 +vt 0.5234375 0.453125 +vt 0.5625 0.453125 +vt 0.5625 0.4140625 +vt 0.5234375 0.4140625 +vt 0.4765625 0.453125 +vt 0.5234375 0.453125 +vt 0.5234375 0.4140625 +vt 0.4765625 0.4140625 +vt 0.4765625 0.453125 +vt 0.4375 0.453125 +vt 0.4375 0.5 +vt 0.4765625 0.5 +vt 0.515625 0.5 +vt 0.4765625 0.5 +vt 0.4765625 0.453125 +vt 0.515625 0.453125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o bridle +v -0.15625 2.625 -1.625 +v -0.15625 2.625 -1.75 +v -0.15625 2.5 -1.625 +v -0.15625 2.5 -1.75 +v -0.21875 2.625 -1.75 +v -0.21875 2.625 -1.625 +v -0.21875 2.5 -1.75 +v -0.21875 2.5 -1.625 +vt 0.59375 0.4375 +vt 0.6015625 0.4375 +vt 0.6015625 0.421875 +vt 0.59375 0.421875 +vt 0.578125 0.4375 +vt 0.59375 0.4375 +vt 0.59375 0.421875 +vt 0.578125 0.421875 +vt 0.6171875 0.4375 +vt 0.625 0.4375 +vt 0.625 0.421875 +vt 0.6171875 0.421875 +vt 0.6015625 0.4375 +vt 0.6171875 0.4375 +vt 0.6171875 0.421875 +vt 0.6015625 0.421875 +vt 0.6015625 0.4375 +vt 0.59375 0.4375 +vt 0.59375 0.453125 +vt 0.6015625 0.453125 +vt 0.609375 0.453125 +vt 0.6015625 0.453125 +vt 0.6015625 0.4375 +vt 0.609375 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o bridle +v 0.21875 2.625 -1.625 +v 0.21875 2.625 -1.75 +v 0.21875 2.5 -1.625 +v 0.21875 2.5 -1.75 +v 0.15625 2.625 -1.75 +v 0.15625 2.625 -1.625 +v 0.15625 2.5 -1.75 +v 0.15625 2.5 -1.625 +vt 0.6015625 0.4375 +vt 0.59375 0.4375 +vt 0.59375 0.421875 +vt 0.6015625 0.421875 +vt 0.6171875 0.4375 +vt 0.6015625 0.4375 +vt 0.6015625 0.421875 +vt 0.6171875 0.421875 +vt 0.625 0.4375 +vt 0.6171875 0.4375 +vt 0.6171875 0.421875 +vt 0.625 0.421875 +vt 0.59375 0.4375 +vt 0.578125 0.4375 +vt 0.578125 0.421875 +vt 0.59375 0.421875 +vt 0.59375 0.4375 +vt 0.6015625 0.4375 +vt 0.6015625 0.453125 +vt 0.59375 0.453125 +vt 0.6015625 0.453125 +vt 0.609375 0.453125 +vt 0.609375 0.4375 +vt 0.6015625 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o left_ear +v -0.1875 2.71875 -1.15625 +v -0.1875 2.71875 -1.28125 +v -0.1875 2.65625 -1.15625 +v -0.1875 2.65625 -1.28125 +v -0.375 2.71875 -1.28125 +v -0.375 2.71875 -1.15625 +v -0.375 2.65625 -1.28125 +v -0.375 2.65625 -1.15625 +vt 0.3671875 0.984375 +vt 0.390625 0.984375 +vt 0.390625 0.9765625 +vt 0.3671875 0.9765625 +vt 0.3515625 0.984375 +vt 0.3671875 0.984375 +vt 0.3671875 0.9765625 +vt 0.3515625 0.9765625 +vt 0.40625 0.984375 +vt 0.4296875 0.984375 +vt 0.4296875 0.9765625 +vt 0.40625 0.9765625 +vt 0.390625 0.984375 +vt 0.40625 0.984375 +vt 0.40625 0.9765625 +vt 0.390625 0.9765625 +vt 0.390625 0.984375 +vt 0.3671875 0.984375 +vt 0.3671875 1 +vt 0.390625 1 +vt 0.4140625 1 +vt 0.390625 1 +vt 0.390625 0.984375 +vt 0.4140625 0.984375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 +o right_ear +v 0.375 2.71875 -1.15625 +v 0.375 2.71875 -1.28125 +v 0.375 2.65625 -1.15625 +v 0.375 2.65625 -1.28125 +v 0.1875 2.71875 -1.28125 +v 0.1875 2.71875 -1.15625 +v 0.1875 2.65625 -1.28125 +v 0.1875 2.65625 -1.15625 +vt 0.5390625 0.984375 +vt 0.5625 0.984375 +vt 0.5625 0.9765625 +vt 0.5390625 0.9765625 +vt 0.5234375 0.984375 +vt 0.5390625 0.984375 +vt 0.5390625 0.9765625 +vt 0.5234375 0.9765625 +vt 0.578125 0.984375 +vt 0.6015625 0.984375 +vt 0.6015625 0.9765625 +vt 0.578125 0.9765625 +vt 0.5625 0.984375 +vt 0.578125 0.984375 +vt 0.578125 0.9765625 +vt 0.5625 0.9765625 +vt 0.5625 0.984375 +vt 0.5390625 0.984375 +vt 0.5390625 1 +vt 0.5625 1 +vt 0.5859375 1 +vt 0.5625 1 +vt 0.5625 0.984375 +vt 0.5859375 0.984375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 116/340/85 119/339/85 117/338/85 114/337/85 +f 115/344/86 116/343/86 114/342/86 113/341/86 +f 120/348/87 115/347/87 113/346/87 118/345/87 +f 119/352/88 120/351/88 118/350/88 117/349/88 +f 118/356/89 113/355/89 114/354/89 117/353/89 +f 119/360/90 116/359/90 115/358/90 120/357/90 +o reins layer +v -0.23125 2.5625 -0.75 +v -0.23125 2.5625 -1.6875 +v -0.23125 2.125 -0.75 +v -0.23125 2.125 -1.6875 +v -0.23125 2.5625 -1.6875 +v -0.23125 2.5625 -0.75 +v -0.23125 2.125 -1.6875 +v -0.23125 2.125 -0.75 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5 +vt 0.8828125 0.5 +vt 0.765625 0.5546875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5 +vt 0.765625 0.5 +vt 1 0.5546875 +vt 1 0.5546875 +vt 1 0.5 +vt 1 0.5 +vt 0.8828125 0.5546875 +vt 1 0.5546875 +vt 1 0.5 +vt 0.8828125 0.5 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.671875 +vt 0.8828125 0.671875 +vt 0.8828125 0.671875 +vt 0.8828125 0.671875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5546875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 124/364/91 127/363/91 125/362/91 122/361/91 +f 123/368/92 124/367/92 122/366/92 121/365/92 +f 128/372/93 123/371/93 121/370/93 126/369/93 +f 127/376/94 128/375/94 126/374/94 125/373/94 +f 126/380/95 121/379/95 122/378/95 125/377/95 +f 127/384/96 124/383/96 123/382/96 128/381/96 +o reins layer +v 0.23124999999999996 2.5625 -0.75 +v 0.23124999999999996 2.5625 -0.75 +v 0.23124999999999996 2.125 -0.75 +v 0.23124999999999996 2.125 -0.75 +v -0.23125 2.5625 -0.75 +v -0.23125 2.5625 -0.75 +v -0.23125 2.125 -0.75 +v -0.23125 2.125 -0.75 +vt 0.65625 0.5546875 +vt 0.7109375 0.5546875 +vt 0.7109375 0.5 +vt 0.65625 0.5 +vt 0.65625 0.5546875 +vt 0.65625 0.5546875 +vt 0.65625 0.5 +vt 0.65625 0.5 +vt 0.7109375 0.5546875 +vt 0.765625 0.5546875 +vt 0.765625 0.5 +vt 0.7109375 0.5 +vt 0.7109375 0.5546875 +vt 0.7109375 0.5546875 +vt 0.7109375 0.5 +vt 0.7109375 0.5 +vt 0.7109375 0.5546875 +vt 0.65625 0.5546875 +vt 0.65625 0.5546875 +vt 0.7109375 0.5546875 +vt 0.765625 0.5546875 +vt 0.7109375 0.5546875 +vt 0.7109375 0.5546875 +vt 0.765625 0.5546875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 132/388/97 135/387/97 133/386/97 130/385/97 +f 131/392/98 132/391/98 130/390/98 129/389/98 +f 136/396/99 131/395/99 129/394/99 134/393/99 +f 135/400/100 136/399/100 134/398/100 133/397/100 +f 134/404/101 129/403/101 130/402/101 133/401/101 +f 135/408/102 132/407/102 131/406/102 136/405/102 +o reins layer +v 0.23124999999999996 2.5625 -0.75 +v 0.23124999999999996 2.5625 -1.6875 +v 0.23124999999999996 2.125 -0.75 +v 0.23124999999999996 2.125 -1.6875 +v 0.23124999999999996 2.5625 -1.6875 +v 0.23124999999999996 2.5625 -0.75 +v 0.23124999999999996 2.125 -1.6875 +v 0.23124999999999996 2.125 -0.75 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5 +vt 0.8828125 0.5 +vt 0.765625 0.5546875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5 +vt 0.765625 0.5 +vt 1 0.5546875 +vt 1 0.5546875 +vt 1 0.5 +vt 1 0.5 +vt 0.8828125 0.5546875 +vt 1 0.5546875 +vt 1 0.5 +vt 0.8828125 0.5 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.671875 +vt 0.8828125 0.671875 +vt 0.8828125 0.671875 +vt 0.8828125 0.671875 +vt 0.8828125 0.5546875 +vt 0.8828125 0.5546875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 140/412/103 143/411/103 141/410/103 138/409/103 +f 139/416/104 140/415/104 138/414/104 137/413/104 +f 144/420/105 139/419/105 137/418/105 142/417/105 +f 143/424/106 144/423/106 142/422/106 141/421/106 +f 142/428/107 137/427/107 138/426/107 141/425/107 +f 143/432/108 140/431/108 139/430/108 144/429/108 +o hump +v 0.28125 2.3125 0.3125 +v 0.28125 2.3125 -0.375 +v 0.28125 2 0.3125 +v 0.28125 2 -0.375 +v -0.28125 2.3125 -0.375 +v -0.28125 2.3125 0.3125 +v -0.28125 2 -0.375 +v -0.28125 2 0.3125 +vt 0.6640625 0.9140625 +vt 0.734375 0.9140625 +vt 0.734375 0.875 +vt 0.6640625 0.875 +vt 0.578125 0.9140625 +vt 0.6640625 0.9140625 +vt 0.6640625 0.875 +vt 0.578125 0.875 +vt 0.8203125 0.9140625 +vt 0.890625 0.9140625 +vt 0.890625 0.875 +vt 0.8203125 0.875 +vt 0.734375 0.9140625 +vt 0.8203125 0.9140625 +vt 0.8203125 0.875 +vt 0.734375 0.875 +vt 0.734375 0.9140625 +vt 0.6640625 0.9140625 +vt 0.6640625 1 +vt 0.734375 1 +vt 0.8046875 1 +vt 0.734375 1 +vt 0.734375 0.9140625 +vt 0.8046875 0.9140625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 148/436/109 151/435/109 149/434/109 146/433/109 +f 147/440/110 148/439/110 146/438/110 145/437/110 +f 152/444/111 147/443/111 145/442/111 150/441/111 +f 151/448/112 152/447/112 150/446/112 149/445/112 +f 150/452/113 145/451/113 146/450/113 149/449/113 +f 151/456/114 148/455/114 147/454/114 152/453/114 +o right_front_leg +v 0.4625 1.3125 -0.5 +v 0.4625 1.3125 -0.8125 +v 0.4625 0 -0.5 +v 0.4625 0 -0.8125 +v 0.15000000000000002 1.3125 -0.8125 +v 0.15000000000000002 1.3125 -0.5 +v 0.15000000000000002 0 -0.8125 +v 0.15000000000000002 0 -0.5 +vt 0.0390625 0.7578125 +vt 0.078125 0.7578125 +vt 0.078125 0.59375 +vt 0.0390625 0.59375 +vt 0 0.7578125 +vt 0.0390625 0.7578125 +vt 0.0390625 0.59375 +vt 0 0.59375 +vt 0.1171875 0.7578125 +vt 0.15625 0.7578125 +vt 0.15625 0.59375 +vt 0.1171875 0.59375 +vt 0.078125 0.7578125 +vt 0.1171875 0.7578125 +vt 0.1171875 0.59375 +vt 0.078125 0.59375 +vt 0.078125 0.7578125 +vt 0.0390625 0.7578125 +vt 0.0390625 0.796875 +vt 0.078125 0.796875 +vt 0.1171875 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.7578125 +vt 0.1171875 0.7578125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 156/460/115 159/459/115 157/458/115 154/457/115 +f 155/464/116 156/463/116 154/462/116 153/461/116 +f 160/468/117 155/467/117 153/466/117 158/465/117 +f 159/472/118 160/471/118 158/470/118 157/469/118 +f 158/476/119 153/475/119 154/474/119 157/473/119 +f 159/480/120 156/479/120 155/478/120 160/477/120 +o left_front_leg +v -0.15000000000000002 1.3125 -0.5 +v -0.15000000000000002 1.3125 -0.8125 +v -0.15000000000000002 0 -0.5 +v -0.15000000000000002 0 -0.8125 +v -0.4625 1.3125 -0.8125 +v -0.4625 1.3125 -0.5 +v -0.4625 0 -0.8125 +v -0.4625 0 -0.5 +vt 0.0390625 0.9609375 +vt 0.078125 0.9609375 +vt 0.078125 0.796875 +vt 0.0390625 0.796875 +vt 0 0.9609375 +vt 0.0390625 0.9609375 +vt 0.0390625 0.796875 +vt 0 0.796875 +vt 0.1171875 0.9609375 +vt 0.15625 0.9609375 +vt 0.15625 0.796875 +vt 0.1171875 0.796875 +vt 0.078125 0.9609375 +vt 0.1171875 0.9609375 +vt 0.1171875 0.796875 +vt 0.078125 0.796875 +vt 0.078125 0.9609375 +vt 0.0390625 0.9609375 +vt 0.0390625 1 +vt 0.078125 1 +vt 0.1171875 1 +vt 0.078125 1 +vt 0.078125 0.9609375 +vt 0.1171875 0.9609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 164/484/121 167/483/121 165/482/121 162/481/121 +f 163/488/122 164/487/122 162/486/122 161/485/122 +f 168/492/123 163/491/123 161/490/123 166/489/123 +f 167/496/124 168/495/124 166/494/124 165/493/124 +f 166/500/125 161/499/125 162/498/125 165/497/125 +f 167/504/126 164/503/126 163/502/126 168/501/126 +o left_hind_leg +v -0.15000000000000002 1.3125 0.75 +v -0.15000000000000002 1.3125 0.4375 +v -0.15000000000000002 0 0.75 +v -0.15000000000000002 0 0.4375 +v -0.4625 1.3125 0.4375 +v -0.4625 1.3125 0.75 +v -0.4625 0 0.4375 +v -0.4625 0 0.75 +vt 0.4921875 0.8359375 +vt 0.53125 0.8359375 +vt 0.53125 0.671875 +vt 0.4921875 0.671875 +vt 0.453125 0.8359375 +vt 0.4921875 0.8359375 +vt 0.4921875 0.671875 +vt 0.453125 0.671875 +vt 0.5703125 0.8359375 +vt 0.609375 0.8359375 +vt 0.609375 0.671875 +vt 0.5703125 0.671875 +vt 0.53125 0.8359375 +vt 0.5703125 0.8359375 +vt 0.5703125 0.671875 +vt 0.53125 0.671875 +vt 0.53125 0.8359375 +vt 0.4921875 0.8359375 +vt 0.4921875 0.875 +vt 0.53125 0.875 +vt 0.5703125 0.875 +vt 0.53125 0.875 +vt 0.53125 0.8359375 +vt 0.5703125 0.8359375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 172/508/127 175/507/127 173/506/127 170/505/127 +f 171/512/128 172/511/128 170/510/128 169/509/128 +f 176/516/129 171/515/129 169/514/129 174/513/129 +f 175/520/130 176/519/130 174/518/130 173/517/130 +f 174/524/131 169/523/131 170/522/131 173/521/131 +f 175/528/132 172/527/132 171/526/132 176/525/132 +o right_hind_leg +v 0.4625 1.3125 0.75 +v 0.4625 1.3125 0.4375 +v 0.4625 0 0.75 +v 0.4625 0 0.4375 +v 0.15000000000000002 1.3125 0.4375 +v 0.15000000000000002 1.3125 0.75 +v 0.15000000000000002 0 0.4375 +v 0.15000000000000002 0 0.75 +vt 0.7734375 0.8359375 +vt 0.8125 0.8359375 +vt 0.8125 0.671875 +vt 0.7734375 0.671875 +vt 0.734375 0.8359375 +vt 0.7734375 0.8359375 +vt 0.7734375 0.671875 +vt 0.734375 0.671875 +vt 0.8515625 0.8359375 +vt 0.890625 0.8359375 +vt 0.890625 0.671875 +vt 0.8515625 0.671875 +vt 0.8125 0.8359375 +vt 0.8515625 0.8359375 +vt 0.8515625 0.671875 +vt 0.8125 0.671875 +vt 0.8125 0.8359375 +vt 0.7734375 0.8359375 +vt 0.7734375 0.875 +vt 0.8125 0.875 +vt 0.8515625 0.875 +vt 0.8125 0.875 +vt 0.8125 0.8359375 +vt 0.8515625 0.8359375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_ef8cbfee-18ba-edcd-78d9-3f4313675f2e +f 180/532/133 183/531/133 181/530/133 178/529/133 +f 179/536/134 180/535/134 178/534/134 177/533/134 +f 184/540/135 179/539/135 177/538/135 182/537/135 +f 183/544/136 184/543/136 182/542/136 181/541/136 +f 182/548/137 177/547/137 178/546/137 181/545/137 +f 183/552/138 180/551/138 179/550/138 184/549/138 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/cat.obj b/renderer/viewer/three/entity/models/cat.obj new file mode 100644 index 00000000..8067b5c6 --- /dev/null +++ b/renderer/viewer/three/entity/models/cat.obj @@ -0,0 +1,509 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.125 0.625 -0.4375 +v 0.125 0.2500000000000001 -0.4375 +v 0.125 0.625 0.5625 +v 0.125 0.2499999999999999 0.5625 +v -0.125 0.2500000000000001 -0.4375 +v -0.125 0.625 -0.4375 +v -0.125 0.2499999999999999 0.5625 +v -0.125 0.625 0.5625 +vt 0.40625 0.8125 +vt 0.46875 0.8125 +vt 0.46875 0.3125 +vt 0.40625 0.3125 +vt 0.3125 0.8125 +vt 0.40625 0.8125 +vt 0.40625 0.3125 +vt 0.3125 0.3125 +vt 0.5625 0.8125 +vt 0.625 0.8125 +vt 0.625 0.3125 +vt 0.5625 0.3125 +vt 0.46875 0.8125 +vt 0.5625 0.8125 +vt 0.5625 0.3125 +vt 0.46875 0.3125 +vt 0.46875 0.8125 +vt 0.40625 0.8125 +vt 0.40625 1 +vt 0.46875 1 +vt 0.53125 1 +vt 0.46875 1 +vt 0.46875 0.8125 +vt 0.53125 0.8125 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o head +v 0.15625 0.6875 -0.4375 +v 0.15625 0.6875 -0.75 +v 0.15625 0.4375 -0.4375 +v 0.15625 0.4375 -0.75 +v -0.15625 0.6875 -0.75 +v -0.15625 0.6875 -0.4375 +v -0.15625 0.4375 -0.75 +v -0.15625 0.4375 -0.4375 +vt 0.078125 0.84375 +vt 0.15625 0.84375 +vt 0.15625 0.71875 +vt 0.078125 0.71875 +vt 0 0.84375 +vt 0.078125 0.84375 +vt 0.078125 0.71875 +vt 0 0.71875 +vt 0.234375 0.84375 +vt 0.3125 0.84375 +vt 0.3125 0.71875 +vt 0.234375 0.71875 +vt 0.15625 0.84375 +vt 0.234375 0.84375 +vt 0.234375 0.71875 +vt 0.15625 0.71875 +vt 0.15625 0.84375 +vt 0.078125 0.84375 +vt 0.078125 1 +vt 0.15625 1 +vt 0.234375 1 +vt 0.15625 1 +vt 0.15625 0.84375 +vt 0.234375 0.84375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.09375 0.5634762499999999 -0.6875 +v 0.09375 0.5634762499999999 -0.8125 +v 0.09375 0.43847625 -0.6875 +v 0.09375 0.43847625 -0.8125 +v -0.09375 0.5634762499999999 -0.8125 +v -0.09375 0.5634762499999999 -0.6875 +v -0.09375 0.43847625 -0.8125 +v -0.09375 0.43847625 -0.6875 +vt 0.03125 0.1875 +vt 0.078125 0.1875 +vt 0.078125 0.125 +vt 0.03125 0.125 +vt 0 0.1875 +vt 0.03125 0.1875 +vt 0.03125 0.125 +vt 0 0.125 +vt 0.109375 0.1875 +vt 0.15625 0.1875 +vt 0.15625 0.125 +vt 0.109375 0.125 +vt 0.078125 0.1875 +vt 0.109375 0.1875 +vt 0.109375 0.125 +vt 0.078125 0.125 +vt 0.078125 0.1875 +vt 0.03125 0.1875 +vt 0.03125 0.25 +vt 0.078125 0.25 +vt 0.125 0.25 +vt 0.078125 0.25 +vt 0.078125 0.1875 +vt 0.125 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.125 0.75 -0.4375 +v 0.125 0.75 -0.5625 +v 0.125 0.6875 -0.4375 +v 0.125 0.6875 -0.5625 +v 0.0625 0.75 -0.5625 +v 0.0625 0.75 -0.4375 +v 0.0625 0.6875 -0.5625 +v 0.0625 0.6875 -0.4375 +vt 0.03125 0.625 +vt 0.046875 0.625 +vt 0.046875 0.59375 +vt 0.03125 0.59375 +vt 0 0.625 +vt 0.03125 0.625 +vt 0.03125 0.59375 +vt 0 0.59375 +vt 0.078125 0.625 +vt 0.09375 0.625 +vt 0.09375 0.59375 +vt 0.078125 0.59375 +vt 0.046875 0.625 +vt 0.078125 0.625 +vt 0.078125 0.59375 +vt 0.046875 0.59375 +vt 0.046875 0.625 +vt 0.03125 0.625 +vt 0.03125 0.6875 +vt 0.046875 0.6875 +vt 0.0625 0.6875 +vt 0.046875 0.6875 +vt 0.046875 0.625 +vt 0.0625 0.625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o head +v -0.0625 0.75 -0.4375 +v -0.0625 0.75 -0.5625 +v -0.0625 0.6875 -0.4375 +v -0.0625 0.6875 -0.5625 +v -0.125 0.75 -0.5625 +v -0.125 0.75 -0.4375 +v -0.125 0.6875 -0.5625 +v -0.125 0.6875 -0.4375 +vt 0.125 0.625 +vt 0.140625 0.625 +vt 0.140625 0.59375 +vt 0.125 0.59375 +vt 0.09375 0.625 +vt 0.125 0.625 +vt 0.125 0.59375 +vt 0.09375 0.59375 +vt 0.171875 0.625 +vt 0.1875 0.625 +vt 0.1875 0.59375 +vt 0.171875 0.59375 +vt 0.140625 0.625 +vt 0.171875 0.625 +vt 0.171875 0.59375 +vt 0.140625 0.59375 +vt 0.140625 0.625 +vt 0.125 0.625 +vt 0.125 0.6875 +vt 0.140625 0.6875 +vt 0.15625 0.6875 +vt 0.140625 0.6875 +vt 0.140625 0.625 +vt 0.15625 0.625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o tail1 +v 0.03125 0.6066941738241591 0.5441941738241594 +v 0.03125 0.5625 0.5 +v 0.03125 0.2531407832308854 0.8977475644174331 +v 0.03125 0.20894660940672616 0.853553390593274 +v -0.03125 0.5625 0.5 +v -0.03125 0.6066941738241591 0.5441941738241594 +v -0.03125 0.20894660940672616 0.853553390593274 +v -0.03125 0.2531407832308854 0.8977475644174331 +vt 0.015625 0.5 +vt 0.03125 0.5 +vt 0.03125 0.25 +vt 0.015625 0.25 +vt 0 0.5 +vt 0.015625 0.5 +vt 0.015625 0.25 +vt 0 0.25 +vt 0.046875 0.5 +vt 0.0625 0.5 +vt 0.0625 0.25 +vt 0.046875 0.25 +vt 0.03125 0.5 +vt 0.046875 0.5 +vt 0.046875 0.25 +vt 0.03125 0.25 +vt 0.03125 0.5 +vt 0.015625 0.5 +vt 0.015625 0.53125 +vt 0.03125 0.53125 +vt 0.046875 0.53125 +vt 0.03125 0.53125 +vt 0.03125 0.5 +vt 0.046875 0.5 +vn 0 -0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 -0.7071067811865476 +vn 0 -0.7071067811865475 0.7071067811865476 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o tail2 +v 0.03125 0.27144660940672627 0.8535533905932737 +v 0.03125 0.20894660940672627 0.8535533905932737 +v 0.03125 0.2714466094067264 1.3535533905932737 +v 0.03125 0.20894660940672638 1.3535533905932737 +v -0.03125 0.20894660940672627 0.8535533905932737 +v -0.03125 0.27144660940672627 0.8535533905932737 +v -0.03125 0.20894660940672638 1.3535533905932737 +v -0.03125 0.2714466094067264 1.3535533905932737 +vt 0.078125 0.5 +vt 0.09375 0.5 +vt 0.09375 0.25 +vt 0.078125 0.25 +vt 0.0625 0.5 +vt 0.078125 0.5 +vt 0.078125 0.25 +vt 0.0625 0.25 +vt 0.109375 0.5 +vt 0.125 0.5 +vt 0.125 0.25 +vt 0.109375 0.25 +vt 0.09375 0.5 +vt 0.109375 0.5 +vt 0.109375 0.25 +vt 0.09375 0.25 +vt 0.09375 0.5 +vt 0.078125 0.5 +vt 0.078125 0.53125 +vt 0.09375 0.53125 +vt 0.109375 0.53125 +vt 0.09375 0.53125 +vt 0.09375 0.5 +vt 0.109375 0.5 +vn 0 -1 2.220446049250313e-16 +vn 1 0 0 +vn 0 1 -2.220446049250313e-16 +vn -1 0 0 +vn 0 -2.220446049250313e-16 -1 +vn 0 2.220446049250313e-16 1 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o backLegL +v -0.006249999999999978 0.375 0.5 +v -0.006249999999999978 0.375 0.375 +v -0.006249999999999978 0 0.5 +v -0.006249999999999978 0 0.375 +v -0.13124999999999998 0.375 0.375 +v -0.13124999999999998 0.375 0.5 +v -0.13124999999999998 0 0.375 +v -0.13124999999999998 0 0.5 +vt 0.15625 0.53125 +vt 0.1875 0.53125 +vt 0.1875 0.34375 +vt 0.15625 0.34375 +vt 0.125 0.53125 +vt 0.15625 0.53125 +vt 0.15625 0.34375 +vt 0.125 0.34375 +vt 0.21875 0.53125 +vt 0.25 0.53125 +vt 0.25 0.34375 +vt 0.21875 0.34375 +vt 0.1875 0.53125 +vt 0.21875 0.53125 +vt 0.21875 0.34375 +vt 0.1875 0.34375 +vt 0.1875 0.53125 +vt 0.15625 0.53125 +vt 0.15625 0.59375 +vt 0.1875 0.59375 +vt 0.21875 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.53125 +vt 0.21875 0.53125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o backLegR +v 0.13124999999999998 0.375 0.5 +v 0.13124999999999998 0.375 0.375 +v 0.13124999999999998 0 0.5 +v 0.13124999999999998 0 0.375 +v 0.006249999999999978 0.375 0.375 +v 0.006249999999999978 0.375 0.5 +v 0.006249999999999978 0 0.375 +v 0.006249999999999978 0 0.5 +vt 0.15625 0.53125 +vt 0.1875 0.53125 +vt 0.1875 0.34375 +vt 0.15625 0.34375 +vt 0.125 0.53125 +vt 0.15625 0.53125 +vt 0.15625 0.34375 +vt 0.125 0.34375 +vt 0.21875 0.53125 +vt 0.25 0.53125 +vt 0.25 0.34375 +vt 0.21875 0.34375 +vt 0.1875 0.53125 +vt 0.21875 0.53125 +vt 0.21875 0.34375 +vt 0.1875 0.34375 +vt 0.1875 0.53125 +vt 0.15625 0.53125 +vt 0.15625 0.59375 +vt 0.1875 0.59375 +vt 0.21875 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.53125 +vt 0.21875 0.53125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o frontLegL +v -0.012500000000000011 0.6375 -0.1875 +v -0.012500000000000011 0.6375 -0.3125 +v -0.012500000000000011 0.012499999999999956 -0.1875 +v -0.012500000000000011 0.012499999999999956 -0.3125 +v -0.1375 0.6375 -0.3125 +v -0.1375 0.6375 -0.1875 +v -0.1375 0.012499999999999956 -0.3125 +v -0.1375 0.012499999999999956 -0.1875 +vt 0.65625 0.9375 +vt 0.6875 0.9375 +vt 0.6875 0.625 +vt 0.65625 0.625 +vt 0.625 0.9375 +vt 0.65625 0.9375 +vt 0.65625 0.625 +vt 0.625 0.625 +vt 0.71875 0.9375 +vt 0.75 0.9375 +vt 0.75 0.625 +vt 0.71875 0.625 +vt 0.6875 0.9375 +vt 0.71875 0.9375 +vt 0.71875 0.625 +vt 0.6875 0.625 +vt 0.6875 0.9375 +vt 0.65625 0.9375 +vt 0.65625 1 +vt 0.6875 1 +vt 0.71875 1 +vt 0.6875 1 +vt 0.6875 0.9375 +vt 0.71875 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o frontLegR +v 0.13749999999999996 0.6375 -0.1875 +v 0.13749999999999996 0.6375 -0.3125 +v 0.13749999999999996 0.012499999999999956 -0.1875 +v 0.13749999999999996 0.012499999999999956 -0.3125 +v 0.012499999999999956 0.6375 -0.3125 +v 0.012499999999999956 0.6375 -0.1875 +v 0.012499999999999956 0.012499999999999956 -0.3125 +v 0.012499999999999956 0.012499999999999956 -0.1875 +vt 0.65625 0.9375 +vt 0.6875 0.9375 +vt 0.6875 0.625 +vt 0.65625 0.625 +vt 0.625 0.9375 +vt 0.65625 0.9375 +vt 0.65625 0.625 +vt 0.625 0.625 +vt 0.71875 0.9375 +vt 0.75 0.9375 +vt 0.75 0.625 +vt 0.71875 0.625 +vt 0.6875 0.9375 +vt 0.71875 0.9375 +vt 0.71875 0.625 +vt 0.6875 0.625 +vt 0.6875 0.9375 +vt 0.65625 0.9375 +vt 0.65625 1 +vt 0.6875 1 +vt 0.71875 1 +vt 0.6875 1 +vt 0.6875 0.9375 +vt 0.71875 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_2ee28436-932f-1f18-8613-04d9bd8d8ca4 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/chicken.obj b/renderer/viewer/three/entity/models/chicken.obj new file mode 100644 index 00000000..ec873ffd --- /dev/null +++ b/renderer/viewer/three/entity/models/chicken.obj @@ -0,0 +1,371 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.1875 0.6875 -0.25 +v 0.1875 0.3125 -0.25 +v 0.1875 0.6875 0.25 +v 0.1875 0.3125 0.25 +v -0.1875 0.3125 -0.25 +v -0.1875 0.6875 -0.25 +v -0.1875 0.3125 0.25 +v -0.1875 0.6875 0.25 +vt 0.09375 0.53125 +vt 0.1875 0.53125 +vt 0.1875 0.28125 +vt 0.09375 0.28125 +vt 0 0.53125 +vt 0.09375 0.53125 +vt 0.09375 0.28125 +vt 0 0.28125 +vt 0.28125 0.53125 +vt 0.375 0.53125 +vt 0.375 0.28125 +vt 0.28125 0.28125 +vt 0.1875 0.53125 +vt 0.28125 0.53125 +vt 0.28125 0.28125 +vt 0.1875 0.28125 +vt 0.1875 0.53125 +vt 0.09375 0.53125 +vt 0.09375 0.71875 +vt 0.1875 0.71875 +vt 0.28125 0.71875 +vt 0.1875 0.71875 +vt 0.1875 0.53125 +vt 0.28125 0.53125 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o head +v 0.125 0.9375 -0.1875 +v 0.125 0.9375 -0.375 +v 0.125 0.5625 -0.1875 +v 0.125 0.5625 -0.375 +v -0.125 0.9375 -0.375 +v -0.125 0.9375 -0.1875 +v -0.125 0.5625 -0.375 +v -0.125 0.5625 -0.1875 +vt 0.046875 0.90625 +vt 0.109375 0.90625 +vt 0.109375 0.71875 +vt 0.046875 0.71875 +vt 0 0.90625 +vt 0.046875 0.90625 +vt 0.046875 0.71875 +vt 0 0.71875 +vt 0.15625 0.90625 +vt 0.21875 0.90625 +vt 0.21875 0.71875 +vt 0.15625 0.71875 +vt 0.109375 0.90625 +vt 0.15625 0.90625 +vt 0.15625 0.71875 +vt 0.109375 0.71875 +vt 0.109375 0.90625 +vt 0.046875 0.90625 +vt 0.046875 1 +vt 0.109375 1 +vt 0.171875 1 +vt 0.109375 1 +vt 0.109375 0.90625 +vt 0.171875 0.90625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o comb +v 0.0625 0.6875 -0.3125 +v 0.0625 0.6875 -0.4375 +v 0.0625 0.5625 -0.3125 +v 0.0625 0.5625 -0.4375 +v -0.0625 0.6875 -0.4375 +v -0.0625 0.6875 -0.3125 +v -0.0625 0.5625 -0.4375 +v -0.0625 0.5625 -0.3125 +vt 0.25 0.8125 +vt 0.28125 0.8125 +vt 0.28125 0.75 +vt 0.25 0.75 +vt 0.21875 0.8125 +vt 0.25 0.8125 +vt 0.25 0.75 +vt 0.21875 0.75 +vt 0.3125 0.8125 +vt 0.34375 0.8125 +vt 0.34375 0.75 +vt 0.3125 0.75 +vt 0.28125 0.8125 +vt 0.3125 0.8125 +vt 0.3125 0.75 +vt 0.28125 0.75 +vt 0.28125 0.8125 +vt 0.25 0.8125 +vt 0.25 0.875 +vt 0.28125 0.875 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.28125 0.8125 +vt 0.3125 0.8125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o beak +v 0.125 0.8224431423663936 -0.35273540157455374 +v 0.125 0.8333376102098509 -0.4772597388360219 +v 0.125 0.6979188051049254 -0.363629869418011 +v 0.125 0.7088132729483827 -0.4881542066794792 +v -0.125 0.8333376102098509 -0.4772597388360219 +v -0.125 0.8224431423663936 -0.35273540157455374 +v -0.125 0.7088132729483827 -0.4881542066794792 +v -0.125 0.6979188051049254 -0.363629869418011 +vt 0.25 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.25 0.875 +vt 0.21875 0.9375 +vt 0.25 0.9375 +vt 0.25 0.875 +vt 0.21875 0.875 +vt 0.34375 0.9375 +vt 0.40625 0.9375 +vt 0.40625 0.875 +vt 0.34375 0.875 +vt 0.3125 0.9375 +vt 0.34375 0.9375 +vt 0.34375 0.875 +vt 0.3125 0.875 +vt 0.3125 0.9375 +vt 0.25 0.9375 +vt 0.25 1 +vt 0.3125 1 +vt 0.375 1 +vt 0.3125 1 +vt 0.3125 0.9375 +vt 0.375 0.9375 +vn 0 0.08715574274765818 -0.9961946980917455 +vn 1 0 0 +vn 0 -0.08715574274765818 0.9961946980917455 +vn -1 0 0 +vn 0 0.9961946980917455 0.08715574274765818 +vn 0 -0.9961946980917455 -0.08715574274765818 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o leg0 +v 0.1875 0.3125 0.0625 +v 0.1875 0.3125 -0.125 +v 0.1875 0 0.0625 +v 0.1875 0 -0.125 +v 0 0.3125 -0.125 +v 0 0.3125 0.0625 +v 0 0 -0.125 +v 0 0 0.0625 +vt 0.453125 0.90625 +vt 0.5 0.90625 +vt 0.5 0.75 +vt 0.453125 0.75 +vt 0.40625 0.90625 +vt 0.453125 0.90625 +vt 0.453125 0.75 +vt 0.40625 0.75 +vt 0.546875 0.90625 +vt 0.59375 0.90625 +vt 0.59375 0.75 +vt 0.546875 0.75 +vt 0.5 0.90625 +vt 0.546875 0.90625 +vt 0.546875 0.75 +vt 0.5 0.75 +vt 0.5 0.90625 +vt 0.453125 0.90625 +vt 0.453125 1 +vt 0.5 1 +vt 0.546875 1 +vt 0.5 1 +vt 0.5 0.90625 +vt 0.546875 0.90625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leg1 +v 0 0.3125 0.0625 +v 0 0.3125 -0.125 +v 0 0 0.0625 +v 0 0 -0.125 +v -0.1875 0.3125 -0.125 +v -0.1875 0.3125 0.0625 +v -0.1875 0 -0.125 +v -0.1875 0 0.0625 +vt 0.453125 0.90625 +vt 0.5 0.90625 +vt 0.5 0.75 +vt 0.453125 0.75 +vt 0.40625 0.90625 +vt 0.453125 0.90625 +vt 0.453125 0.75 +vt 0.40625 0.75 +vt 0.546875 0.90625 +vt 0.59375 0.90625 +vt 0.59375 0.75 +vt 0.546875 0.75 +vt 0.5 0.90625 +vt 0.546875 0.90625 +vt 0.546875 0.75 +vt 0.5 0.75 +vt 0.5 0.90625 +vt 0.453125 0.90625 +vt 0.453125 1 +vt 0.5 1 +vt 0.546875 1 +vt 0.5 1 +vt 0.5 0.90625 +vt 0.546875 0.90625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o wing0 +v 0.25 0.6875 0.1875 +v 0.25 0.6875 -0.1875 +v 0.25 0.4375 0.1875 +v 0.25 0.4375 -0.1875 +v 0.1875 0.6875 -0.1875 +v 0.1875 0.6875 0.1875 +v 0.1875 0.4375 -0.1875 +v 0.1875 0.4375 0.1875 +vt 0.46875 0.40625 +vt 0.484375 0.40625 +vt 0.484375 0.28125 +vt 0.46875 0.28125 +vt 0.375 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.28125 +vt 0.375 0.28125 +vt 0.578125 0.40625 +vt 0.59375 0.40625 +vt 0.59375 0.28125 +vt 0.578125 0.28125 +vt 0.484375 0.40625 +vt 0.578125 0.40625 +vt 0.578125 0.28125 +vt 0.484375 0.28125 +vt 0.484375 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.59375 +vt 0.484375 0.59375 +vt 0.5 0.59375 +vt 0.484375 0.59375 +vt 0.484375 0.40625 +vt 0.5 0.40625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o wing1 +v -0.1875 0.6875 0.1875 +v -0.1875 0.6875 -0.1875 +v -0.1875 0.4375 0.1875 +v -0.1875 0.4375 -0.1875 +v -0.25 0.6875 -0.1875 +v -0.25 0.6875 0.1875 +v -0.25 0.4375 -0.1875 +v -0.25 0.4375 0.1875 +vt 0.46875 0.40625 +vt 0.484375 0.40625 +vt 0.484375 0.28125 +vt 0.46875 0.28125 +vt 0.375 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.28125 +vt 0.375 0.28125 +vt 0.578125 0.40625 +vt 0.59375 0.40625 +vt 0.59375 0.28125 +vt 0.578125 0.28125 +vt 0.484375 0.40625 +vt 0.578125 0.40625 +vt 0.578125 0.28125 +vt 0.484375 0.28125 +vt 0.484375 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.59375 +vt 0.484375 0.59375 +vt 0.5 0.59375 +vt 0.484375 0.59375 +vt 0.484375 0.40625 +vt 0.5 0.40625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a3a58acf-2885-3588-3386-06528bca041b +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/cod.obj b/renderer/viewer/three/entity/models/cod.obj new file mode 100644 index 00000000..2b469b8b --- /dev/null +++ b/renderer/viewer/three/entity/models/cod.obj @@ -0,0 +1,371 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.0625 0.25 0.5 +v 0.0625 0.25 0.0625 +v 0.0625 0 0.5 +v 0.0625 0 0.0625 +v -0.0625 0.25 0.0625 +v -0.0625 0.25 0.5 +v -0.0625 0 0.0625 +v -0.0625 0 0.5 +vt 0.21875 0.78125 +vt 0.28125 0.78125 +vt 0.28125 0.65625 +vt 0.21875 0.65625 +vt 0 0.78125 +vt 0.21875 0.78125 +vt 0.21875 0.65625 +vt 0 0.65625 +vt 0.5 0.78125 +vt 0.5625 0.78125 +vt 0.5625 0.65625 +vt 0.5 0.65625 +vt 0.28125 0.78125 +vt 0.5 0.78125 +vt 0.5 0.65625 +vt 0.28125 0.65625 +vt 0.28125 0.78125 +vt 0.21875 0.78125 +vt 0.21875 1 +vt 0.28125 1 +vt 0.34375 1 +vt 0.28125 1 +vt 0.28125 0.78125 +vt 0.34375 0.78125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0 0.3125 0.375 +v 0 0.3125 0 +v 0 0.25 0.375 +v 0 0.25 0 +v 0 0.3125 0 +v 0 0.3125 0.375 +v 0 0.25 0 +v 0 0.25 0.375 +vt 0.8125 1 +vt 0.8125 1 +vt 0.8125 0.96875 +vt 0.8125 0.96875 +vt 0.625 1 +vt 0.8125 1 +vt 0.8125 0.96875 +vt 0.625 0.96875 +vt 1 1 +vt 1 1 +vt 1 0.96875 +vt 1 0.96875 +vt 0.8125 1 +vt 1 1 +vt 1 0.96875 +vt 0.8125 0.96875 +vt 0.8125 1 +vt 0.8125 1 +vt 0.8125 1.1875 +vt 0.8125 1.1875 +vt 0.8125 1.1875 +vt 0.8125 1.1875 +vt 0.8125 1 +vt 0.8125 1 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o body +v 0 0 0.3125 +v 0 0 0.1875 +v 0 -0.0625 0.3125 +v 0 -0.0625 0.1875 +v 0 0 0.1875 +v 0 0 0.3125 +v 0 -0.0625 0.1875 +v 0 -0.0625 0.3125 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 0.9375 +vt 0.75 0.9375 +vt 0.6875 0.96875 +vt 0.75 0.96875 +vt 0.75 0.9375 +vt 0.6875 0.9375 +vt 0.8125 0.96875 +vt 0.8125 0.96875 +vt 0.8125 0.9375 +vt 0.8125 0.9375 +vt 0.75 0.96875 +vt 0.8125 0.96875 +vt 0.8125 0.9375 +vt 0.75 0.9375 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 1.03125 +vt 0.75 1.03125 +vt 0.75 1.03125 +vt 0.75 1.03125 +vt 0.75 0.96875 +vt 0.75 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.062450000000000006 0.25005 -0.125 +v 0.062450000000000006 0.25005 -0.1875 +v 0.062450000000000006 0.06255 -0.125 +v 0.062450000000000006 0.06255 -0.1875 +v -0.06255 0.25005 -0.1875 +v -0.06255 0.25005 -0.125 +v -0.06255 0.06255 -0.1875 +v -0.06255 0.06255 -0.125 +vt 0.03125 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.875 +vt 0.03125 0.875 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.875 +vt 0 0.875 +vt 0.125 0.96875 +vt 0.1875 0.96875 +vt 0.1875 0.875 +vt 0.125 0.875 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.875 +vt 0.09375 0.875 +vt 0.09375 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.09375 1 +vt 0.15625 1 +vt 0.09375 1 +vt 0.09375 0.96875 +vt 0.15625 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o head +v 0.0625 0.25 0.0625 +v 0.0625 0.25 -0.125 +v 0.0625 0 0.0625 +v 0.0625 0 -0.125 +v -0.0625 0.25 -0.125 +v -0.0625 0.25 0.0625 +v -0.0625 0 -0.125 +v -0.0625 0 0.0625 +vt 0.4375 0.90625 +vt 0.5 0.90625 +vt 0.5 0.78125 +vt 0.4375 0.78125 +vt 0.34375 0.90625 +vt 0.4375 0.90625 +vt 0.4375 0.78125 +vt 0.34375 0.78125 +vt 0.59375 0.90625 +vt 0.65625 0.90625 +vt 0.65625 0.78125 +vt 0.59375 0.78125 +vt 0.5 0.90625 +vt 0.59375 0.90625 +vt 0.59375 0.78125 +vt 0.5 0.78125 +vt 0.5 0.90625 +vt 0.4375 0.90625 +vt 0.4375 1 +vt 0.5 1 +vt 0.5625 1 +vt 0.5 1 +vt 0.5 0.90625 +vt 0.5625 0.90625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leftFin +v -0.0625 0.0625 0.125 +v -0.0625 0.0625 0 +v -0.026651472728059622 0.011302997231938061 0.125 +v -0.026651472728059622 0.011302997231938061 0 +v -0.164894005536124 -0.009197054543880756 0 +v -0.164894005536124 -0.009197054543880756 0.125 +v -0.12904547826418356 -0.06039405731194275 0 +v -0.12904547826418356 -0.06039405731194275 0.125 +vt 0.8125 0.8125 +vt 0.875 0.8125 +vt 0.875 0.78125 +vt 0.8125 0.78125 +vt 0.75 0.8125 +vt 0.8125 0.8125 +vt 0.8125 0.78125 +vt 0.75 0.78125 +vt 0.9375 0.8125 +vt 1 0.8125 +vt 1 0.78125 +vt 0.9375 0.78125 +vt 0.875 0.8125 +vt 0.9375 0.8125 +vt 0.9375 0.78125 +vt 0.875 0.78125 +vt 0.875 0.8125 +vt 0.8125 0.8125 +vt 0.8125 0.875 +vt 0.875 0.875 +vt 0.9375 0.875 +vt 0.875 0.875 +vt 0.875 0.8125 +vt 0.9375 0.8125 +vn 0 0 -1 +vn 0.8191520442889918 0.573576436351046 0 +vn 0 0 1 +vn -0.8191520442889918 -0.573576436351046 0 +vn -0.573576436351046 0.8191520442889918 0 +vn 0.573576436351046 -0.8191520442889918 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o rightFin +v 0.164894005536124 -0.009197054543880756 0.125 +v 0.164894005536124 -0.009197054543880756 0 +v 0.12904547826418356 -0.06039405731194275 0.125 +v 0.12904547826418356 -0.06039405731194275 0 +v 0.0625 0.0625 0 +v 0.0625 0.0625 0.125 +v 0.026651472728059566 0.011302997231938061 0 +v 0.026651472728059566 0.011302997231938061 0.125 +vt 0.8125 0.90625 +vt 0.875 0.90625 +vt 0.875 0.875 +vt 0.8125 0.875 +vt 0.75 0.90625 +vt 0.8125 0.90625 +vt 0.8125 0.875 +vt 0.75 0.875 +vt 0.9375 0.90625 +vt 1 0.90625 +vt 1 0.875 +vt 0.9375 0.875 +vt 0.875 0.90625 +vt 0.9375 0.90625 +vt 0.9375 0.875 +vt 0.875 0.875 +vt 0.875 0.90625 +vt 0.8125 0.90625 +vt 0.8125 0.96875 +vt 0.875 0.96875 +vt 0.9375 0.96875 +vt 0.875 0.96875 +vt 0.875 0.90625 +vt 0.9375 0.90625 +vn 0 0 -1 +vn 0.8191520442889918 -0.573576436351046 0 +vn 0 0 1 +vn -0.8191520442889918 0.573576436351046 0 +vn 0.573576436351046 0.8191520442889918 0 +vn -0.573576436351046 -0.8191520442889918 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o tailfin +v 0 0.25 0.875 +v 0 0.25 0.5 +v 0 0 0.875 +v 0 0 0.5 +v 0 0.25 0.5 +v 0 0.25 0.875 +v 0 0 0.5 +v 0 0 0.875 +vt 0.8125 0.78125 +vt 0.8125 0.78125 +vt 0.8125 0.65625 +vt 0.8125 0.65625 +vt 0.625 0.78125 +vt 0.8125 0.78125 +vt 0.8125 0.65625 +vt 0.625 0.65625 +vt 1 0.78125 +vt 1 0.78125 +vt 1 0.65625 +vt 1 0.65625 +vt 0.8125 0.78125 +vt 1 0.78125 +vt 1 0.65625 +vt 0.8125 0.65625 +vt 0.8125 0.78125 +vt 0.8125 0.78125 +vt 0.8125 0.96875 +vt 0.8125 0.96875 +vt 0.8125 0.96875 +vt 0.8125 0.96875 +vt 0.8125 0.78125 +vt 0.8125 0.78125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_92191bde-46b9-ba2f-846b-1e3ee628119f +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/creeper.obj b/renderer/viewer/three/entity/models/creeper.obj new file mode 100644 index 00000000..2e68c50e --- /dev/null +++ b/renderer/viewer/three/entity/models/creeper.obj @@ -0,0 +1,279 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o Body +v 0.25 1.125 0.125 +v 0.25 1.125 -0.125 +v 0.25 0.375 0.125 +v 0.25 0.375 -0.125 +v -0.25 1.125 -0.125 +v -0.25 1.125 0.125 +v -0.25 0.375 -0.125 +v -0.25 0.375 0.125 +vt 0.3125 0.375 +vt 0.4375 0.375 +vt 0.4375 0 +vt 0.3125 0 +vt 0.25 0.375 +vt 0.3125 0.375 +vt 0.3125 0 +vt 0.25 0 +vt 0.5 0.375 +vt 0.625 0.375 +vt 0.625 0 +vt 0.5 0 +vt 0.4375 0.375 +vt 0.5 0.375 +vt 0.5 0 +vt 0.4375 0 +vt 0.4375 0.375 +vt 0.3125 0.375 +vt 0.3125 0.5 +vt 0.4375 0.5 +vt 0.5625 0.5 +vt 0.4375 0.5 +vt 0.4375 0.375 +vt 0.5625 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5d56b934-8e1a-577b-049f-fb19876a8641 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o Head +v 0.25 1.625 0.25 +v 0.25 1.625 -0.25 +v 0.25 1.125 0.25 +v 0.25 1.125 -0.25 +v -0.25 1.625 -0.25 +v -0.25 1.625 0.25 +v -0.25 1.125 -0.25 +v -0.25 1.125 0.25 +vt 0.125 0.75 +vt 0.25 0.75 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0 0.75 +vt 0.125 0.75 +vt 0.125 0.5 +vt 0 0.5 +vt 0.375 0.75 +vt 0.5 0.75 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.25 0.75 +vt 0.375 0.75 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.75 +vt 0.125 0.75 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.75 +vt 0.375 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5d56b934-8e1a-577b-049f-fb19876a8641 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o leg0 +v 0.25 0.375 0.375 +v 0.25 0.375 0.125 +v 0.25 0 0.375 +v 0.25 0 0.125 +v 0 0.375 0.125 +v 0 0.375 0.375 +v 0 0 0.125 +v 0 0 0.375 +vt 0.0625 0.375 +vt 0.125 0.375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0 0.375 +vt 0.0625 0.375 +vt 0.0625 0.1875 +vt 0 0.1875 +vt 0.1875 0.375 +vt 0.25 0.375 +vt 0.25 0.1875 +vt 0.1875 0.1875 +vt 0.125 0.375 +vt 0.1875 0.375 +vt 0.1875 0.1875 +vt 0.125 0.1875 +vt 0.125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.375 +vt 0.1875 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5d56b934-8e1a-577b-049f-fb19876a8641 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o leg1 +v 0 0.375 0.375 +v 0 0.375 0.125 +v 0 0 0.375 +v 0 0 0.125 +v -0.25 0.375 0.125 +v -0.25 0.375 0.375 +v -0.25 0 0.125 +v -0.25 0 0.375 +vt 0.0625 0.375 +vt 0.125 0.375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0 0.375 +vt 0.0625 0.375 +vt 0.0625 0.1875 +vt 0 0.1875 +vt 0.1875 0.375 +vt 0.25 0.375 +vt 0.25 0.1875 +vt 0.1875 0.1875 +vt 0.125 0.375 +vt 0.1875 0.375 +vt 0.1875 0.1875 +vt 0.125 0.1875 +vt 0.125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.375 +vt 0.1875 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5d56b934-8e1a-577b-049f-fb19876a8641 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o leg2 +v 0.25 0.375 -0.125 +v 0.25 0.375 -0.375 +v 0.25 0 -0.125 +v 0.25 0 -0.375 +v 0 0.375 -0.375 +v 0 0.375 -0.125 +v 0 0 -0.375 +v 0 0 -0.125 +vt 0.0625 0.375 +vt 0.125 0.375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0 0.375 +vt 0.0625 0.375 +vt 0.0625 0.1875 +vt 0 0.1875 +vt 0.1875 0.375 +vt 0.25 0.375 +vt 0.25 0.1875 +vt 0.1875 0.1875 +vt 0.125 0.375 +vt 0.1875 0.375 +vt 0.1875 0.1875 +vt 0.125 0.1875 +vt 0.125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.375 +vt 0.1875 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5d56b934-8e1a-577b-049f-fb19876a8641 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leg3 +v 0 0.375 -0.125 +v 0 0.375 -0.375 +v 0 0 -0.125 +v 0 0 -0.375 +v -0.25 0.375 -0.375 +v -0.25 0.375 -0.125 +v -0.25 0 -0.375 +v -0.25 0 -0.125 +vt 0.0625 0.375 +vt 0.125 0.375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0 0.375 +vt 0.0625 0.375 +vt 0.0625 0.1875 +vt 0 0.1875 +vt 0.1875 0.375 +vt 0.25 0.375 +vt 0.25 0.1875 +vt 0.1875 0.1875 +vt 0.125 0.375 +vt 0.1875 0.375 +vt 0.1875 0.1875 +vt 0.125 0.1875 +vt 0.125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.375 +vt 0.1875 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5d56b934-8e1a-577b-049f-fb19876a8641 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/dolphin.obj b/renderer/viewer/three/entity/models/dolphin.obj new file mode 100644 index 00000000..478ce015 --- /dev/null +++ b/renderer/viewer/three/entity/models/dolphin.obj @@ -0,0 +1,371 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.25 0.4375 0.625 +v 0.25 0.4375 -0.1875 +v 0.25 0 0.625 +v 0.25 0 -0.1875 +v -0.25 0.4375 -0.1875 +v -0.25 0.4375 0.625 +v -0.25 0 -0.1875 +v -0.25 0 0.625 +vt 0.546875 0.796875 +vt 0.671875 0.796875 +vt 0.671875 0.6875 +vt 0.546875 0.6875 +vt 0.34375 0.796875 +vt 0.546875 0.796875 +vt 0.546875 0.6875 +vt 0.34375 0.6875 +vt 0.875 0.796875 +vt 1 0.796875 +vt 1 0.6875 +vt 0.875 0.6875 +vt 0.671875 0.796875 +vt 0.875 0.796875 +vt 0.875 0.6875 +vt 0.671875 0.6875 +vt 0.671875 0.796875 +vt 0.546875 0.796875 +vt 0.546875 1 +vt 0.671875 1 +vt 0.796875 1 +vt 0.671875 1 +vt 0.671875 0.796875 +vt 0.796875 0.796875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o head +v 0.25 0.4375 -0.1875 +v 0.25 0.4375 -0.5625 +v 0.25 0 -0.1875 +v 0.25 0 -0.5625 +v -0.25 0.4375 -0.5625 +v -0.25 0.4375 -0.1875 +v -0.25 0 -0.5625 +v -0.25 0 -0.1875 +vt 0.09375 0.90625 +vt 0.21875 0.90625 +vt 0.21875 0.796875 +vt 0.09375 0.796875 +vt 0 0.90625 +vt 0.09375 0.90625 +vt 0.09375 0.796875 +vt 0 0.796875 +vt 0.3125 0.90625 +vt 0.4375 0.90625 +vt 0.4375 0.796875 +vt 0.3125 0.796875 +vt 0.21875 0.90625 +vt 0.3125 0.90625 +vt 0.3125 0.796875 +vt 0.21875 0.796875 +vt 0.21875 0.90625 +vt 0.09375 0.90625 +vt 0.09375 1 +vt 0.21875 1 +vt 0.34375 1 +vt 0.21875 1 +vt 0.21875 0.90625 +vt 0.34375 0.90625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o nose +v 0.0625 0.125 -0.5625 +v 0.0625 0.125 -0.8125 +v 0.0625 0 -0.5625 +v 0.0625 0 -0.8125 +v -0.0625 0.125 -0.8125 +v -0.0625 0.125 -0.5625 +v -0.0625 0 -0.8125 +v -0.0625 0 -0.5625 +vt 0.0625 0.734375 +vt 0.09375 0.734375 +vt 0.09375 0.703125 +vt 0.0625 0.703125 +vt 0 0.734375 +vt 0.0625 0.734375 +vt 0.0625 0.703125 +vt 0 0.703125 +vt 0.15625 0.734375 +vt 0.1875 0.734375 +vt 0.1875 0.703125 +vt 0.15625 0.703125 +vt 0.09375 0.734375 +vt 0.15625 0.734375 +vt 0.15625 0.703125 +vt 0.09375 0.703125 +vt 0.09375 0.734375 +vt 0.0625 0.734375 +vt 0.0625 0.796875 +vt 0.09375 0.796875 +vt 0.125 0.796875 +vt 0.09375 0.796875 +vt 0.09375 0.734375 +vt 0.125 0.734375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o tail +v 0.125 0.25743308235954887 1.3237397711116625 +v 0.125 0.31735265549856384 0.6388559161735876 +v 0.125 -0.0538777607941216 1.2965036015030194 +v 0.125 0.006041812344893427 0.6116197465649442 +v -0.125 0.31735265549856384 0.6388559161735876 +v -0.125 0.25743308235954887 1.3237397711116625 +v -0.125 0.006041812344893427 0.6116197465649442 +v -0.125 -0.0538777607941216 1.2965036015030194 +vt 0.171875 0.53125 +vt 0.234375 0.53125 +vt 0.234375 0.453125 +vt 0.171875 0.453125 +vt 0 0.53125 +vt 0.171875 0.53125 +vt 0.171875 0.453125 +vt 0 0.453125 +vt 0.40625 0.53125 +vt 0.46875 0.53125 +vt 0.46875 0.453125 +vt 0.40625 0.453125 +vt 0.234375 0.53125 +vt 0.40625 0.53125 +vt 0.40625 0.453125 +vt 0.234375 0.453125 +vt 0.234375 0.53125 +vt 0.171875 0.53125 +vt 0.171875 0.703125 +vt 0.234375 0.703125 +vt 0.296875 0.703125 +vt 0.234375 0.703125 +vt 0.234375 0.53125 +vt 0.296875 0.53125 +vn 0 0.08715574274765818 -0.9961946980917455 +vn 1 0 0 +vn 0 -0.08715574274765818 0.9961946980917455 +vn -1 0 0 +vn 0 0.9961946980917455 0.08715574274765818 +vn 0 -0.9961946980917455 -0.08715574274765818 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o tail_fin +v 0.3125 0.06737675474652305 1.559379883370239 +v 0.3125 0.15173340012547243 1.1939911090757758 +v 0.3125 0.006478625697445839 1.5453204424737472 +v 0.3125 0.09083527107639522 1.1799316681792842 +v -0.3125 0.15173340012547243 1.1939911090757758 +v -0.3125 0.06737675474652305 1.559379883370239 +v -0.3125 0.09083527107639522 1.1799316681792842 +v -0.3125 0.006478625697445839 1.5453204424737472 +vt 0.390625 0.59375 +vt 0.546875 0.59375 +vt 0.546875 0.578125 +vt 0.390625 0.578125 +vt 0.296875 0.59375 +vt 0.390625 0.59375 +vt 0.390625 0.578125 +vt 0.296875 0.578125 +vt 0.640625 0.59375 +vt 0.796875 0.59375 +vt 0.796875 0.578125 +vt 0.640625 0.578125 +vt 0.546875 0.59375 +vt 0.640625 0.59375 +vt 0.640625 0.578125 +vt 0.546875 0.578125 +vt 0.546875 0.59375 +vt 0.390625 0.59375 +vt 0.390625 0.6875 +vt 0.546875 0.6875 +vt 0.703125 0.6875 +vt 0.546875 0.6875 +vt 0.546875 0.59375 +vt 0.703125 0.59375 +vn 0 0.224951054343865 -0.9743700647852354 +vn 1 0 0 +vn 0 -0.224951054343865 0.9743700647852354 +vn -1 0 0 +vn 0 0.9743700647852354 0.224951054343865 +vn 0 -0.9743700647852354 -0.224951054343865 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o back_fin +v 0.03125 0.7045071448143734 0.22503005919760444 +v 0.03125 0.4338742061317362 0.06878005919760444 +v 0.03125 0.5795071448143734 0.44153641014371414 +v 0.03125 0.3088742061317362 0.28528641014371414 +v -0.03125 0.4338742061317362 0.06878005919760444 +v -0.03125 0.7045071448143734 0.22503005919760444 +v -0.03125 0.3088742061317362 0.28528641014371414 +v -0.03125 0.5795071448143734 0.44153641014371414 +vt 0.875 0.921875 +vt 0.890625 0.921875 +vt 0.890625 0.859375 +vt 0.875 0.859375 +vt 0.796875 0.921875 +vt 0.875 0.921875 +vt 0.875 0.859375 +vt 0.796875 0.859375 +vt 0.96875 0.921875 +vt 0.984375 0.921875 +vt 0.984375 0.859375 +vt 0.96875 0.859375 +vt 0.890625 0.921875 +vt 0.96875 0.921875 +vt 0.96875 0.859375 +vt 0.890625 0.859375 +vt 0.890625 0.921875 +vt 0.875 0.921875 +vt 0.875 1 +vt 0.890625 1 +vt 0.90625 1 +vt 0.890625 1 +vt 0.890625 0.921875 +vt 0.90625 0.921875 +vn 0 -0.8660254037844386 -0.5000000000000001 +vn 1 0 0 +vn 0 0.8660254037844386 0.5000000000000001 +vn -1 0 0 +vn 0 0.5000000000000001 -0.8660254037844386 +vn 0 -0.5000000000000001 0.8660254037844386 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o left_fin +v -0.5939081233075358 0.0007485675108518386 0.11737888892342419 +v -0.25118856264048317 0.1055284523428025 -0.13356080198015846 +v -0.456779654809827 0.04267294763203877 0.32216689999567216 +v -0.11406009414277446 0.14745283246398944 0.07122720909208935 +v -0.2329153310953121 0.04575940509511278 -0.13356080198015846 +v -0.5756348917623646 -0.05902047973683788 0.11737888892342419 +v -0.09578686259760338 0.08768378521629971 0.07122720909208935 +v -0.438506423264656 -0.01709609961565095 0.32216689999567216 +vt 0.859375 0.578125 +vt 0.875 0.578125 +vt 0.875 0.515625 +vt 0.859375 0.515625 +vt 0.75 0.578125 +vt 0.859375 0.578125 +vt 0.859375 0.515625 +vt 0.75 0.515625 +vt 0.984375 0.578125 +vt 1 0.578125 +vt 1 0.515625 +vt 0.984375 0.515625 +vt 0.875 0.578125 +vt 0.984375 0.578125 +vt 0.984375 0.515625 +vt 0.875 0.515625 +vt 0.875 0.578125 +vt 0.859375 0.578125 +vt 0.859375 0.6875 +vt 0.875 0.6875 +vt 0.890625 0.6875 +vt 0.875 0.6875 +vt 0.875 0.578125 +vt 0.890625 0.578125 +vn 0.7833589958104059 0.23949687961588728 -0.5735764363510463 +vn -0.2923717047227367 0.9563047559630355 -8.326672684688674e-17 +vn -0.7833589958104059 -0.23949687961588728 0.5735764363510463 +vn 0.2923717047227367 -0.9563047559630355 8.326672684688674e-17 +vn -0.5485138739908348 -0.16769752048474773 -0.8191520442889918 +vn 0.5485138739908348 0.16769752048474773 0.8191520442889918 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o left_fin +v 0.5756348917623646 -0.05902047973683788 0.11737888892342419 +v 0.23291533109531204 0.04575940509511278 -0.13356080198015846 +v 0.43850642326465605 -0.01709609961565095 0.32216689999567216 +v 0.09578686259760338 0.08768378521629971 0.07122720909208935 +v 0.25118856264048317 0.1055284523428025 -0.13356080198015846 +v 0.5939081233075358 0.0007485675108518386 0.11737888892342419 +v 0.1140600941427744 0.14745283246398944 0.07122720909208935 +v 0.4567796548098271 0.04267294763203877 0.32216689999567216 +vt 0.875 0.578125 +vt 0.859375 0.578125 +vt 0.859375 0.515625 +vt 0.875 0.515625 +vt 0.984375 0.578125 +vt 0.875 0.578125 +vt 0.875 0.515625 +vt 0.984375 0.515625 +vt 1 0.578125 +vt 0.984375 0.578125 +vt 0.984375 0.515625 +vt 1 0.515625 +vt 0.859375 0.578125 +vt 0.75 0.578125 +vt 0.75 0.515625 +vt 0.859375 0.515625 +vt 0.859375 0.578125 +vt 0.875 0.578125 +vt 0.875 0.6875 +vt 0.859375 0.6875 +vt 0.875 0.6875 +vt 0.890625 0.6875 +vt 0.890625 0.578125 +vt 0.875 0.578125 +vn -0.7833589958104059 0.23949687961588728 -0.5735764363510463 +vn -0.2923717047227367 -0.9563047559630355 8.326672684688674e-17 +vn 0.7833589958104059 -0.23949687961588728 0.5735764363510463 +vn 0.2923717047227367 0.9563047559630355 -8.326672684688674e-17 +vn 0.5485138739908348 -0.16769752048474773 -0.8191520442889918 +vn -0.5485138739908348 0.16769752048474773 0.8191520442889918 +usemtl m_84be203d-dd47-5073-42d4-8589a81aedb5 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/ender_dragon.obj b/renderer/viewer/three/entity/models/ender_dragon.obj new file mode 100644 index 00000000..84c909a9 --- /dev/null +++ b/renderer/viewer/three/entity/models/ender_dragon.obj @@ -0,0 +1,2993 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o neck +v 0.3125 0.7488108431536706 -0.47276383039135683 +v 0.3125 0.803283182370957 -1.0953855166986979 +v 0.3125 0.1261891568463296 -0.5272361696086432 +v 0.3125 0.18066149606361592 -1.1498578559159842 +v -0.3125 0.803283182370957 -1.0953855166986979 +v -0.3125 0.7488108431536706 -0.47276383039135683 +v -0.3125 0.18066149606361592 -1.1498578559159842 +v -0.3125 0.1261891568463296 -0.5272361696086432 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 0.08715574274765818 -0.9961946980917455 +vn 1 0 0 +vn 0 -0.08715574274765818 0.9961946980917455 +vn -1 0 0 +vn 0 0.9961946980917455 0.08715574274765818 +vn 0 -0.9961946980917455 -0.08715574274765818 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o neck +v 0.0625 1.0087539855200642 -0.5754992319659105 +v 0.0625 1.041437389050436 -0.9490722437503151 +v 0.0625 0.7597053109971279 -0.597288167652825 +v 0.0625 0.7923887145274997 -0.9708611794372296 +v -0.0625 1.041437389050436 -0.9490722437503151 +v -0.0625 1.0087539855200642 -0.5754992319659105 +v -0.0625 0.7923887145274997 -0.9708611794372296 +v -0.0625 0.7597053109971279 -0.597288167652825 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 0.08715574274765818 -0.9961946980917455 +vn 1 0 0 +vn 0 -0.08715574274765818 0.9961946980917455 +vn -1 0 0 +vn 0 0.9961946980917455 0.08715574274765818 +vn 0 -0.9961946980917455 -0.08715574274765818 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o neck +v 0.3125 0.8044723392172863 -1.1226216863073408 +v 0.3125 0.8044723392172863 -1.7476216863073408 +v 0.3125 0.17947233921728634 -1.1226216863073408 +v 0.3125 0.17947233921728634 -1.7476216863073408 +v -0.3125 0.8044723392172863 -1.7476216863073408 +v -0.3125 0.8044723392172863 -1.1226216863073408 +v -0.3125 0.17947233921728634 -1.7476216863073408 +v -0.3125 0.17947233921728634 -1.1226216863073408 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o neck +v 0.0625 1.0544723392172863 -1.2476216863073408 +v 0.0625 1.0544723392172863 -1.6226216863073408 +v 0.0625 0.8044723392172863 -1.2476216863073408 +v 0.0625 0.8044723392172863 -1.6226216863073408 +v -0.0625 1.0544723392172863 -1.6226216863073408 +v -0.0625 1.0544723392172863 -1.2476216863073408 +v -0.0625 0.8044723392172863 -1.6226216863073408 +v -0.0625 0.8044723392172863 -1.2476216863073408 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o neck +v 0.3125 0.803283182370957 -1.774857855915984 +v 0.3125 0.7488108431536706 -2.3974795422233246 +v 0.3125 0.18066149606361592 -1.7203855166986977 +v 0.3125 0.12618915684632948 -2.3430072030060387 +v -0.3125 0.7488108431536706 -2.3974795422233246 +v -0.3125 0.803283182370957 -1.774857855915984 +v -0.3125 0.12618915684632948 -2.3430072030060387 +v -0.3125 0.18066149606361592 -1.7203855166986977 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.08715574274765818 -0.9961946980917455 +vn 1 0 0 +vn 0 0.08715574274765818 0.9961946980917455 +vn -1 0 0 +vn 0 0.9961946980917455 -0.08715574274765818 +vn 0 -0.9961946980917455 0.08715574274765818 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o neck +v 0.0625 1.041437389050436 -1.9211711288643667 +v 0.0625 1.0087539855200642 -2.2947441406487714 +v 0.0625 0.7923887145274997 -1.8993821931774522 +v 0.0625 0.7597053109971279 -2.272955204961857 +v -0.0625 1.0087539855200642 -2.2947441406487714 +v -0.0625 1.041437389050436 -1.9211711288643667 +v -0.0625 0.7597053109971279 -2.272955204961857 +v -0.0625 0.7923887145274997 -1.8993821931774522 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.08715574274765818 -0.9961946980917455 +vn 1 0 0 +vn 0 0.08715574274765818 0.9961946980917455 +vn -1 0 0 +vn 0 0.9961946980917455 -0.08715574274765818 +vn 0 -0.9961946980917455 0.08715574274765818 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o neck +v 0.3125 0.7452524228163151 -2.424508428135597 +v 0.3125 0.6367223117744836 -3.0400132737682273 +v 0.3125 0.1297475771836849 -2.315978317093766 +v 0.3125 0.02121746614185338 -2.931483162726396 +v -0.3125 0.6367223117744836 -3.0400132737682273 +v -0.3125 0.7452524228163151 -2.424508428135597 +v -0.3125 0.02121746614185338 -2.931483162726396 +v -0.3125 0.1297475771836849 -2.315978317093766 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.17364817766693036 -0.9848077530122081 +vn 1 0 0 +vn 0 0.17364817766693036 0.9848077530122081 +vn -1 0 0 +vn 0 0.9848077530122081 -0.17364817766693036 +vn 0 -0.9848077530122081 0.17364817766693036 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o neck +v 0.0625 0.9697483388610009 -2.591021441678856 +v 0.0625 0.9046302722359019 -2.960324349058434 +v 0.0625 0.7235464006079488 -2.5476093972621237 +v 0.0625 0.6584283339828498 -2.9169123046417016 +v -0.0625 0.9046302722359019 -2.960324349058434 +v -0.0625 0.9697483388610009 -2.591021441678856 +v -0.0625 0.6584283339828498 -2.9169123046417016 +v -0.0625 0.7235464006079488 -2.5476093972621237 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.17364817766693036 -0.9848077530122081 +vn 1 0 0 +vn 0 0.17364817766693036 0.9848077530122081 +vn -1 0 0 +vn 0 0.9848077530122081 -0.17364817766693036 +vn 0 -0.9848077530122081 0.17364817766693036 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o neck +v 0.3125 0.6308217096735025 -3.0666291698418497 +v 0.3125 0.469059806484427 -3.670332811272517 +v 0.3125 0.027118068242834803 -2.904867266652774 +v 0.3125 -0.13464383494624066 -3.5085709080834415 +v -0.3125 0.469059806484427 -3.670332811272517 +v -0.3125 0.6308217096735025 -3.0666291698418497 +v -0.3125 -0.13464383494624066 -3.5085709080834415 +v -0.3125 0.027118068242834803 -2.904867266652774 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.25881904510252074 -0.9659258262890683 +vn 1 0 0 +vn 0 0.25881904510252074 0.9659258262890683 +vn -1 0 0 +vn 0 0.9659258262890683 -0.25881904510252074 +vn 0 -0.9659258262890683 0.25881904510252074 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o neck +v 0.0625 0.8399507856079544 -3.252074659403613 +v 0.0625 0.7428936436945093 -3.6142968442620136 +v 0.0625 0.5984693290356873 -3.187369898127983 +v 0.0625 0.5014121871222421 -3.5495920829863836 +v -0.0625 0.7428936436945093 -3.6142968442620136 +v -0.0625 0.8399507856079544 -3.252074659403613 +v -0.0625 0.5014121871222421 -3.5495920829863836 +v -0.0625 0.5984693290356873 -3.187369898127983 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.25881904510252074 -0.9659258262890683 +vn 1 0 0 +vn 0 0.25881904510252074 0.9659258262890683 +vn -1 0 0 +vn 0 0.9659258262890683 -0.25881904510252074 +vn 0 -0.9659258262890683 0.25881904510252074 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o head +v 0.375 -0.07332885084174778 -4.433059161823504 +v 0.375 -0.41534899416741644 -5.372751782609413 +v 0.375 -0.3669827948373441 -4.326177867034232 +v 0.375 -0.7090029381630127 -5.265870487820141 +v -0.375 -0.41534899416741644 -5.372751782609413 +v -0.375 -0.07332885084174778 -4.433059161823504 +v -0.375 -0.7090029381630127 -5.265870487820141 +v -0.375 -0.3669827948373441 -4.326177867034232 +vt 0.75 0.765625 +vt 0.796875 0.765625 +vt 0.796875 0.74609375 +vt 0.75 0.74609375 +vt 0.6875 0.765625 +vt 0.75 0.765625 +vt 0.75 0.74609375 +vt 0.6875 0.74609375 +vt 0.859375 0.765625 +vt 0.90625 0.765625 +vt 0.90625 0.74609375 +vt 0.859375 0.74609375 +vt 0.796875 0.765625 +vt 0.859375 0.765625 +vt 0.859375 0.74609375 +vt 0.796875 0.74609375 +vt 0.796875 0.765625 +vt 0.75 0.765625 +vt 0.75 0.828125 +vt 0.796875 0.828125 +vt 0.84375 0.828125 +vt 0.796875 0.828125 +vt 0.796875 0.765625 +vt 0.84375 0.765625 +vn 0 -0.34202014332566877 -0.9396926207859084 +vn 1 0 0 +vn 0 0.34202014332566877 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 -0.34202014332566877 +vn 0 -0.9396926207859084 0.34202014332566877 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o head +v 0.5 0.6370542961620473 -3.760461931340814 +v 0.5 0.2950341528363787 -4.7001545521267225 +v 0.5 -0.3026383246238611 -3.418441788015145 +v 0.5 -0.6446584679495297 -4.358134408801053 +v -0.5 0.2950341528363787 -4.7001545521267225 +v -0.5 0.6370542961620473 -3.760461931340814 +v -0.5 -0.6446584679495297 -4.358134408801053 +v -0.5 -0.3026383246238611 -3.418441788015145 +vt 0.5 0.8203125 +vt 0.5625 0.8203125 +vt 0.5625 0.7578125 +vt 0.5 0.7578125 +vt 0.4375 0.8203125 +vt 0.5 0.8203125 +vt 0.5 0.7578125 +vt 0.4375 0.7578125 +vt 0.625 0.8203125 +vt 0.6875 0.8203125 +vt 0.6875 0.7578125 +vt 0.625 0.7578125 +vt 0.5625 0.8203125 +vt 0.625 0.8203125 +vt 0.625 0.7578125 +vt 0.5625 0.7578125 +vt 0.5625 0.8203125 +vt 0.5 0.8203125 +vt 0.5 0.8828125 +vt 0.5625 0.8828125 +vt 0.625 0.8828125 +vt 0.5625 0.8828125 +vt 0.5625 0.8203125 +vt 0.625 0.8203125 +vn 0 -0.34202014332566877 -0.9396926207859084 +vn 1 0 0 +vn 0 0.34202014332566877 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 -0.34202014332566877 +vn 0 -0.9396926207859084 0.34202014332566877 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o head +v 0.3125 0.7864724155271074 -4.080890122368709 +v 0.3125 0.6582148617799817 -4.433274855163424 +v 0.3125 0.5515492603306302 -3.9953850865372913 +v 0.3125 0.42329170658350446 -4.347769819332006 +v 0.1875 0.6582148617799817 -4.433274855163424 +v 0.1875 0.7864724155271074 -4.080890122368709 +v 0.1875 0.42329170658350446 -4.347769819332006 +v 0.1875 0.5515492603306302 -3.9953850865372913 +vt 0.03125 0.9765625 +vt 0.0234375 0.9765625 +vt 0.0234375 0.9609375 +vt 0.03125 0.9609375 +vt 0.0546875 0.9765625 +vt 0.03125 0.9765625 +vt 0.03125 0.9609375 +vt 0.0546875 0.9609375 +vt 0.0625 0.9765625 +vt 0.0546875 0.9765625 +vt 0.0546875 0.9609375 +vt 0.0625 0.9609375 +vt 0.0234375 0.9765625 +vt 0 0.9765625 +vt 0 0.9609375 +vt 0.0234375 0.9609375 +vt 0.0234375 0.9765625 +vt 0.03125 0.9765625 +vt 0.03125 1 +vt 0.0234375 1 +vt 0.03125 1 +vt 0.0390625 1 +vt 0.0390625 0.9765625 +vt 0.03125 0.9765625 +vn 0 -0.34202014332566877 -0.9396926207859084 +vn 1 0 0 +vn 0 0.34202014332566877 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 -0.34202014332566877 +vn 0 -0.9396926207859084 0.34202014332566877 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o head +v 0.3125 -0.16962986282205206 -5.063119567730405 +v 0.3125 -0.2551348986534694 -5.298042722926883 +v 0.3125 -0.28709144042029067 -5.020367049814697 +v 0.3125 -0.372596476251708 -5.255290205011175 +v 0.1875 -0.2551348986534694 -5.298042722926883 +v 0.1875 -0.16962986282205206 -5.063119567730405 +v 0.1875 -0.372596476251708 -5.255290205011175 +v 0.1875 -0.28709144042029067 -5.020367049814697 +vt 0.4609375 0.984375 +vt 0.453125 0.984375 +vt 0.453125 0.9765625 +vt 0.4609375 0.9765625 +vt 0.4765625 0.984375 +vt 0.4609375 0.984375 +vt 0.4609375 0.9765625 +vt 0.4765625 0.9765625 +vt 0.484375 0.984375 +vt 0.4765625 0.984375 +vt 0.4765625 0.9765625 +vt 0.484375 0.9765625 +vt 0.453125 0.984375 +vt 0.4375 0.984375 +vt 0.4375 0.9765625 +vt 0.453125 0.9765625 +vt 0.453125 0.984375 +vt 0.4609375 0.984375 +vt 0.4609375 1 +vt 0.453125 1 +vt 0.4609375 1 +vt 0.46875 1 +vt 0.46875 0.984375 +vt 0.4609375 0.984375 +vn 0 -0.34202014332566877 -0.9396926207859084 +vn 1 0 0 +vn 0 0.34202014332566877 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 -0.34202014332566877 +vn 0 -0.9396926207859084 0.34202014332566877 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 +o head +v -0.1875 0.7864724155271074 -4.080890122368709 +v -0.1875 0.6582148617799817 -4.433274855163424 +v -0.1875 0.5515492603306302 -3.9953850865372913 +v -0.1875 0.42329170658350446 -4.347769819332006 +v -0.3125 0.6582148617799817 -4.433274855163424 +v -0.3125 0.7864724155271074 -4.080890122368709 +v -0.3125 0.42329170658350446 -4.347769819332006 +v -0.3125 0.5515492603306302 -3.9953850865372913 +vt 0.0234375 0.9765625 +vt 0.03125 0.9765625 +vt 0.03125 0.9609375 +vt 0.0234375 0.9609375 +vt 0 0.9765625 +vt 0.0234375 0.9765625 +vt 0.0234375 0.9609375 +vt 0 0.9609375 +vt 0.0546875 0.9765625 +vt 0.0625 0.9765625 +vt 0.0625 0.9609375 +vt 0.0546875 0.9609375 +vt 0.03125 0.9765625 +vt 0.0546875 0.9765625 +vt 0.0546875 0.9609375 +vt 0.03125 0.9609375 +vt 0.03125 0.9765625 +vt 0.0234375 0.9765625 +vt 0.0234375 1 +vt 0.03125 1 +vt 0.0390625 1 +vt 0.03125 1 +vt 0.03125 0.9765625 +vt 0.0390625 0.9765625 +vn 0 -0.34202014332566877 -0.9396926207859084 +vn 1 0 0 +vn 0 0.34202014332566877 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 -0.34202014332566877 +vn 0 -0.9396926207859084 0.34202014332566877 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 116/340/85 119/339/85 117/338/85 114/337/85 +f 115/344/86 116/343/86 114/342/86 113/341/86 +f 120/348/87 115/347/87 113/346/87 118/345/87 +f 119/352/88 120/351/88 118/350/88 117/349/88 +f 118/356/89 113/355/89 114/354/89 117/353/89 +f 119/360/90 116/359/90 115/358/90 120/357/90 +o head +v -0.1875 -0.16962986282205206 -5.063119567730405 +v -0.1875 -0.2551348986534694 -5.298042722926883 +v -0.1875 -0.28709144042029067 -5.020367049814697 +v -0.1875 -0.372596476251708 -5.255290205011175 +v -0.3125 -0.2551348986534694 -5.298042722926883 +v -0.3125 -0.16962986282205206 -5.063119567730405 +v -0.3125 -0.372596476251708 -5.255290205011175 +v -0.3125 -0.28709144042029067 -5.020367049814697 +vt 0.453125 0.984375 +vt 0.4609375 0.984375 +vt 0.4609375 0.9765625 +vt 0.453125 0.9765625 +vt 0.4375 0.984375 +vt 0.453125 0.984375 +vt 0.453125 0.9765625 +vt 0.4375 0.9765625 +vt 0.4765625 0.984375 +vt 0.484375 0.984375 +vt 0.484375 0.9765625 +vt 0.4765625 0.9765625 +vt 0.4609375 0.984375 +vt 0.4765625 0.984375 +vt 0.4765625 0.9765625 +vt 0.4609375 0.9765625 +vt 0.4609375 0.984375 +vt 0.453125 0.984375 +vt 0.453125 1 +vt 0.4609375 1 +vt 0.46875 1 +vt 0.4609375 1 +vt 0.4609375 0.984375 +vt 0.46875 0.984375 +vn 0 -0.34202014332566877 -0.9396926207859084 +vn 1 0 0 +vn 0 0.34202014332566877 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 -0.34202014332566877 +vn 0 -0.9396926207859084 0.34202014332566877 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 124/364/91 127/363/91 125/362/91 122/361/91 +f 123/368/92 124/367/92 122/366/92 121/365/92 +f 128/372/93 123/371/93 121/370/93 126/369/93 +f 127/376/94 128/375/94 126/374/94 125/373/94 +f 126/380/95 121/379/95 122/378/95 125/377/95 +f 127/384/96 124/383/96 123/382/96 128/381/96 +o jaw +v 0.375 -0.3814550631514302 -4.318644081003175 +v 0.375 -0.9550314995024762 -5.137796125292168 +v 0.375 -0.5862430742236779 -4.175249971915413 +v 0.375 -1.159819510574724 -4.994402016204406 +v -0.375 -0.9550314995024762 -5.137796125292168 +v -0.375 -0.3814550631514302 -4.318644081003175 +v -0.375 -1.159819510574724 -4.994402016204406 +v -0.375 -0.5862430742236779 -4.175249971915413 +vt 0.75 0.68359375 +vt 0.796875 0.68359375 +vt 0.796875 0.66796875 +vt 0.75 0.66796875 +vt 0.6875 0.68359375 +vt 0.75 0.68359375 +vt 0.75 0.66796875 +vt 0.6875 0.66796875 +vt 0.859375 0.68359375 +vt 0.90625 0.68359375 +vt 0.90625 0.66796875 +vt 0.859375 0.66796875 +vt 0.796875 0.68359375 +vt 0.859375 0.68359375 +vt 0.859375 0.66796875 +vt 0.796875 0.66796875 +vt 0.796875 0.68359375 +vt 0.75 0.68359375 +vt 0.75 0.74609375 +vt 0.796875 0.74609375 +vt 0.84375 0.74609375 +vt 0.796875 0.74609375 +vt 0.796875 0.68359375 +vt 0.84375 0.68359375 +vn 0 -0.5735764363510462 -0.8191520442889919 +vn 1 0 0 +vn 0 0.5735764363510462 0.8191520442889919 +vn -1 0 0 +vn 0 0.8191520442889919 -0.5735764363510462 +vn 0 -0.8191520442889919 0.5735764363510462 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 132/388/97 135/387/97 133/386/97 130/385/97 +f 131/392/98 132/391/98 130/390/98 129/389/98 +f 136/396/99 131/395/99 129/394/99 134/393/99 +f 135/400/100 136/399/100 134/398/100 133/397/100 +f 134/404/101 129/403/101 130/402/101 133/401/101 +f 135/408/102 132/407/102 131/406/102 136/405/102 +o body +v 0.75 1.25 3.5 +v 0.75 1.25 -0.5 +v 0.75 -0.25 3.5 +v 0.75 -0.25 -0.5 +v -0.75 1.25 -0.5 +v -0.75 1.25 3.5 +v -0.75 -0.25 -0.5 +v -0.75 -0.25 3.5 +vt 0.25 0.75 +vt 0.34375 0.75 +vt 0.34375 0.65625 +vt 0.25 0.65625 +vt 0 0.75 +vt 0.25 0.75 +vt 0.25 0.65625 +vt 0 0.65625 +vt 0.59375 0.75 +vt 0.6875 0.75 +vt 0.6875 0.65625 +vt 0.59375 0.65625 +vt 0.34375 0.75 +vt 0.59375 0.75 +vt 0.59375 0.65625 +vt 0.34375 0.65625 +vt 0.34375 0.75 +vt 0.25 0.75 +vt 0.25 1 +vt 0.34375 1 +vt 0.4375 1 +vt 0.34375 1 +vt 0.34375 0.75 +vt 0.4375 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 140/412/103 143/411/103 141/410/103 138/409/103 +f 139/416/104 140/415/104 138/414/104 137/413/104 +f 144/420/105 139/419/105 137/418/105 142/417/105 +f 143/424/106 144/423/106 142/422/106 141/421/106 +f 142/428/107 137/427/107 138/426/107 141/425/107 +f 143/432/108 140/431/108 139/430/108 144/429/108 +o body +v 0.0625 1.625 0.625 +v 0.0625 1.625 -0.125 +v 0.0625 1.25 0.625 +v 0.0625 1.25 -0.125 +v -0.0625 1.625 -0.125 +v -0.0625 1.625 0.625 +v -0.0625 1.25 -0.125 +v -0.0625 1.25 0.625 +vt 0.90625 0.74609375 +vt 0.9140625 0.74609375 +vt 0.9140625 0.72265625 +vt 0.90625 0.72265625 +vt 0.859375 0.74609375 +vt 0.90625 0.74609375 +vt 0.90625 0.72265625 +vt 0.859375 0.72265625 +vt 0.9609375 0.74609375 +vt 0.96875 0.74609375 +vt 0.96875 0.72265625 +vt 0.9609375 0.72265625 +vt 0.9140625 0.74609375 +vt 0.9609375 0.74609375 +vt 0.9609375 0.72265625 +vt 0.9140625 0.72265625 +vt 0.9140625 0.74609375 +vt 0.90625 0.74609375 +vt 0.90625 0.79296875 +vt 0.9140625 0.79296875 +vt 0.921875 0.79296875 +vt 0.9140625 0.79296875 +vt 0.9140625 0.74609375 +vt 0.921875 0.74609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 148/436/109 151/435/109 149/434/109 146/433/109 +f 147/440/110 148/439/110 146/438/110 145/437/110 +f 152/444/111 147/443/111 145/442/111 150/441/111 +f 151/448/112 152/447/112 150/446/112 149/445/112 +f 150/452/113 145/451/113 146/450/113 149/449/113 +f 151/456/114 148/455/114 147/454/114 152/453/114 +o body +v 0.0625 1.625 1.875 +v 0.0625 1.625 1.125 +v 0.0625 1.25 1.875 +v 0.0625 1.25 1.125 +v -0.0625 1.625 1.125 +v -0.0625 1.625 1.875 +v -0.0625 1.25 1.125 +v -0.0625 1.25 1.875 +vt 0.90625 0.74609375 +vt 0.9140625 0.74609375 +vt 0.9140625 0.72265625 +vt 0.90625 0.72265625 +vt 0.859375 0.74609375 +vt 0.90625 0.74609375 +vt 0.90625 0.72265625 +vt 0.859375 0.72265625 +vt 0.9609375 0.74609375 +vt 0.96875 0.74609375 +vt 0.96875 0.72265625 +vt 0.9609375 0.72265625 +vt 0.9140625 0.74609375 +vt 0.9609375 0.74609375 +vt 0.9609375 0.72265625 +vt 0.9140625 0.72265625 +vt 0.9140625 0.74609375 +vt 0.90625 0.74609375 +vt 0.90625 0.79296875 +vt 0.9140625 0.79296875 +vt 0.921875 0.79296875 +vt 0.9140625 0.79296875 +vt 0.9140625 0.74609375 +vt 0.921875 0.74609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 156/460/115 159/459/115 157/458/115 154/457/115 +f 155/464/116 156/463/116 154/462/116 153/461/116 +f 160/468/117 155/467/117 153/466/117 158/465/117 +f 159/472/118 160/471/118 158/470/118 157/469/118 +f 158/476/119 153/475/119 154/474/119 157/473/119 +f 159/480/120 156/479/120 155/478/120 160/477/120 +o body +v 0.0625 1.625 3.125 +v 0.0625 1.625 2.375 +v 0.0625 1.25 3.125 +v 0.0625 1.25 2.375 +v -0.0625 1.625 2.375 +v -0.0625 1.625 3.125 +v -0.0625 1.25 2.375 +v -0.0625 1.25 3.125 +vt 0.90625 0.74609375 +vt 0.9140625 0.74609375 +vt 0.9140625 0.72265625 +vt 0.90625 0.72265625 +vt 0.859375 0.74609375 +vt 0.90625 0.74609375 +vt 0.90625 0.72265625 +vt 0.859375 0.72265625 +vt 0.9609375 0.74609375 +vt 0.96875 0.74609375 +vt 0.96875 0.72265625 +vt 0.9609375 0.72265625 +vt 0.9140625 0.74609375 +vt 0.9609375 0.74609375 +vt 0.9609375 0.72265625 +vt 0.9140625 0.72265625 +vt 0.9140625 0.74609375 +vt 0.90625 0.74609375 +vt 0.90625 0.79296875 +vt 0.9140625 0.79296875 +vt 0.921875 0.79296875 +vt 0.9140625 0.79296875 +vt 0.9140625 0.74609375 +vt 0.921875 0.74609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 164/484/121 167/483/121 165/482/121 162/481/121 +f 163/488/122 164/487/122 162/486/122 161/485/122 +f 168/492/123 163/491/123 161/490/123 166/489/123 +f 167/496/124 168/495/124 166/494/124 165/493/124 +f 166/500/125 161/499/125 162/498/125 165/497/125 +f 167/504/126 164/503/126 163/502/126 168/501/126 +o wing +v 4.0582975240428985 2.024698766671211 0.9789705600873082 +v 4.143802559874316 2.039775611474734 0.48656668358120414 +v 4.1451216128763635 1.5322948901651068 0.9789705600873082 +v 4.230626648707781 1.5473717349686296 0.48656668358120414 +v 0.7493404734989761 1.4412403606548134 -0.12120193825305198 +v 0.6638354376675588 1.4261635158512906 0.37120193825305203 +v 0.8361645623324412 0.9488364841487094 -0.12120193825305198 +v 0.7506595265010241 0.9337596393451866 0.37120193825305203 +vt 0.46875 0.625 +vt 0.6875 0.625 +vt 0.6875 0.59375 +vt 0.46875 0.59375 +vt 0.4375 0.625 +vt 0.46875 0.625 +vt 0.46875 0.59375 +vt 0.4375 0.59375 +vt 0.71875 0.625 +vt 0.9375 0.625 +vt 0.9375 0.59375 +vt 0.71875 0.59375 +vt 0.6875 0.625 +vt 0.71875 0.625 +vt 0.71875 0.59375 +vt 0.6875 0.59375 +vt 0.6875 0.625 +vt 0.46875 0.625 +vt 0.46875 0.65625 +vt 0.6875 0.65625 +vt 0.90625 0.65625 +vt 0.6875 0.65625 +vt 0.6875 0.625 +vt 0.90625 0.625 +vn 0.17101007166283433 0.030153689607045803 -0.984807753012208 +vn 0.9698463103929543 0.17101007166283436 0.17364817766693036 +vn -0.17101007166283433 -0.030153689607045803 0.984807753012208 +vn -0.9698463103929543 -0.17101007166283436 -0.17364817766693036 +vn -0.17364817766693033 0.984807753012208 0 +vn 0.17364817766693033 -0.984807753012208 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 172/508/127 175/507/127 173/506/127 170/505/127 +f 171/512/128 172/511/128 170/510/128 169/509/128 +f 176/516/129 171/515/129 169/514/129 174/513/129 +f 175/520/130 176/519/130 174/518/130 173/517/130 +f 174/524/131 169/523/131 170/522/131 173/521/131 +f 175/528/132 172/527/132 171/526/132 176/525/132 +o wing +v 3.5249413191357313 1.677431666078797 4.303420761460185 +v 4.123690332545229 1.7830072718154657 0.8553626162261914 +v 3.525158379357814 1.6762006563875311 4.303420761460185 +v 4.123907392767313 1.7817762621242004 0.8553626162261914 +v 0.7280159382818976 1.184258258405967 0.24737693416985151 +v 0.12926692487239855 1.0786826526692979 3.695435079403845 +v 0.728232998503981 1.1830272487147016 0.24737693416985151 +v 0.12948398509448222 1.0774516429780323 3.695435079403845 +vt 0 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.4375 +vt 0 0.4375 +vt -0.21875 0.4375 +vt 0 0.4375 +vt 0 0.4375 +vt -0.21875 0.4375 +vt 0.4375 0.4375 +vt 0.65625 0.4375 +vt 0.65625 0.4375 +vt 0.4375 0.4375 +vt 0.21875 0.4375 +vt 0.4375 0.4375 +vt 0.4375 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.4375 +vt 0 0.4375 +vt 0 0.65625 +vt 0.21875 0.65625 +vt 0.4375 0.65625 +vt 0.21875 0.65625 +vt 0.21875 0.4375 +vt 0.4375 0.4375 +vn 0.17101007166283433 0.030153689607045803 -0.984807753012208 +vn 0.9698463103929543 0.17101007166283436 0.17364817766693036 +vn -0.17101007166283433 -0.030153689607045803 0.984807753012208 +vn -0.9698463103929543 -0.17101007166283436 -0.17364817766693036 +vn -0.17364817766693033 0.984807753012208 0 +vn 0.17364817766693033 -0.984807753012208 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 180/532/133 183/531/133 181/530/133 178/529/133 +f 179/536/134 180/535/134 178/534/134 177/533/134 +f 184/540/135 179/539/135 177/538/135 182/537/135 +f 183/544/136 184/543/136 182/542/136 181/541/136 +f 182/548/137 177/547/137 178/546/137 181/545/137 +f 183/552/138 180/551/138 179/550/138 184/549/138 +o wingtip +v 7.541772295535269 1.2888090706299558 1.4344091768703897 +v 7.584524813450978 1.2963474930317171 1.1882072386173377 +v 7.499639529805786 1.0428327037253111 1.4195613832169185 +v 7.542392047721496 1.0503711261270725 1.1733594449638665 +v 4.186904728197936 1.912792645473123 0.6170915495344658 +v 4.144152210282227 1.9052542230713616 0.8632934877875178 +v 4.144771962468453 1.6668162785684784 0.6022437558809948 +v 4.102019444552744 1.659277856166717 0.8484456941340466 +vt 0.453125 0.453125 +vt 0.671875 0.453125 +vt 0.671875 0.4375 +vt 0.453125 0.4375 +vt 0.4375 0.453125 +vt 0.453125 0.453125 +vt 0.453125 0.4375 +vt 0.4375 0.4375 +vt 0.6875 0.453125 +vt 0.90625 0.453125 +vt 0.90625 0.4375 +vt 0.6875 0.4375 +vt 0.671875 0.453125 +vt 0.6875 0.453125 +vt 0.6875 0.4375 +vt 0.671875 0.4375 +vt 0.671875 0.453125 +vt 0.453125 0.453125 +vt 0.453125 0.46875 +vt 0.671875 0.46875 +vt 0.890625 0.46875 +vt 0.671875 0.46875 +vt 0.671875 0.453125 +vt 0.890625 0.453125 +vn 0.17101007166283436 0.0301536896070458 -0.9848077530122081 +vn 0.9707485957865836 -0.1761271864118303 0.16317591116653485 +vn -0.17101007166283436 -0.0301536896070458 0.9848077530122081 +vn -0.9707485957865836 0.1761271864118303 -0.16317591116653485 +vn 0.16853106291793427 0.9839054676185789 0.059391174613884684 +vn -0.16853106291793427 -0.9839054676185789 -0.059391174613884684 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 188/556/139 191/555/139 189/554/139 186/553/139 +f 187/560/140 188/559/140 186/558/140 185/557/140 +f 192/564/141 187/563/141 185/562/141 190/561/141 +f 191/568/142 192/567/142 190/566/142 189/565/142 +f 190/572/143 185/571/143 186/570/143 189/569/143 +f 191/576/144 188/575/144 187/574/144 192/573/144 +o wingtip +v 6.922775830342509 1.060768988922723 4.874567024860628 +v 7.521524843752008 1.1663445946593922 1.4265088796266343 +v 6.922565166513862 1.0595391070881996 4.874492785892361 +v 7.521314179923362 1.165114712824869 1.426434640658367 +v 4.122691322754232 1.7830099060838132 0.855189220654804 +v 3.523942309344733 1.677434300347144 4.303247365888798 +v 4.122480658925585 1.7817800242492896 0.8551149816865367 +v 3.5237316455160856 1.6762044185126204 4.30317312692053 +vt 0 0.21875 +vt 0.21875 0.21875 +vt 0.21875 0.21875 +vt 0 0.21875 +vt -0.21875 0.21875 +vt 0 0.21875 +vt 0 0.21875 +vt -0.21875 0.21875 +vt 0.4375 0.21875 +vt 0.65625 0.21875 +vt 0.65625 0.21875 +vt 0.4375 0.21875 +vt 0.21875 0.21875 +vt 0.4375 0.21875 +vt 0.4375 0.21875 +vt 0.21875 0.21875 +vt 0.21875 0.21875 +vt 0 0.21875 +vt 0 0.4375 +vt 0.21875 0.4375 +vt 0.4375 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.21875 +vt 0.4375 0.21875 +vn 0.17101007166283436 0.0301536896070458 -0.9848077530122081 +vn 0.9707485957865836 -0.1761271864118303 0.16317591116653485 +vn -0.17101007166283436 -0.0301536896070458 0.9848077530122081 +vn -0.9707485957865836 0.1761271864118303 -0.16317591116653485 +vn 0.16853106291793427 0.9839054676185789 0.059391174613884684 +vn -0.16853106291793427 -0.9839054676185789 -0.059391174613884684 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 196/580/145 199/579/145 197/578/145 194/577/145 +f 195/584/146 196/583/146 194/582/146 193/581/146 +f 200/588/147 195/587/147 193/586/147 198/585/147 +f 199/592/148 200/591/148 198/590/148 197/589/148 +f 198/596/149 193/595/149 194/594/149 197/593/149 +f 199/600/150 196/599/150 195/598/150 200/597/150 +o wing1 +v -0.6638354376675588 1.4261635158512906 0.37120193825305203 +v -0.749340473498976 1.4412403606548134 -0.12120193825305198 +v -0.7506595265010241 0.9337596393451866 0.37120193825305203 +v -0.8361645623324412 0.9488364841487094 -0.12120193825305198 +v -4.143802559874316 2.039775611474734 0.48656668358120414 +v -4.0582975240428985 2.024698766671211 0.9789705600873082 +v -4.230626648707781 1.5473717349686296 0.48656668358120414 +v -4.1451216128763635 1.5322948901651068 0.9789705600873082 +vt 0.6875 0.625 +vt 0.46875 0.625 +vt 0.46875 0.59375 +vt 0.6875 0.59375 +vt 0.71875 0.625 +vt 0.6875 0.625 +vt 0.6875 0.59375 +vt 0.71875 0.59375 +vt 0.9375 0.625 +vt 0.71875 0.625 +vt 0.71875 0.59375 +vt 0.9375 0.59375 +vt 0.46875 0.625 +vt 0.4375 0.625 +vt 0.4375 0.59375 +vt 0.46875 0.59375 +vt 0.46875 0.625 +vt 0.6875 0.625 +vt 0.6875 0.65625 +vt 0.46875 0.65625 +vt 0.6875 0.65625 +vt 0.90625 0.65625 +vt 0.90625 0.625 +vt 0.6875 0.625 +vn -0.17101007166283433 0.030153689607045803 -0.984807753012208 +vn 0.9698463103929543 -0.17101007166283436 -0.17364817766693036 +vn 0.17101007166283433 -0.030153689607045803 0.984807753012208 +vn -0.9698463103929543 0.17101007166283436 0.17364817766693036 +vn 0.17364817766693033 0.984807753012208 0 +vn -0.17364817766693033 -0.984807753012208 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 204/604/151 207/603/151 205/602/151 202/601/151 +f 203/608/152 204/607/152 202/606/152 201/605/152 +f 208/612/153 203/611/153 201/610/153 206/609/153 +f 207/616/154 208/615/154 206/614/154 205/613/154 +f 206/620/155 201/619/155 202/618/155 205/617/155 +f 207/624/156 204/623/156 203/622/156 208/621/156 +o wing1 +v -0.1292669248723986 1.0786826526692979 3.695435079403845 +v -0.7280159382818975 1.184258258405967 0.24737693416985151 +v -0.12948398509448228 1.0774516429780323 3.695435079403845 +v -0.7282329985039812 1.1830272487147016 0.24737693416985151 +v -4.123690332545229 1.7830072718154657 0.8553626162261914 +v -3.524941319135731 1.677431666078797 4.303420761460185 +v -4.123907392767313 1.7817762621242004 0.8553626162261914 +v -3.5251583793578143 1.6762006563875311 4.303420761460185 +vt 0.21875 0.4375 +vt 0 0.4375 +vt 0 0.4375 +vt 0.21875 0.4375 +vt 0.4375 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.4375 +vt 0.4375 0.4375 +vt 0.65625 0.4375 +vt 0.4375 0.4375 +vt 0.4375 0.4375 +vt 0.65625 0.4375 +vt 0 0.4375 +vt -0.21875 0.4375 +vt -0.21875 0.4375 +vt 0 0.4375 +vt 0 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.65625 +vt 0 0.65625 +vt 0.21875 0.65625 +vt 0.4375 0.65625 +vt 0.4375 0.4375 +vt 0.21875 0.4375 +vn -0.17101007166283433 0.030153689607045803 -0.984807753012208 +vn 0.9698463103929543 -0.17101007166283436 -0.17364817766693036 +vn 0.17101007166283433 -0.030153689607045803 0.984807753012208 +vn -0.9698463103929543 0.17101007166283436 0.17364817766693036 +vn 0.17364817766693033 0.984807753012208 0 +vn -0.17364817766693033 -0.984807753012208 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 212/628/157 215/627/157 213/626/157 210/625/157 +f 211/632/158 212/631/158 210/630/158 209/629/158 +f 216/636/159 211/635/159 209/634/159 214/633/159 +f 215/640/160 216/639/160 214/638/160 213/637/160 +f 214/644/161 209/643/161 210/642/161 213/641/161 +f 215/648/162 212/647/162 211/646/162 216/645/162 +o wingtip1 +v -4.144152210282227 1.9052542230713616 0.8632934877875178 +v -4.186904728197936 1.912792645473123 0.6170915495344658 +v -4.102019444552744 1.659277856166717 0.8484456941340466 +v -4.144771962468453 1.6668162785684784 0.6022437558809948 +v -7.584524813450978 1.2963474930317171 1.1882072386173377 +v -7.541772295535269 1.2888090706299558 1.4344091768703897 +v -7.542392047721495 1.0503711261270725 1.1733594449638665 +v -7.499639529805786 1.0428327037253111 1.4195613832169185 +vt 0.671875 0.453125 +vt 0.453125 0.453125 +vt 0.453125 0.4375 +vt 0.671875 0.4375 +vt 0.6875 0.453125 +vt 0.671875 0.453125 +vt 0.671875 0.4375 +vt 0.6875 0.4375 +vt 0.90625 0.453125 +vt 0.6875 0.453125 +vt 0.6875 0.4375 +vt 0.90625 0.4375 +vt 0.453125 0.453125 +vt 0.4375 0.453125 +vt 0.4375 0.4375 +vt 0.453125 0.4375 +vt 0.453125 0.453125 +vt 0.671875 0.453125 +vt 0.671875 0.46875 +vt 0.453125 0.46875 +vt 0.671875 0.46875 +vt 0.890625 0.46875 +vt 0.890625 0.453125 +vt 0.671875 0.453125 +vn -0.17101007166283436 0.0301536896070458 -0.9848077530122081 +vn 0.9707485957865836 0.1761271864118303 -0.16317591116653485 +vn 0.17101007166283436 -0.0301536896070458 0.9848077530122081 +vn -0.9707485957865836 -0.1761271864118303 0.16317591116653485 +vn -0.16853106291793427 0.9839054676185789 0.059391174613884684 +vn 0.16853106291793427 -0.9839054676185789 -0.059391174613884684 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 220/652/163 223/651/163 221/650/163 218/649/163 +f 219/656/164 220/655/164 218/654/164 217/653/164 +f 224/660/165 219/659/165 217/658/165 222/657/165 +f 223/664/166 224/663/166 222/662/166 221/661/166 +f 222/668/167 217/667/167 218/666/167 221/665/167 +f 223/672/168 220/671/168 219/670/168 224/669/168 +o wingtip1 +v -3.523942309344733 1.677434300347144 4.303247365888798 +v -4.122691322754232 1.7830099060838132 0.855189220654804 +v -3.5237316455160856 1.6762044185126204 4.30317312692053 +v -4.122480658925585 1.7817800242492896 0.8551149816865367 +v -7.521524843752008 1.1663445946593922 1.4265088796266343 +v -6.922775830342509 1.060768988922723 4.874567024860628 +v -7.521314179923361 1.165114712824869 1.426434640658367 +v -6.922565166513862 1.0595391070881996 4.874492785892361 +vt 0.21875 0.21875 +vt 0 0.21875 +vt 0 0.21875 +vt 0.21875 0.21875 +vt 0.4375 0.21875 +vt 0.21875 0.21875 +vt 0.21875 0.21875 +vt 0.4375 0.21875 +vt 0.65625 0.21875 +vt 0.4375 0.21875 +vt 0.4375 0.21875 +vt 0.65625 0.21875 +vt 0 0.21875 +vt -0.21875 0.21875 +vt -0.21875 0.21875 +vt 0 0.21875 +vt 0 0.21875 +vt 0.21875 0.21875 +vt 0.21875 0.4375 +vt 0 0.4375 +vt 0.21875 0.4375 +vt 0.4375 0.4375 +vt 0.4375 0.21875 +vt 0.21875 0.21875 +vn -0.17101007166283436 0.0301536896070458 -0.9848077530122081 +vn 0.9707485957865836 0.1761271864118303 -0.16317591116653485 +vn 0.17101007166283436 -0.0301536896070458 0.9848077530122081 +vn -0.9707485957865836 -0.1761271864118303 0.16317591116653485 +vn -0.16853106291793427 0.9839054676185789 0.059391174613884684 +vn 0.16853106291793427 -0.9839054676185789 -0.059391174613884684 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 228/676/169 231/675/169 229/674/169 226/673/169 +f 227/680/170 228/679/170 226/678/170 225/677/170 +f 232/684/171 227/683/171 225/682/171 230/681/171 +f 231/688/172 232/687/172 230/686/172 229/685/172 +f 230/692/173 225/691/173 226/690/173 229/689/173 +f 231/696/174 228/695/174 227/694/174 232/693/174 +o rearleg +v 1.5 1.0580127018922192 2.6584936490538906 +v 1.5 0.1919872981077808 2.1584936490538906 +v 1.5 0.05801270189221919 4.390544456622768 +v 1.5 -0.8080127018922196 3.8905444566227683 +v 0.5 0.1919872981077808 2.1584936490538906 +v 0.5 1.0580127018922192 2.6584936490538906 +v 0.5 -0.8080127018922196 3.8905444566227683 +v 0.5 0.05801270189221919 4.390544456622768 +vt 0.0625 0.9375 +vt 0.125 0.9375 +vt 0.125 0.8125 +vt 0.0625 0.8125 +vt 0 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.8125 +vt 0 0.8125 +vt 0.1875 0.9375 +vt 0.25 0.9375 +vt 0.25 0.8125 +vt 0.1875 0.8125 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.8125 +vt 0.125 0.8125 +vt 0.125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 1 +vt 0.125 1 +vt 0.1875 1 +vt 0.125 1 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vn 0 -0.8660254037844386 -0.5000000000000001 +vn 1 0 0 +vn 0 0.8660254037844386 0.5000000000000001 +vn -1 0 0 +vn 0 0.5000000000000001 -0.8660254037844386 +vn 0 -0.5000000000000001 0.8660254037844386 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 236/700/175 239/699/175 237/698/175 234/697/175 +f 235/704/176 236/703/176 234/702/176 233/701/176 +f 240/708/177 235/707/177 233/706/177 238/705/177 +f 239/712/178 240/711/178 238/710/178 237/709/178 +f 238/716/179 233/715/179 234/714/179 237/713/179 +f 239/720/180 236/719/180 235/718/180 240/717/180 +o rearlegtip +v 1.375 -0.009562569109802244 4.19903062623141 +v 1.375 -0.7567085926786117 4.133663819170667 +v 1.375 -0.18387405460511896 6.191420022414902 +v 1.375 -0.9310200781739284 6.126053215354158 +v 0.625 -0.7567085926786117 4.133663819170667 +v 0.625 -0.009562569109802244 4.19903062623141 +v 0.625 -0.9310200781739284 6.126053215354158 +v 0.625 -0.18387405460511896 6.191420022414902 +vt 0.8125 0.953125 +vt 0.859375 0.953125 +vt 0.859375 0.828125 +vt 0.8125 0.828125 +vt 0.765625 0.953125 +vt 0.8125 0.953125 +vt 0.8125 0.828125 +vt 0.765625 0.828125 +vt 0.90625 0.953125 +vt 0.953125 0.953125 +vt 0.953125 0.828125 +vt 0.90625 0.828125 +vt 0.859375 0.953125 +vt 0.90625 0.953125 +vt 0.90625 0.828125 +vt 0.859375 0.828125 +vt 0.859375 0.953125 +vt 0.8125 0.953125 +vt 0.8125 1 +vt 0.859375 1 +vt 0.90625 1 +vt 0.859375 1 +vt 0.859375 0.953125 +vt 0.90625 0.953125 +vn 0 -0.9961946980917455 -0.0871557427476583 +vn 1 0 0 +vn 0 0.9961946980917455 0.0871557427476583 +vn -1 0 0 +vn 0 0.0871557427476583 -0.9961946980917455 +vn 0 -0.0871557427476583 0.9961946980917455 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 244/724/181 247/723/181 245/722/181 242/721/181 +f 243/728/182 244/727/182 242/726/182 241/725/182 +f 248/732/183 243/731/183 241/730/183 246/729/183 +f 247/736/184 248/735/184 246/734/184 245/733/184 +f 246/740/185 241/739/185 242/738/185 245/737/185 +f 247/744/186 244/743/186 243/742/186 248/741/186 +o rearfoot +v 1.5625 -0.42819812424051307 5.992592482541166 +v 1.5625 -1.5772647889189804 6.956773897070976 +v 1.5625 -0.187152770608062 6.279859148710783 +v 1.5625 -1.3362194352865284 7.244040563240592 +v 0.4375 -1.5772647889189804 6.956773897070976 +v 0.4375 -0.42819812424051307 5.992592482541166 +v 0.4375 -1.3362194352865284 7.244040563240592 +v 0.4375 -0.187152770608062 6.279859148710783 +vt 0.53125 0.90625 +vt 0.6015625 0.90625 +vt 0.6015625 0.8828125 +vt 0.53125 0.8828125 +vt 0.4375 0.90625 +vt 0.53125 0.90625 +vt 0.53125 0.8828125 +vt 0.4375 0.8828125 +vt 0.6953125 0.90625 +vt 0.765625 0.90625 +vt 0.765625 0.8828125 +vt 0.6953125 0.8828125 +vt 0.6015625 0.90625 +vt 0.6953125 0.90625 +vt 0.6953125 0.8828125 +vt 0.6015625 0.8828125 +vt 0.6015625 0.90625 +vt 0.53125 0.90625 +vt 0.53125 1 +vt 0.6015625 1 +vt 0.671875 1 +vt 0.6015625 1 +vt 0.6015625 0.90625 +vt 0.671875 0.90625 +vn 0 -0.766044443118978 0.6427876096865393 +vn 1 0 0 +vn 0 0.766044443118978 -0.6427876096865393 +vn -1 0 0 +vn 0 -0.6427876096865393 -0.766044443118978 +vn 0 0.6427876096865393 0.766044443118978 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 252/748/187 255/747/187 253/746/187 250/745/187 +f 251/752/188 252/751/188 250/750/188 249/749/188 +f 256/756/189 251/755/189 249/754/189 254/753/189 +f 255/760/190 256/759/190 254/758/190 253/757/190 +f 254/764/191 249/763/191 250/762/191 253/761/191 +f 255/768/192 252/767/192 251/766/192 256/765/192 +o rearleg1 +v -0.5 1.0580127018922192 2.6584936490538906 +v -0.5 0.1919872981077808 2.1584936490538906 +v -0.5 0.05801270189221919 4.390544456622768 +v -0.5 -0.8080127018922196 3.8905444566227683 +v -1.5 0.1919872981077808 2.1584936490538906 +v -1.5 1.0580127018922192 2.6584936490538906 +v -1.5 -0.8080127018922196 3.8905444566227683 +v -1.5 0.05801270189221919 4.390544456622768 +vt 0.125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.8125 +vt 0.125 0.8125 +vt 0.1875 0.9375 +vt 0.125 0.9375 +vt 0.125 0.8125 +vt 0.1875 0.8125 +vt 0.25 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.8125 +vt 0.25 0.8125 +vt 0.0625 0.9375 +vt 0 0.9375 +vt 0 0.8125 +vt 0.0625 0.8125 +vt 0.0625 0.9375 +vt 0.125 0.9375 +vt 0.125 1 +vt 0.0625 1 +vt 0.125 1 +vt 0.1875 1 +vt 0.1875 0.9375 +vt 0.125 0.9375 +vn 0 -0.8660254037844386 -0.5000000000000001 +vn 1 0 0 +vn 0 0.8660254037844386 0.5000000000000001 +vn -1 0 0 +vn 0 0.5000000000000001 -0.8660254037844386 +vn 0 -0.5000000000000001 0.8660254037844386 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 260/772/193 263/771/193 261/770/193 258/769/193 +f 259/776/194 260/775/194 258/774/194 257/773/194 +f 264/780/195 259/779/195 257/778/195 262/777/195 +f 263/784/196 264/783/196 262/782/196 261/781/196 +f 262/788/197 257/787/197 258/786/197 261/785/197 +f 263/792/198 260/791/198 259/790/198 264/789/198 +o rearlegtip +v -0.625 -0.009562569109802244 4.19903062623141 +v -0.625 -0.7567085926786117 4.133663819170667 +v -0.625 -0.18387405460511896 6.191420022414902 +v -0.625 -0.9310200781739284 6.126053215354158 +v -1.375 -0.7567085926786117 4.133663819170667 +v -1.375 -0.009562569109802244 4.19903062623141 +v -1.375 -0.9310200781739284 6.126053215354158 +v -1.375 -0.18387405460511896 6.191420022414902 +vt 0.859375 0.953125 +vt 0.8125 0.953125 +vt 0.8125 0.828125 +vt 0.859375 0.828125 +vt 0.90625 0.953125 +vt 0.859375 0.953125 +vt 0.859375 0.828125 +vt 0.90625 0.828125 +vt 0.953125 0.953125 +vt 0.90625 0.953125 +vt 0.90625 0.828125 +vt 0.953125 0.828125 +vt 0.8125 0.953125 +vt 0.765625 0.953125 +vt 0.765625 0.828125 +vt 0.8125 0.828125 +vt 0.8125 0.953125 +vt 0.859375 0.953125 +vt 0.859375 1 +vt 0.8125 1 +vt 0.859375 1 +vt 0.90625 1 +vt 0.90625 0.953125 +vt 0.859375 0.953125 +vn 0 -0.9961946980917455 -0.0871557427476583 +vn 1 0 0 +vn 0 0.9961946980917455 0.0871557427476583 +vn -1 0 0 +vn 0 0.0871557427476583 -0.9961946980917455 +vn 0 -0.0871557427476583 0.9961946980917455 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 268/796/199 271/795/199 269/794/199 266/793/199 +f 267/800/200 268/799/200 266/798/200 265/797/200 +f 272/804/201 267/803/201 265/802/201 270/801/201 +f 271/808/202 272/807/202 270/806/202 269/805/202 +f 270/812/203 265/811/203 266/810/203 269/809/203 +f 271/816/204 268/815/204 267/814/204 272/813/204 +o rearfoot +v -0.4375 -0.42819812424051307 5.992592482541166 +v -0.4375 -1.5772647889189804 6.956773897070976 +v -0.4375 -0.187152770608062 6.279859148710783 +v -0.4375 -1.3362194352865284 7.244040563240592 +v -1.5625 -1.5772647889189804 6.956773897070976 +v -1.5625 -0.42819812424051307 5.992592482541166 +v -1.5625 -1.3362194352865284 7.244040563240592 +v -1.5625 -0.187152770608062 6.279859148710783 +vt 0.6015625 0.90625 +vt 0.53125 0.90625 +vt 0.53125 0.8828125 +vt 0.6015625 0.8828125 +vt 0.6953125 0.90625 +vt 0.6015625 0.90625 +vt 0.6015625 0.8828125 +vt 0.6953125 0.8828125 +vt 0.765625 0.90625 +vt 0.6953125 0.90625 +vt 0.6953125 0.8828125 +vt 0.765625 0.8828125 +vt 0.53125 0.90625 +vt 0.4375 0.90625 +vt 0.4375 0.8828125 +vt 0.53125 0.8828125 +vt 0.53125 0.90625 +vt 0.6015625 0.90625 +vt 0.6015625 1 +vt 0.53125 1 +vt 0.6015625 1 +vt 0.671875 1 +vt 0.671875 0.90625 +vt 0.6015625 0.90625 +vn 0 -0.766044443118978 0.6427876096865393 +vn 1 0 0 +vn 0 0.766044443118978 -0.6427876096865393 +vn -1 0 0 +vn 0 -0.6427876096865393 -0.766044443118978 +vn 0 0.6427876096865393 0.766044443118978 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 276/820/205 279/819/205 277/818/205 274/817/205 +f 275/824/206 276/823/206 274/822/206 273/821/206 +f 280/828/207 275/827/207 273/826/207 278/825/207 +f 279/832/208 280/831/208 278/830/208 277/829/208 +f 278/836/209 273/835/209 274/834/209 277/833/209 +f 279/840/210 276/839/210 275/838/210 280/837/210 +o frontleg +v 1 0.5822315121943373 0.004077618676012307 +v 1 0.1290776186760123 -0.20723151219433733 +v 1 -0.05169588041671158 1.3635392992309874 +v 1 -0.5048497739350366 1.1522301683606377 +v 0.5 0.1290776186760123 -0.20723151219433733 +v 0.5 0.5822315121943373 0.004077618676012307 +v 0.5 -0.5048497739350366 1.1522301683606377 +v 0.5 -0.05169588041671158 1.3635392992309874 +vt 0.46875 0.5625 +vt 0.5 0.5625 +vt 0.5 0.46875 +vt 0.46875 0.46875 +vt 0.4375 0.5625 +vt 0.46875 0.5625 +vt 0.46875 0.46875 +vt 0.4375 0.46875 +vt 0.53125 0.5625 +vt 0.5625 0.5625 +vt 0.5625 0.46875 +vt 0.53125 0.46875 +vt 0.5 0.5625 +vt 0.53125 0.5625 +vt 0.53125 0.46875 +vt 0.5 0.46875 +vt 0.5 0.5625 +vt 0.46875 0.5625 +vt 0.46875 0.59375 +vt 0.5 0.59375 +vt 0.53125 0.59375 +vt 0.5 0.59375 +vt 0.5 0.5625 +vt 0.53125 0.5625 +vn 0 -0.90630778703665 -0.4226182617406993 +vn 1 0 0 +vn 0 0.90630778703665 0.4226182617406993 +vn -1 0 0 +vn 0 0.4226182617406993 -0.90630778703665 +vn 0 -0.4226182617406993 0.90630778703665 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 284/844/211 287/843/211 285/842/211 282/841/211 +f 283/848/212 284/847/212 282/846/212 281/845/212 +f 288/852/213 283/851/213 281/850/213 286/849/213 +f 287/856/214 288/855/214 286/854/214 285/853/214 +f 286/860/215 281/859/215 282/858/215 285/857/215 +f 287/864/216 284/863/216 283/862/216 288/861/216 +o frontlegtip +v 0.9375 -0.10149613187923717 1.346273081444131 +v 0.9375 -0.3666611748241926 1.0811080384991758 +v 0.9375 -1.1621563036590583 2.4069332532239525 +v 0.9375 -1.4273213466040136 2.141768210278997 +v 0.5625 -0.3666611748241926 1.0811080384991758 +v 0.5625 -0.10149613187923717 1.346273081444131 +v 0.5625 -1.4273213466040136 2.141768210278997 +v 0.5625 -1.1621563036590583 2.4069332532239525 +vt 0.90625 0.4375 +vt 0.9296875 0.4375 +vt 0.9296875 0.34375 +vt 0.90625 0.34375 +vt 0.8828125 0.4375 +vt 0.90625 0.4375 +vt 0.90625 0.34375 +vt 0.8828125 0.34375 +vt 0.953125 0.4375 +vt 0.9765625 0.4375 +vt 0.9765625 0.34375 +vt 0.953125 0.34375 +vt 0.9296875 0.4375 +vt 0.953125 0.4375 +vt 0.953125 0.34375 +vt 0.9296875 0.34375 +vt 0.9296875 0.4375 +vt 0.90625 0.4375 +vt 0.90625 0.4609375 +vt 0.9296875 0.4609375 +vt 0.953125 0.4609375 +vt 0.9296875 0.4609375 +vt 0.9296875 0.4375 +vt 0.953125 0.4375 +vn 0 -0.7071067811865477 -0.7071067811865474 +vn 1 0 0 +vn 0 0.7071067811865477 0.7071067811865474 +vn -1 0 0 +vn 0 0.7071067811865474 -0.7071067811865477 +vn 0 -0.7071067811865474 0.7071067811865477 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 292/868/217 295/867/217 293/866/217 290/865/217 +f 291/872/218 292/871/218 290/870/218 289/869/218 +f 296/876/219 291/875/219 289/874/219 294/873/219 +f 295/880/220 296/879/220 294/878/220 293/877/220 +f 294/884/221 289/883/221 290/882/221 293/881/221 +f 295/888/222 292/887/222 291/886/222 296/885/222 +o frontfoot +v 1 -1.0005446513073766 2.2301565579273155 +v 1 -2.0005446513073766 2.2301565579273155 +v 1 -1.0005446513073766 2.4801565579273155 +v 1 -2.0005446513073766 2.4801565579273155 +v 0.5 -2.0005446513073766 2.2301565579273155 +v 0.5 -1.0005446513073766 2.2301565579273155 +v 0.5 -2.0005446513073766 2.4801565579273155 +v 0.5 -1.0005446513073766 2.4801565579273155 +vt 0.625 0.53125 +vt 0.65625 0.53125 +vt 0.65625 0.515625 +vt 0.625 0.515625 +vt 0.5625 0.53125 +vt 0.625 0.53125 +vt 0.625 0.515625 +vt 0.5625 0.515625 +vt 0.71875 0.53125 +vt 0.75 0.53125 +vt 0.75 0.515625 +vt 0.71875 0.515625 +vt 0.65625 0.53125 +vt 0.71875 0.53125 +vt 0.71875 0.515625 +vt 0.65625 0.515625 +vt 0.65625 0.53125 +vt 0.625 0.53125 +vt 0.625 0.59375 +vt 0.65625 0.59375 +vt 0.6875 0.59375 +vt 0.65625 0.59375 +vt 0.65625 0.53125 +vt 0.6875 0.53125 +vn 0 -1 2.7755575615628914e-16 +vn 1 0 0 +vn 0 1 -2.7755575615628914e-16 +vn -1 0 0 +vn 0 -2.7755575615628914e-16 -1 +vn 0 2.7755575615628914e-16 1 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 300/892/223 303/891/223 301/890/223 298/889/223 +f 299/896/224 300/895/224 298/894/224 297/893/224 +f 304/900/225 299/899/225 297/898/225 302/897/225 +f 303/904/226 304/903/226 302/902/226 301/901/226 +f 302/908/227 297/907/227 298/906/227 301/905/227 +f 303/912/228 300/911/228 299/910/228 304/909/228 +o frontleg1 +v -0.5 0.5822315121943373 0.004077618676012307 +v -0.5 0.1290776186760123 -0.20723151219433733 +v -0.5 -0.05169588041671158 1.3635392992309874 +v -0.5 -0.5048497739350366 1.1522301683606377 +v -1 0.1290776186760123 -0.20723151219433733 +v -1 0.5822315121943373 0.004077618676012307 +v -1 -0.5048497739350366 1.1522301683606377 +v -1 -0.05169588041671158 1.3635392992309874 +vt 0.5 0.5625 +vt 0.46875 0.5625 +vt 0.46875 0.46875 +vt 0.5 0.46875 +vt 0.53125 0.5625 +vt 0.5 0.5625 +vt 0.5 0.46875 +vt 0.53125 0.46875 +vt 0.5625 0.5625 +vt 0.53125 0.5625 +vt 0.53125 0.46875 +vt 0.5625 0.46875 +vt 0.46875 0.5625 +vt 0.4375 0.5625 +vt 0.4375 0.46875 +vt 0.46875 0.46875 +vt 0.46875 0.5625 +vt 0.5 0.5625 +vt 0.5 0.59375 +vt 0.46875 0.59375 +vt 0.5 0.59375 +vt 0.53125 0.59375 +vt 0.53125 0.5625 +vt 0.5 0.5625 +vn 0 -0.90630778703665 -0.4226182617406993 +vn 1 0 0 +vn 0 0.90630778703665 0.4226182617406993 +vn -1 0 0 +vn 0 0.4226182617406993 -0.90630778703665 +vn 0 -0.4226182617406993 0.90630778703665 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 308/916/229 311/915/229 309/914/229 306/913/229 +f 307/920/230 308/919/230 306/918/230 305/917/230 +f 312/924/231 307/923/231 305/922/231 310/921/231 +f 311/928/232 312/927/232 310/926/232 309/925/232 +f 310/932/233 305/931/233 306/930/233 309/929/233 +f 311/936/234 308/935/234 307/934/234 312/933/234 +o frontlegtip +v -0.5625 -0.10149613187923717 1.346273081444131 +v -0.5625 -0.3666611748241926 1.0811080384991758 +v -0.5625 -1.1621563036590583 2.4069332532239525 +v -0.5625 -1.4273213466040136 2.141768210278997 +v -0.9375 -0.3666611748241926 1.0811080384991758 +v -0.9375 -0.10149613187923717 1.346273081444131 +v -0.9375 -1.4273213466040136 2.141768210278997 +v -0.9375 -1.1621563036590583 2.4069332532239525 +vt 0.9296875 0.4375 +vt 0.90625 0.4375 +vt 0.90625 0.34375 +vt 0.9296875 0.34375 +vt 0.953125 0.4375 +vt 0.9296875 0.4375 +vt 0.9296875 0.34375 +vt 0.953125 0.34375 +vt 0.9765625 0.4375 +vt 0.953125 0.4375 +vt 0.953125 0.34375 +vt 0.9765625 0.34375 +vt 0.90625 0.4375 +vt 0.8828125 0.4375 +vt 0.8828125 0.34375 +vt 0.90625 0.34375 +vt 0.90625 0.4375 +vt 0.9296875 0.4375 +vt 0.9296875 0.4609375 +vt 0.90625 0.4609375 +vt 0.9296875 0.4609375 +vt 0.953125 0.4609375 +vt 0.953125 0.4375 +vt 0.9296875 0.4375 +vn 0 -0.7071067811865477 -0.7071067811865474 +vn 1 0 0 +vn 0 0.7071067811865477 0.7071067811865474 +vn -1 0 0 +vn 0 0.7071067811865474 -0.7071067811865477 +vn 0 -0.7071067811865474 0.7071067811865477 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 316/940/235 319/939/235 317/938/235 314/937/235 +f 315/944/236 316/943/236 314/942/236 313/941/236 +f 320/948/237 315/947/237 313/946/237 318/945/237 +f 319/952/238 320/951/238 318/950/238 317/949/238 +f 318/956/239 313/955/239 314/954/239 317/953/239 +f 319/960/240 316/959/240 315/958/240 320/957/240 +o frontfoot +v -0.5 -1.0005446513073766 2.2301565579273155 +v -0.5 -2.0005446513073766 2.2301565579273155 +v -0.5 -1.0005446513073766 2.4801565579273155 +v -0.5 -2.0005446513073766 2.4801565579273155 +v -1 -2.0005446513073766 2.2301565579273155 +v -1 -1.0005446513073766 2.2301565579273155 +v -1 -2.0005446513073766 2.4801565579273155 +v -1 -1.0005446513073766 2.4801565579273155 +vt 0.65625 0.53125 +vt 0.625 0.53125 +vt 0.625 0.515625 +vt 0.65625 0.515625 +vt 0.71875 0.53125 +vt 0.65625 0.53125 +vt 0.65625 0.515625 +vt 0.71875 0.515625 +vt 0.75 0.53125 +vt 0.71875 0.53125 +vt 0.71875 0.515625 +vt 0.75 0.515625 +vt 0.625 0.53125 +vt 0.5625 0.53125 +vt 0.5625 0.515625 +vt 0.625 0.515625 +vt 0.625 0.53125 +vt 0.65625 0.53125 +vt 0.65625 0.59375 +vt 0.625 0.59375 +vt 0.65625 0.59375 +vt 0.6875 0.59375 +vt 0.6875 0.53125 +vt 0.65625 0.53125 +vn 0 -1 2.7755575615628914e-16 +vn 1 0 0 +vn 0 1 -2.7755575615628914e-16 +vn -1 0 0 +vn 0 -2.7755575615628914e-16 -1 +vn 0 2.7755575615628914e-16 1 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 324/964/241 327/963/241 325/962/241 322/961/241 +f 323/968/242 324/967/242 322/966/242 321/965/242 +f 328/972/243 323/971/243 321/970/243 326/969/243 +f 327/976/244 328/975/244 326/974/244 325/973/244 +f 326/980/245 321/979/245 322/978/245 325/977/245 +f 327/984/246 324/983/246 323/982/246 328/981/246 +o tail +v 0.3125 1.1875 4.125 +v 0.3125 1.1875 3.5 +v 0.3125 0.5625 4.125 +v 0.3125 0.5625 3.5 +v -0.3125 1.1875 3.5 +v -0.3125 1.1875 4.125 +v -0.3125 0.5625 3.5 +v -0.3125 0.5625 4.125 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 332/988/247 335/987/247 333/986/247 330/985/247 +f 331/992/248 332/991/248 330/990/248 329/989/248 +f 336/996/249 331/995/249 329/994/249 334/993/249 +f 335/1000/250 336/999/250 334/998/250 333/997/250 +f 334/1004/251 329/1003/251 330/1002/251 333/1001/251 +f 335/1008/252 332/1007/252 331/1006/252 336/1005/252 +o tail +v 0.0625 1.4375 4 +v 0.0625 1.4375 3.625 +v 0.0625 1.1875 4 +v 0.0625 1.1875 3.625 +v -0.0625 1.4375 3.625 +v -0.0625 1.4375 4 +v -0.0625 1.1875 3.625 +v -0.0625 1.1875 4 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 340/1012/253 343/1011/253 341/1010/253 338/1009/253 +f 339/1016/254 340/1015/254 338/1014/254 337/1013/254 +f 344/1020/255 339/1019/255 337/1018/255 342/1017/255 +f 343/1024/256 344/1023/256 342/1022/256 341/1021/256 +f 342/1028/257 337/1027/257 338/1026/257 341/1025/257 +f 343/1032/258 340/1031/258 339/1030/258 344/1029/258 +o tail +v 0.3125 1.1983601587596744 4.744450932461093 +v 0.3125 1.1874524047363721 4.119546122988348 +v 0.3125 0.5734553492869299 4.755358686484396 +v 0.3125 0.5625475952636276 4.130453877011651 +v -0.3125 1.1874524047363721 4.119546122988348 +v -0.3125 1.1983601587596744 4.744450932461093 +v -0.3125 0.5625475952636276 4.130453877011651 +v -0.3125 0.5734553492869299 4.755358686484396 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.01745240643728351 -0.9998476951563913 +vn 1 0 0 +vn 0 0.01745240643728351 0.9998476951563913 +vn -1 0 0 +vn 0 0.9998476951563913 -0.01745240643728351 +vn 0 -0.9998476951563913 0.01745240643728351 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 348/1036/259 351/1035/259 349/1034/259 346/1033/259 +f 347/1040/260 348/1039/260 346/1038/260 345/1037/260 +f 352/1044/261 347/1043/261 345/1042/261 350/1041/261 +f 351/1048/262 352/1047/262 350/1046/262 349/1045/262 +f 350/1052/263 345/1051/263 346/1050/263 349/1049/263 +f 351/1056/264 348/1055/264 347/1054/264 352/1053/264 +o tail +v 0.0625 1.4461405317441118 4.615106868957223 +v 0.0625 1.4395958793301304 4.240163983273576 +v 0.0625 1.196178607955014 4.619469970566544 +v 0.0625 1.1896339555410327 4.244527084882897 +v -0.0625 1.4395958793301304 4.240163983273576 +v -0.0625 1.4461405317441118 4.615106868957223 +v -0.0625 1.1896339555410327 4.244527084882897 +v -0.0625 1.196178607955014 4.619469970566544 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.01745240643728351 -0.9998476951563913 +vn 1 0 0 +vn 0 0.01745240643728351 0.9998476951563913 +vn -1 0 0 +vn 0 0.9998476951563913 -0.01745240643728351 +vn 0 -0.9998476951563913 0.01745240643728351 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 356/1060/265 359/1059/265 357/1058/265 354/1057/265 +f 355/1064/266 356/1063/266 354/1062/266 353/1061/266 +f 360/1068/267 355/1067/267 353/1066/267 358/1065/267 +f 359/1072/268 360/1071/268 358/1070/268 357/1069/268 +f 358/1076/269 353/1075/269 354/1074/269 357/1073/269 +f 359/1080/270 356/1079/270 355/1078/270 360/1077/270 +o tail +v 0.3125 1.2200295729058328 5.363617983640148 +v 0.3125 1.1982173874667696 4.738998716753213 +v 0.3125 0.595410306018898 5.385430169079211 +v 0.3125 0.5735981205798348 4.760810902192276 +v -0.3125 1.1982173874667696 4.738998716753213 +v -0.3125 1.2200295729058328 5.363617983640148 +v -0.3125 0.5735981205798348 4.760810902192276 +v -0.3125 0.595410306018898 5.385430169079211 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.03489949670250097 -0.9993908270190958 +vn 1 0 0 +vn 0 0.03489949670250097 0.9993908270190958 +vn -1 0 0 +vn 0 0.9993908270190958 -0.03489949670250097 +vn 0 -0.9993908270190958 0.03489949670250097 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 364/1084/271 367/1083/271 365/1082/271 362/1081/271 +f 363/1088/272 364/1087/272 362/1086/272 361/1085/272 +f 368/1092/273 363/1091/273 361/1090/273 366/1089/273 +f 367/1096/274 368/1095/274 366/1094/274 365/1093/274 +f 366/1100/275 361/1099/275 362/1098/275 365/1097/275 +f 367/1104/276 364/1103/276 363/1102/276 368/1101/276 +o tail +v 0.0625 1.465514842572794 5.229969256087136 +v 0.0625 1.4524275313093562 4.855197695954975 +v 0.0625 1.21566713581802 5.238694130262761 +v 0.0625 1.2025798245545822 4.8639225701306 +v -0.0625 1.4524275313093562 4.855197695954975 +v -0.0625 1.465514842572794 5.229969256087136 +v -0.0625 1.2025798245545822 4.8639225701306 +v -0.0625 1.21566713581802 5.238694130262761 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.03489949670250097 -0.9993908270190958 +vn 1 0 0 +vn 0 0.03489949670250097 0.9993908270190958 +vn -1 0 0 +vn 0 0.9993908270190958 -0.03489949670250097 +vn 0 -0.9993908270190958 0.03489949670250097 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 372/1108/277 375/1107/277 373/1106/277 370/1105/277 +f 371/1112/278 372/1111/278 370/1110/278 369/1109/278 +f 376/1116/279 371/1115/279 369/1114/279 374/1113/279 +f 375/1120/280 376/1119/280 374/1118/280 373/1117/280 +f 374/1124/281 369/1123/281 370/1122/281 373/1121/281 +f 375/1128/282 372/1127/282 371/1126/282 376/1125/282 +o tail +v 0.3125 1.2525016417250097 5.982312549255369 +v 0.3125 1.2197916690731698 5.35816909003376 +v 0.3125 0.628358182503401 6.015022521907208 +v 0.3125 0.5956482098515612 5.3908790626856 +v -0.3125 1.2197916690731698 5.35816909003376 +v -0.3125 1.2525016417250097 5.982312549255369 +v -0.3125 0.5956482098515612 5.3908790626856 +v -0.3125 0.628358182503401 6.015022521907208 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.05233595624294383 -0.9986295347545739 +vn 1 0 0 +vn 0 0.05233595624294383 0.9986295347545739 +vn -1 0 0 +vn 0 0.9986295347545739 -0.05233595624294383 +vn 0 -0.9986295347545739 0.05233595624294383 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 380/1132/283 383/1131/283 381/1130/283 378/1129/283 +f 379/1136/284 380/1135/284 378/1134/284 377/1133/284 +f 384/1140/285 379/1139/285 377/1138/285 382/1137/285 +f 383/1144/286 384/1143/286 382/1142/286 381/1141/286 +f 382/1148/287 377/1147/287 378/1146/287 381/1145/287 +f 383/1152/288 380/1151/288 379/1150/288 384/1149/288 +o tail +v 0.0625 1.4956170308832855 5.844399868350311 +v 0.0625 1.4759910472921813 5.469913792817346 +v 0.0625 1.245959647194642 5.857483857411047 +v 0.0625 1.2263336636035378 5.482997781878082 +v -0.0625 1.4759910472921813 5.469913792817346 +v -0.0625 1.4956170308832855 5.844399868350311 +v -0.0625 1.2263336636035378 5.482997781878082 +v -0.0625 1.245959647194642 5.857483857411047 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.05233595624294383 -0.9986295347545739 +vn 1 0 0 +vn 0 0.05233595624294383 0.9986295347545739 +vn -1 0 0 +vn 0 0.9986295347545739 -0.05233595624294383 +vn 0 -0.9986295347545739 0.05233595624294383 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 388/1156/289 391/1155/289 389/1154/289 386/1153/289 +f 387/1160/290 388/1159/290 386/1158/290 385/1157/290 +f 392/1164/291 387/1163/291 385/1162/291 390/1161/291 +f 391/1168/292 392/1167/292 390/1166/292 389/1165/292 +f 390/1172/293 385/1171/293 386/1170/293 389/1169/293 +f 391/1176/294 388/1175/294 387/1174/294 392/1173/294 +o tail +v 0.3125 1.3062130944851622 6.594053052279986 +v 0.3125 1.2517407552678759 5.971431365972645 +v 0.3125 0.6835914081778212 6.648525391497273 +v 0.3125 0.6291190689605348 6.025903705189932 +v -0.3125 1.2517407552678759 5.971431365972645 +v -0.3125 1.3062130944851622 6.594053052279986 +v -0.3125 0.6291190689605348 6.025903705189932 +v -0.3125 0.6835914081778212 6.648525391497273 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.08715574274765817 -0.9961946980917457 +vn 1 0 0 +vn 0 0.08715574274765817 0.9961946980917457 +vn -1 0 0 +vn 0 0.9961946980917457 -0.08715574274765817 +vn 0 -0.9961946980917457 0.08715574274765817 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 396/1180/295 399/1179/295 397/1178/295 394/1177/295 +f 395/1184/296 396/1183/296 394/1182/296 393/1181/296 +f 400/1188/297 395/1187/297 393/1186/297 398/1185/297 +f 399/1192/298 400/1191/298 398/1190/298 397/1189/298 +f 398/1196/299 393/1195/299 394/1194/299 397/1193/299 +f 399/1200/300 396/1199/300 395/1198/300 400/1197/300 +o tail +v 0.0625 1.544367301164641 6.447739779331603 +v 0.0625 1.5116838976342697 6.074166767547199 +v 0.0625 1.295318626641705 6.469528715018518 +v 0.0625 1.2626352231113331 6.095955703234114 +v -0.0625 1.5116838976342697 6.074166767547199 +v -0.0625 1.544367301164641 6.447739779331603 +v -0.0625 1.2626352231113331 6.095955703234114 +v -0.0625 1.295318626641705 6.469528715018518 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.08715574274765817 -0.9961946980917457 +vn 1 0 0 +vn 0 0.08715574274765817 0.9961946980917457 +vn -1 0 0 +vn 0 0.9961946980917457 -0.08715574274765817 +vn 0 -0.9961946980917457 0.08715574274765817 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 404/1204/301 407/1203/301 405/1202/301 402/1201/301 +f 403/1208/302 404/1207/302 402/1206/302 401/1205/302 +f 408/1212/303 403/1211/303 401/1210/303 406/1209/303 +f 407/1216/304 408/1215/304 406/1214/304 405/1213/304 +f 406/1220/305 401/1219/305 402/1218/305 405/1217/305 +f 407/1224/306 404/1223/306 403/1222/306 408/1221/306 +o tail +v 0.3125 1.3913442109132734 7.196715170802091 +v 0.3125 1.304361022813232 6.577797627838609 +v 0.3125 0.772426667949792 7.283698358902132 +v 0.3125 0.6854434798497508 6.66478081593865 +v -0.3125 1.304361022813232 6.577797627838609 +v -0.3125 1.3913442109132734 7.196715170802091 +v -0.3125 0.6854434798497508 6.66478081593865 +v -0.3125 0.772426667949792 7.283698358902132 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.13917310096006544 -0.9902680687415704 +vn 1 0 0 +vn 0 0.13917310096006544 0.9902680687415704 +vn -1 0 0 +vn 0 0.9902680687415704 -0.13917310096006544 +vn 0 -0.9902680687415704 0.13917310096006544 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 412/1228/307 415/1227/307 413/1226/307 410/1225/307 +f 411/1232/308 412/1231/308 410/1230/308 409/1229/308 +f 416/1236/309 411/1235/309 409/1234/309 414/1233/309 +f 415/1240/310 416/1239/310 414/1238/310 413/1237/310 +f 414/1244/311 409/1243/311 410/1242/311 413/1241/311 +f 415/1248/312 412/1247/312 411/1246/312 416/1245/312 +o tail +v 0.0625 1.6215145904786574 7.038138386969378 +v 0.0625 1.5693246776186331 6.666787861191289 +v 0.0625 1.373947573293265 7.0729316622093945 +v 0.0625 1.3217576604332402 6.701581136431305 +v -0.0625 1.5693246776186331 6.666787861191289 +v -0.0625 1.6215145904786574 7.038138386969378 +v -0.0625 1.3217576604332402 6.701581136431305 +v -0.0625 1.373947573293265 7.0729316622093945 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.13917310096006544 -0.9902680687415704 +vn 1 0 0 +vn 0 0.13917310096006544 0.9902680687415704 +vn -1 0 0 +vn 0 0.9902680687415704 -0.13917310096006544 +vn 0 -0.9902680687415704 0.13917310096006544 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 420/1252/313 423/1251/313 421/1250/313 418/1249/313 +f 419/1256/314 420/1255/314 418/1254/314 417/1253/314 +f 424/1260/315 419/1259/315 417/1258/315 422/1257/315 +f 423/1264/316 424/1263/316 422/1262/316 421/1261/316 +f 422/1268/317 417/1267/317 418/1266/317 421/1265/317 +f 423/1272/318 420/1271/318 419/1270/318 424/1269/318 +o tail +v 0.3125 1.507899556369268 7.79409594345173 +v 0.3125 1.3886439342589278 7.180578953796941 +v 0.3125 0.894382566714478 7.9133515655620705 +v 0.3125 0.7751269446041376 7.299834575907282 +v -0.3125 1.3886439342589278 7.180578953796941 +v -0.3125 1.507899556369268 7.79409594345173 +v -0.3125 0.7751269446041376 7.299834575907282 +v -0.3125 0.894382566714478 7.9133515655620705 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.1908089953765448 -0.981627183447664 +vn 1 0 0 +vn 0 0.1908089953765448 0.981627183447664 +vn -1 0 0 +vn 0 0.981627183447664 -0.1908089953765448 +vn 0 -0.981627183447664 0.1908089953765448 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 428/1276/319 431/1275/319 429/1274/319 426/1273/319 +f 427/1280/320 428/1279/320 426/1278/320 425/1277/320 +f 432/1284/321 427/1283/321 425/1282/321 430/1281/321 +f 431/1288/322 432/1287/322 430/1286/322 429/1285/322 +f 430/1292/323 425/1291/323 426/1290/323 429/1289/323 +f 431/1296/324 428/1295/324 427/1294/324 432/1293/324 +o tail +v 0.0625 1.7294552278091162 7.623690296676635 +v 0.0625 1.6579018545429118 7.255580102883762 +v 0.0625 1.4840484319472 7.6713925455207725 +v 0.0625 1.4124950586809957 7.303282351727899 +v -0.0625 1.6579018545429118 7.255580102883762 +v -0.0625 1.7294552278091162 7.623690296676635 +v -0.0625 1.4124950586809957 7.303282351727899 +v -0.0625 1.4840484319472 7.6713925455207725 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.1908089953765448 -0.981627183447664 +vn 1 0 0 +vn 0 0.1908089953765448 0.981627183447664 +vn -1 0 0 +vn 0 0.981627183447664 -0.1908089953765448 +vn 0 -0.981627183447664 0.1908089953765448 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 436/1300/325 439/1299/325 437/1298/325 434/1297/325 +f 435/1304/326 436/1303/326 434/1302/326 433/1301/326 +f 440/1308/327 435/1307/327 433/1306/327 438/1305/327 +f 439/1312/328 440/1311/328 438/1310/328 437/1309/328 +f 438/1316/329 433/1315/329 434/1314/329 437/1313/329 +f 439/1320/330 436/1319/330 435/1318/330 440/1317/330 +o tail +v 0.3125 1.6367569935322868 8.40009360158498 +v 0.3125 1.506812186771187 7.788751351126351 +v 0.3125 1.025414743073658 8.53003840834608 +v 0.3125 0.8954699363125587 7.918696157887451 +v -0.3125 1.506812186771187 7.788751351126351 +v -0.3125 1.6367569935322868 8.40009360158498 +v -0.3125 0.8954699363125587 7.918696157887451 +v -0.3125 1.025414743073658 8.53003840834608 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.20791169081775934 -0.9781476007338057 +vn 1 0 0 +vn 0 0.20791169081775934 0.9781476007338057 +vn -1 0 0 +vn 0 0.9781476007338057 -0.20791169081775934 +vn 0 -0.9781476007338057 0.20791169081775934 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 444/1324/331 447/1323/331 445/1322/331 442/1321/331 +f 443/1328/332 444/1327/332 442/1326/332 441/1325/332 +f 448/1332/333 443/1331/333 441/1330/333 446/1329/333 +f 447/1336/334 448/1335/334 446/1334/334 445/1333/334 +f 446/1340/335 441/1339/335 442/1338/335 445/1337/335 +f 447/1344/336 444/1343/336 443/1342/336 448/1341/336 +o tail +v 0.0625 1.8553049323635182 8.225847228788815 +v 0.0625 1.7773380483068584 7.8590418785136364 +v 0.0625 1.6107680321800668 8.277825151493253 +v 0.0625 1.532801148123407 7.911019801218078 +v -0.0625 1.7773380483068584 7.8590418785136364 +v -0.0625 1.8553049323635182 8.225847228788815 +v -0.0625 1.532801148123407 7.911019801218078 +v -0.0625 1.6107680321800668 8.277825151493253 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.20791169081775934 -0.9781476007338057 +vn 1 0 0 +vn 0 0.20791169081775934 0.9781476007338057 +vn -1 0 0 +vn 0 0.9781476007338057 -0.20791169081775934 +vn 0 -0.9781476007338057 0.20791169081775934 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 452/1348/337 455/1347/337 453/1346/337 450/1345/337 +f 451/1352/338 452/1351/338 450/1350/338 449/1349/338 +f 456/1356/339 451/1355/339 449/1354/339 454/1353/339 +f 455/1360/340 456/1359/340 454/1358/340 453/1357/340 +f 454/1364/341 449/1363/341 450/1362/341 453/1361/341 +f 455/1368/342 452/1367/342 451/1366/342 456/1365/342 +o tail +v 0.3125 1.7570999852407079 9.018955183565149 +v 0.3125 1.6378443631303679 8.405438193910358 +v 0.3125 1.143582995585918 9.13821080567549 +v 0.3125 1.0243273734755776 8.524693816020699 +v -0.3125 1.6378443631303679 8.405438193910358 +v -0.3125 1.7570999852407079 9.018955183565149 +v -0.3125 1.0243273734755776 8.524693816020699 +v -0.3125 1.143582995585918 9.13821080567549 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.1908089953765448 -0.981627183447664 +vn 1 0 0 +vn 0 0.1908089953765448 0.981627183447664 +vn -1 0 0 +vn 0 0.981627183447664 -0.1908089953765448 +vn 0 -0.981627183447664 0.1908089953765448 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 460/1372/343 463/1371/343 461/1370/343 458/1369/343 +f 459/1376/344 460/1375/344 458/1374/344 457/1373/344 +f 464/1380/345 459/1379/345 457/1378/345 462/1377/345 +f 463/1384/346 464/1383/346 462/1382/346 461/1381/346 +f 462/1388/347 457/1387/347 458/1386/347 461/1385/347 +f 463/1392/348 460/1391/348 459/1390/348 464/1389/348 +o tail +v 0.0625 1.978655656680556 8.848549536790054 +v 0.0625 1.9071022834143516 8.480439342997181 +v 0.0625 1.73324886081864 8.89625178563419 +v 0.0625 1.6616954875524357 8.528141591841317 +v -0.0625 1.9071022834143516 8.480439342997181 +v -0.0625 1.978655656680556 8.848549536790054 +v -0.0625 1.6616954875524357 8.528141591841317 +v -0.0625 1.73324886081864 8.89625178563419 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.1908089953765448 -0.981627183447664 +vn 1 0 0 +vn 0 0.1908089953765448 0.981627183447664 +vn -1 0 0 +vn 0 0.981627183447664 -0.1908089953765448 +vn 0 -0.981627183447664 0.1908089953765448 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 468/1396/349 471/1395/349 469/1394/349 466/1393/349 +f 467/1400/350 468/1399/350 466/1398/350 465/1397/350 +f 472/1404/351 467/1403/351 465/1402/351 470/1401/351 +f 471/1408/352 472/1407/352 470/1406/352 469/1405/352 +f 470/1412/353 465/1411/353 466/1410/353 469/1409/353 +f 471/1416/354 468/1415/354 467/1414/354 472/1413/354 +o tail +v 0.3125 1.8567656374994383 9.64700243716721 +v 0.3125 1.7589940968492939 9.029697224295248 +v 0.3125 1.239460424627477 9.744773977817353 +v 0.3125 1.1416888839773327 9.127468764945391 +v -0.3125 1.7589940968492939 9.029697224295248 +v -0.3125 1.8567656374994383 9.64700243716721 +v -0.3125 1.1416888839773327 9.127468764945391 +v -0.3125 1.239460424627477 9.744773977817353 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.15643446504023087 -0.9876883405951378 +vn 1 0 0 +vn 0 0.15643446504023087 0.9876883405951378 +vn -1 0 0 +vn 0 0.9876883405951378 -0.15643446504023087 +vn 0 -0.9876883405951378 0.15643446504023087 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 476/1420/355 479/1419/355 477/1418/355 474/1417/355 +f 475/1424/356 476/1423/356 474/1422/356 473/1421/356 +f 480/1428/357 475/1427/357 473/1426/357 478/1425/357 +f 479/1432/358 480/1431/358 478/1430/358 477/1429/358 +f 478/1436/359 473/1435/359 474/1434/359 477/1433/359 +f 479/1440/360 476/1439/360 475/1438/360 480/1437/360 +o tail +v 0.0625 2.084133414518194 9.484432778332758 +v 0.0625 2.025470490128107 9.114049650609582 +v 0.0625 1.8372113293694095 9.523541394592817 +v 0.0625 1.7785484049793228 9.15315826686964 +v -0.0625 2.025470490128107 9.114049650609582 +v -0.0625 2.084133414518194 9.484432778332758 +v -0.0625 1.7785484049793228 9.15315826686964 +v -0.0625 1.8372113293694095 9.523541394592817 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.15643446504023087 -0.9876883405951378 +vn 1 0 0 +vn 0 0.15643446504023087 0.9876883405951378 +vn -1 0 0 +vn 0 0.9876883405951378 -0.15643446504023087 +vn 0 -0.9876883405951378 0.15643446504023087 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 484/1444/361 487/1443/361 485/1442/361 482/1441/361 +f 483/1448/362 484/1447/362 482/1446/362 481/1445/362 +f 488/1452/363 483/1451/363 481/1450/363 486/1449/363 +f 487/1456/364 488/1455/364 486/1454/364 485/1453/364 +f 486/1460/365 481/1459/365 482/1458/365 485/1457/365 +f 487/1464/366 484/1463/366 483/1462/366 488/1461/366 +o tail +v 0.3125 1.924231412908326 10.284799247326308 +v 0.3125 1.858901123366043 9.663223062721139 +v 0.3125 1.3026552283031554 10.350129536868593 +v 0.3125 1.237324938760872 9.728553352263424 +v -0.3125 1.858901123366043 9.663223062721139 +v -0.3125 1.924231412908326 10.284799247326308 +v -0.3125 1.237324938760872 9.728553352263424 +v -0.3125 1.3026552283031554 10.350129536868593 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.10452846326765347 -0.9945218953682733 +vn 1 0 0 +vn 0 0.10452846326765347 0.9945218953682733 +vn -1 0 0 +vn 0 0.9945218953682733 -0.10452846326765347 +vn 0 -0.9945218953682733 0.10452846326765347 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 492/1468/367 495/1467/367 493/1466/367 490/1465/367 +f 491/1472/368 492/1471/368 490/1470/368 489/1469/368 +f 496/1476/369 491/1475/369 489/1474/369 494/1473/369 +f 495/1480/370 496/1479/370 494/1478/370 493/1477/370 +f 494/1484/371 489/1483/371 490/1482/371 493/1481/371 +f 495/1488/372 492/1487/372 491/1486/372 496/1485/372 +o tail +v 0.0625 2.159795828841938 10.134351894588363 +v 0.0625 2.120597655116568 9.76140618382526 +v 0.0625 1.91116535499987 10.160484010405275 +v 0.0625 1.8719671812745 9.787538299642172 +v -0.0625 2.120597655116568 9.76140618382526 +v -0.0625 2.159795828841938 10.134351894588363 +v -0.0625 1.8719671812745 9.787538299642172 +v -0.0625 1.91116535499987 10.160484010405275 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.10452846326765347 -0.9945218953682733 +vn 1 0 0 +vn 0 0.10452846326765347 0.9945218953682733 +vn -1 0 0 +vn 0 0.9945218953682733 -0.10452846326765347 +vn 0 -0.9945218953682733 0.10452846326765347 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 500/1492/373 503/1491/373 501/1490/373 498/1489/373 +f 499/1496/374 500/1495/374 498/1494/374 497/1493/374 +f 504/1500/375 499/1499/375 497/1498/375 502/1497/375 +f 503/1504/376 504/1503/376 502/1502/376 501/1501/376 +f 502/1508/377 497/1507/377 498/1506/377 501/1505/377 +f 503/1512/378 500/1511/378 499/1510/378 504/1509/378 +o tail +v 0.3125 1.958225022868385 10.92525286499314 +v 0.3125 1.9255150502165446 10.301109405771532 +v 0.3125 1.3340815636467762 10.957962837644981 +v 0.3125 1.3013715909949364 10.333819378423373 +v -0.3125 1.9255150502165446 10.301109405771532 +v -0.3125 1.958225022868385 10.92525286499314 +v -0.3125 1.3013715909949364 10.333819378423373 +v -0.3125 1.3340815636467762 10.957962837644981 +vt 0.7890625 0.5546875 +vt 0.828125 0.5546875 +vt 0.828125 0.515625 +vt 0.7890625 0.515625 +vt 0.75 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.515625 +vt 0.75 0.515625 +vt 0.8671875 0.5546875 +vt 0.90625 0.5546875 +vt 0.90625 0.515625 +vt 0.8671875 0.515625 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vt 0.8671875 0.515625 +vt 0.828125 0.515625 +vt 0.828125 0.5546875 +vt 0.7890625 0.5546875 +vt 0.7890625 0.59375 +vt 0.828125 0.59375 +vt 0.8671875 0.59375 +vt 0.828125 0.59375 +vt 0.828125 0.5546875 +vt 0.8671875 0.5546875 +vn 0 -0.05233595624294385 -0.998629534754574 +vn 1 0 0 +vn 0 0.05233595624294385 0.998629534754574 +vn -1 0 0 +vn 0 0.998629534754574 -0.05233595624294385 +vn 0 -0.998629534754574 0.05233595624294385 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 508/1516/379 511/1515/379 509/1514/379 506/1513/379 +f 507/1520/380 508/1519/380 506/1518/380 505/1517/380 +f 512/1524/381 507/1523/381 505/1522/381 510/1521/381 +f 511/1528/382 512/1527/382 510/1526/382 509/1525/382 +f 510/1532/383 505/1531/383 506/1530/383 509/1529/383 +f 511/1536/384 508/1535/384 507/1534/384 512/1533/384 +o tail +v 0.0625 2.20134041202666 10.787340184088084 +v 0.0625 2.1817144284355567 10.412854108555118 +v 0.0625 1.9516830283380169 10.80042417314882 +v 0.0625 1.9320570447469132 10.425938097615854 +v -0.0625 2.1817144284355567 10.412854108555118 +v -0.0625 2.20134041202666 10.787340184088084 +v -0.0625 1.9320570447469132 10.425938097615854 +v -0.0625 1.9516830283380169 10.80042417314882 +vt 0.2109375 0.9765625 +vt 0.21875 0.9765625 +vt 0.21875 0.9609375 +vt 0.2109375 0.9609375 +vt 0.1875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 0.9609375 +vt 0.1875 0.9609375 +vt 0.2421875 0.9765625 +vt 0.25 0.9765625 +vt 0.25 0.9609375 +vt 0.2421875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2421875 0.9765625 +vt 0.2421875 0.9609375 +vt 0.21875 0.9609375 +vt 0.21875 0.9765625 +vt 0.2109375 0.9765625 +vt 0.2109375 1 +vt 0.21875 1 +vt 0.2265625 1 +vt 0.21875 1 +vt 0.21875 0.9765625 +vt 0.2265625 0.9765625 +vn 0 -0.05233595624294385 -0.998629534754574 +vn 1 0 0 +vn 0 0.05233595624294385 0.998629534754574 +vn -1 0 0 +vn 0 0.998629534754574 -0.05233595624294385 +vn 0 -0.998629534754574 0.05233595624294385 +usemtl m_e48612ca-0475-df4f-6d9d-44f43691817f +f 516/1540/385 519/1539/385 517/1538/385 514/1537/385 +f 515/1544/386 516/1543/386 514/1542/386 513/1541/386 +f 520/1548/387 515/1547/387 513/1546/387 518/1545/387 +f 519/1552/388 520/1551/388 518/1550/388 517/1549/388 +f 518/1556/389 513/1555/389 514/1554/389 517/1553/389 +f 519/1560/390 516/1559/390 515/1558/390 520/1557/390 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/enderman.obj b/renderer/viewer/three/entity/models/enderman.obj new file mode 100644 index 00000000..6b405674 --- /dev/null +++ b/renderer/viewer/three/entity/models/enderman.obj @@ -0,0 +1,325 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o Head +v 0.21875 2.96875 0.21875 +v 0.21875 2.96875 -0.21875 +v 0.21875 2.53125 0.21875 +v 0.21875 2.53125 -0.21875 +v -0.21875 2.96875 -0.21875 +v -0.21875 2.96875 0.21875 +v -0.21875 2.53125 -0.21875 +v -0.21875 2.53125 0.21875 +vt 0.125 0.75 +vt 0.25 0.75 +vt 0.25 0.5 +vt 0.125 0.5 +vt 0 0.75 +vt 0.125 0.75 +vt 0.125 0.5 +vt 0 0.5 +vt 0.375 0.75 +vt 0.5 0.75 +vt 0.5 0.5 +vt 0.375 0.5 +vt 0.25 0.75 +vt 0.375 0.75 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.75 +vt 0.125 0.75 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.75 +vt 0.375 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_981d8dac-1361-c897-71b0-9983b6b479fc +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o Head layer +v 0.21875 2.84375 0.21875 +v 0.21875 2.84375 -0.21875 +v 0.21875 2.40625 0.21875 +v 0.21875 2.40625 -0.21875 +v -0.21875 2.84375 -0.21875 +v -0.21875 2.84375 0.21875 +v -0.21875 2.40625 -0.21875 +v -0.21875 2.40625 0.21875 +vt 0.125 0.25 +vt 0.25 0.25 +vt 0.25 0 +vt 0.125 0 +vt 0 0.25 +vt 0.125 0.25 +vt 0.125 0 +vt 0 0 +vt 0.375 0.25 +vt 0.5 0.25 +vt 0.5 0 +vt 0.375 0 +vt 0.25 0.25 +vt 0.375 0.25 +vt 0.375 0 +vt 0.25 0 +vt 0.25 0.25 +vt 0.125 0.25 +vt 0.125 0.5 +vt 0.25 0.5 +vt 0.375 0.5 +vt 0.25 0.5 +vt 0.25 0.25 +vt 0.375 0.25 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_981d8dac-1361-c897-71b0-9983b6b479fc +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o Body +v 0.25 2.375 0.125 +v 0.25 2.375 -0.125 +v 0.25 1.625 0.125 +v 0.25 1.625 -0.125 +v -0.25 2.375 -0.125 +v -0.25 2.375 0.125 +v -0.25 1.625 -0.125 +v -0.25 1.625 0.125 +vt 0.5625 0.375 +vt 0.6875 0.375 +vt 0.6875 0 +vt 0.5625 0 +vt 0.5 0.375 +vt 0.5625 0.375 +vt 0.5625 0 +vt 0.5 0 +vt 0.75 0.375 +vt 0.875 0.375 +vt 0.875 0 +vt 0.75 0 +vt 0.6875 0.375 +vt 0.75 0.375 +vt 0.75 0 +vt 0.6875 0 +vt 0.6875 0.375 +vt 0.5625 0.375 +vt 0.5625 0.5 +vt 0.6875 0.5 +vt 0.8125 0.5 +vt 0.6875 0.5 +vt 0.6875 0.375 +vt 0.8125 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_981d8dac-1361-c897-71b0-9983b6b479fc +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o RightArm +v 0.375 2.375 0.0625 +v 0.375 2.375 -0.0625 +v 0.375 0.5 0.0625 +v 0.375 0.5 -0.0625 +v 0.25 2.375 -0.0625 +v 0.25 2.375 0.0625 +v 0.25 0.5 -0.0625 +v 0.25 0.5 0.0625 +vt 0.90625 0.9375 +vt 0.9375 0.9375 +vt 0.9375 0 +vt 0.90625 0 +vt 0.875 0.9375 +vt 0.90625 0.9375 +vt 0.90625 0 +vt 0.875 0 +vt 0.96875 0.9375 +vt 1 0.9375 +vt 1 0 +vt 0.96875 0 +vt 0.9375 0.9375 +vt 0.96875 0.9375 +vt 0.96875 0 +vt 0.9375 0 +vt 0.9375 0.9375 +vt 0.90625 0.9375 +vt 0.90625 1 +vt 0.9375 1 +vt 0.96875 1 +vt 0.9375 1 +vt 0.9375 0.9375 +vt 0.96875 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_981d8dac-1361-c897-71b0-9983b6b479fc +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o LeftArm +v -0.25 2.375 0.0625 +v -0.25 2.375 -0.0625 +v -0.25 0.5 0.0625 +v -0.25 0.5 -0.0625 +v -0.375 2.375 -0.0625 +v -0.375 2.375 0.0625 +v -0.375 0.5 -0.0625 +v -0.375 0.5 0.0625 +vt 0.9375 0.9375 +vt 0.90625 0.9375 +vt 0.90625 0 +vt 0.9375 0 +vt 0.96875 0.9375 +vt 0.9375 0.9375 +vt 0.9375 0 +vt 0.96875 0 +vt 1 0.9375 +vt 0.96875 0.9375 +vt 0.96875 0 +vt 1 0 +vt 0.90625 0.9375 +vt 0.875 0.9375 +vt 0.875 0 +vt 0.90625 0 +vt 0.90625 0.9375 +vt 0.9375 0.9375 +vt 0.9375 1 +vt 0.90625 1 +vt 0.9375 1 +vt 0.96875 1 +vt 0.96875 0.9375 +vt 0.9375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_981d8dac-1361-c897-71b0-9983b6b479fc +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o RightLeg +v 0.1875 1.625 0.0625 +v 0.1875 1.625 -0.0625 +v 0.1875 -0.25 0.0625 +v 0.1875 -0.25 -0.0625 +v 0.0625 1.625 -0.0625 +v 0.0625 1.625 0.0625 +v 0.0625 -0.25 -0.0625 +v 0.0625 -0.25 0.0625 +vt 0.90625 0.9375 +vt 0.9375 0.9375 +vt 0.9375 0 +vt 0.90625 0 +vt 0.875 0.9375 +vt 0.90625 0.9375 +vt 0.90625 0 +vt 0.875 0 +vt 0.96875 0.9375 +vt 1 0.9375 +vt 1 0 +vt 0.96875 0 +vt 0.9375 0.9375 +vt 0.96875 0.9375 +vt 0.96875 0 +vt 0.9375 0 +vt 0.9375 0.9375 +vt 0.90625 0.9375 +vt 0.90625 1 +vt 0.9375 1 +vt 0.96875 1 +vt 0.9375 1 +vt 0.9375 0.9375 +vt 0.96875 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_981d8dac-1361-c897-71b0-9983b6b479fc +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o LeftLeg +v -0.0625 1.625 0.0625 +v -0.0625 1.625 -0.0625 +v -0.0625 -0.25 0.0625 +v -0.0625 -0.25 -0.0625 +v -0.1875 1.625 -0.0625 +v -0.1875 1.625 0.0625 +v -0.1875 -0.25 -0.0625 +v -0.1875 -0.25 0.0625 +vt 0.9375 0.9375 +vt 0.90625 0.9375 +vt 0.90625 0 +vt 0.9375 0 +vt 0.96875 0.9375 +vt 0.9375 0.9375 +vt 0.9375 0 +vt 0.96875 0 +vt 1 0.9375 +vt 0.96875 0.9375 +vt 0.96875 0 +vt 1 0 +vt 0.90625 0.9375 +vt 0.875 0.9375 +vt 0.875 0 +vt 0.90625 0 +vt 0.90625 0.9375 +vt 0.9375 0.9375 +vt 0.9375 1 +vt 0.90625 1 +vt 0.9375 1 +vt 0.96875 1 +vt 0.96875 0.9375 +vt 0.9375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_981d8dac-1361-c897-71b0-9983b6b479fc +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/endermite.obj b/renderer/viewer/three/entity/models/endermite.obj new file mode 100644 index 00000000..595376cd --- /dev/null +++ b/renderer/viewer/three/entity/models/endermite.obj @@ -0,0 +1,187 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o section_2 +v 0.09375 0.1875 0.21875 +v 0.09375 0.1875 0.15625 +v 0.09375 0 0.21875 +v 0.09375 0 0.15625 +v -0.09375 0.1875 0.15625 +v -0.09375 0.1875 0.21875 +v -0.09375 0 0.15625 +v -0.09375 0 0.21875 +vt 0.015625 0.53125 +vt 0.0625 0.53125 +vt 0.0625 0.4375 +vt 0.015625 0.4375 +vt 0 0.53125 +vt 0.015625 0.53125 +vt 0.015625 0.4375 +vt 0 0.4375 +vt 0.078125 0.53125 +vt 0.125 0.53125 +vt 0.125 0.4375 +vt 0.078125 0.4375 +vt 0.0625 0.53125 +vt 0.078125 0.53125 +vt 0.078125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.53125 +vt 0.015625 0.53125 +vt 0.015625 0.5625 +vt 0.0625 0.5625 +vt 0.109375 0.5625 +vt 0.0625 0.5625 +vt 0.0625 0.53125 +vt 0.109375 0.53125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_50f00cc5-283b-b301-14d6-d02da334960b +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o section_0 +v 0.125 0.1875 -0.15000000000000002 +v 0.125 0.1875 -0.275 +v 0.125 0 -0.15000000000000002 +v 0.125 0 -0.275 +v -0.125 0.1875 -0.275 +v -0.125 0.1875 -0.15000000000000002 +v -0.125 0 -0.275 +v -0.125 0 -0.15000000000000002 +vt 0.03125 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.84375 +vt 0.03125 0.84375 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.84375 +vt 0 0.84375 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.84375 +vt 0.125 0.84375 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.84375 +vt 0.09375 0.84375 +vt 0.09375 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.09375 1 +vt 0.15625 1 +vt 0.09375 1 +vt 0.09375 0.9375 +vt 0.15625 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_50f00cc5-283b-b301-14d6-d02da334960b +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o section_1 +v 0.1875 0.25 0.16249999999999998 +v 0.1875 0.25 -0.15000000000000002 +v 0.1875 0 0.16249999999999998 +v 0.1875 0 -0.15000000000000002 +v -0.1875 0.25 -0.15000000000000002 +v -0.1875 0.25 0.16249999999999998 +v -0.1875 0 -0.15000000000000002 +v -0.1875 0 0.16249999999999998 +vt 0.078125 0.6875 +vt 0.171875 0.6875 +vt 0.171875 0.5625 +vt 0.078125 0.5625 +vt 0 0.6875 +vt 0.078125 0.6875 +vt 0.078125 0.5625 +vt 0 0.5625 +vt 0.25 0.6875 +vt 0.34375 0.6875 +vt 0.34375 0.5625 +vt 0.25 0.5625 +vt 0.171875 0.6875 +vt 0.25 0.6875 +vt 0.25 0.5625 +vt 0.171875 0.5625 +vt 0.171875 0.6875 +vt 0.078125 0.6875 +vt 0.078125 0.84375 +vt 0.171875 0.84375 +vt 0.265625 0.84375 +vt 0.171875 0.84375 +vt 0.171875 0.6875 +vt 0.265625 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_50f00cc5-283b-b301-14d6-d02da334960b +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o section_3 +v 0.03125 0.125 0.28125 +v 0.03125 0.125 0.21875 +v 0.03125 0 0.28125 +v 0.03125 0 0.21875 +v -0.03125 0.125 0.21875 +v -0.03125 0.125 0.28125 +v -0.03125 0 0.21875 +v -0.03125 0 0.28125 +vt 0.015625 0.40625 +vt 0.03125 0.40625 +vt 0.03125 0.34375 +vt 0.015625 0.34375 +vt 0 0.40625 +vt 0.015625 0.40625 +vt 0.015625 0.34375 +vt 0 0.34375 +vt 0.046875 0.40625 +vt 0.0625 0.40625 +vt 0.0625 0.34375 +vt 0.046875 0.34375 +vt 0.03125 0.40625 +vt 0.046875 0.40625 +vt 0.046875 0.34375 +vt 0.03125 0.34375 +vt 0.03125 0.40625 +vt 0.015625 0.40625 +vt 0.015625 0.4375 +vt 0.03125 0.4375 +vt 0.046875 0.4375 +vt 0.03125 0.4375 +vt 0.03125 0.40625 +vt 0.046875 0.40625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_50f00cc5-283b-b301-14d6-d02da334960b +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/fox.obj b/renderer/viewer/three/entity/models/fox.obj new file mode 100644 index 00000000..a0645b37 --- /dev/null +++ b/renderer/viewer/three/entity/models/fox.obj @@ -0,0 +1,463 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.1875 0.6875 -0.1875 +v 0.1875 0.3125 -0.1875 +v 0.1875 0.6875 0.5 +v 0.1875 0.3124999999999999 0.5 +v -0.1875 0.3125 -0.1875 +v -0.1875 0.6875 -0.1875 +v -0.1875 0.3124999999999999 0.5 +v -0.1875 0.6875 0.5 +vt 0.625 0.34375 +vt 0.75 0.34375 +vt 0.75 0 +vt 0.625 0 +vt 0.5 0.34375 +vt 0.625 0.34375 +vt 0.625 0 +vt 0.5 0 +vt 0.875 0.34375 +vt 1 0.34375 +vt 1 0 +vt 0.875 0 +vt 0.75 0.34375 +vt 0.875 0.34375 +vt 0.875 0 +vt 0.75 0 +vt 0.75 0.34375 +vt 0.625 0.34375 +vt 0.625 0.53125 +vt 0.75 0.53125 +vt 0.875 0.53125 +vt 0.75 0.53125 +vt 0.75 0.34375 +vt 0.875 0.34375 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o head +v 0.25 0.625 -0.1875 +v 0.25 0.625 -0.5625 +v 0.25 0.25 -0.1875 +v 0.25 0.25 -0.5625 +v -0.25 0.625 -0.5625 +v -0.25 0.625 -0.1875 +v -0.25 0.25 -0.5625 +v -0.25 0.25 -0.1875 +vt 0.14583333333333334 0.65625 +vt 0.3125 0.65625 +vt 0.3125 0.46875 +vt 0.14583333333333334 0.46875 +vt 0.020833333333333332 0.65625 +vt 0.14583333333333334 0.65625 +vt 0.14583333333333334 0.46875 +vt 0.020833333333333332 0.46875 +vt 0.4375 0.65625 +vt 0.6041666666666666 0.65625 +vt 0.6041666666666666 0.46875 +vt 0.4375 0.46875 +vt 0.3125 0.65625 +vt 0.4375 0.65625 +vt 0.4375 0.46875 +vt 0.3125 0.46875 +vt 0.3125 0.65625 +vt 0.14583333333333334 0.65625 +vt 0.14583333333333334 0.84375 +vt 0.3125 0.84375 +vt 0.4791666666666667 0.84375 +vt 0.3125 0.84375 +vt 0.3125 0.65625 +vt 0.4791666666666667 0.65625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.25 0.75 -0.4375 +v 0.25 0.75 -0.5 +v 0.25 0.625 -0.4375 +v 0.25 0.625 -0.5 +v 0.125 0.75 -0.5 +v 0.125 0.75 -0.4375 +v 0.125 0.625 -0.5 +v 0.125 0.625 -0.4375 +vt 0.1875 0.9375 +vt 0.22916666666666666 0.9375 +vt 0.22916666666666666 0.875 +vt 0.1875 0.875 +vt 0.16666666666666666 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.875 +vt 0.16666666666666666 0.875 +vt 0.25 0.9375 +vt 0.2916666666666667 0.9375 +vt 0.2916666666666667 0.875 +vt 0.25 0.875 +vt 0.22916666666666666 0.9375 +vt 0.25 0.9375 +vt 0.25 0.875 +vt 0.22916666666666666 0.875 +vt 0.22916666666666666 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.96875 +vt 0.22916666666666666 0.96875 +vt 0.2708333333333333 0.96875 +vt 0.22916666666666666 0.96875 +vt 0.22916666666666666 0.9375 +vt 0.2708333333333333 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v -0.125 0.75 -0.4375 +v -0.125 0.75 -0.5 +v -0.125 0.625 -0.4375 +v -0.125 0.625 -0.5 +v -0.25 0.75 -0.5 +v -0.25 0.75 -0.4375 +v -0.25 0.625 -0.5 +v -0.25 0.625 -0.4375 +vt 0.3333333333333333 0.9375 +vt 0.375 0.9375 +vt 0.375 0.875 +vt 0.3333333333333333 0.875 +vt 0.3125 0.9375 +vt 0.3333333333333333 0.9375 +vt 0.3333333333333333 0.875 +vt 0.3125 0.875 +vt 0.3958333333333333 0.9375 +vt 0.4375 0.9375 +vt 0.4375 0.875 +vt 0.3958333333333333 0.875 +vt 0.375 0.9375 +vt 0.3958333333333333 0.9375 +vt 0.3958333333333333 0.875 +vt 0.375 0.875 +vt 0.375 0.9375 +vt 0.3333333333333333 0.9375 +vt 0.3333333333333333 0.96875 +vt 0.375 0.96875 +vt 0.4166666666666667 0.96875 +vt 0.375 0.96875 +vt 0.375 0.9375 +vt 0.4166666666666667 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o head +v 0.125 0.375 -0.5625 +v 0.125 0.375 -0.75 +v 0.125 0.25 -0.5625 +v 0.125 0.25 -0.75 +v -0.125 0.375 -0.75 +v -0.125 0.375 -0.5625 +v -0.125 0.25 -0.75 +v -0.125 0.25 -0.5625 +vt 0.1875 0.34375 +vt 0.2708333333333333 0.34375 +vt 0.2708333333333333 0.28125 +vt 0.1875 0.28125 +vt 0.125 0.34375 +vt 0.1875 0.34375 +vt 0.1875 0.28125 +vt 0.125 0.28125 +vt 0.3333333333333333 0.34375 +vt 0.4166666666666667 0.34375 +vt 0.4166666666666667 0.28125 +vt 0.3333333333333333 0.28125 +vt 0.2708333333333333 0.34375 +vt 0.3333333333333333 0.34375 +vt 0.3333333333333333 0.28125 +vt 0.2708333333333333 0.28125 +vt 0.2708333333333333 0.34375 +vt 0.1875 0.34375 +vt 0.1875 0.4375 +vt 0.2708333333333333 0.4375 +vt 0.3541666666666667 0.4375 +vt 0.2708333333333333 0.4375 +vt 0.2708333333333333 0.34375 +vt 0.3541666666666667 0.34375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leg0 +v 0.18781249999999994 0.375 0.4375 +v 0.18781249999999994 0.375 0.3125 +v 0.18781249999999994 0 0.4375 +v 0.18781249999999994 0 0.3125 +v 0.06281249999999994 0.375 0.3125 +v 0.06281249999999994 0.375 0.4375 +v 0.06281249999999994 0 0.3125 +v 0.06281249999999994 0 0.4375 +vt 0.3125 0.1875 +vt 0.3541666666666667 0.1875 +vt 0.3541666666666667 0 +vt 0.3125 0 +vt 0.2708333333333333 0.1875 +vt 0.3125 0.1875 +vt 0.3125 0 +vt 0.2708333333333333 0 +vt 0.3958333333333333 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0 +vt 0.3958333333333333 0 +vt 0.3541666666666667 0.1875 +vt 0.3958333333333333 0.1875 +vt 0.3958333333333333 0 +vt 0.3541666666666667 0 +vt 0.3541666666666667 0.1875 +vt 0.3125 0.1875 +vt 0.3125 0.25 +vt 0.3541666666666667 0.25 +vt 0.3958333333333333 0.25 +vt 0.3541666666666667 0.25 +vt 0.3541666666666667 0.1875 +vt 0.3958333333333333 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o leg1 +v -0.0628125 0.375 0.4375 +v -0.0628125 0.375 0.3125 +v -0.0628125 0 0.4375 +v -0.0628125 0 0.3125 +v -0.1878125 0.375 0.3125 +v -0.1878125 0.375 0.4375 +v -0.1878125 0 0.3125 +v -0.1878125 0 0.4375 +vt 0.125 0.1875 +vt 0.16666666666666666 0.1875 +vt 0.16666666666666666 0 +vt 0.125 0 +vt 0.08333333333333333 0.1875 +vt 0.125 0.1875 +vt 0.125 0 +vt 0.08333333333333333 0 +vt 0.20833333333333334 0.1875 +vt 0.25 0.1875 +vt 0.25 0 +vt 0.20833333333333334 0 +vt 0.16666666666666666 0.1875 +vt 0.20833333333333334 0.1875 +vt 0.20833333333333334 0 +vt 0.16666666666666666 0 +vt 0.16666666666666666 0.1875 +vt 0.125 0.1875 +vt 0.125 0.25 +vt 0.16666666666666666 0.25 +vt 0.20833333333333334 0.25 +vt 0.16666666666666666 0.25 +vt 0.16666666666666666 0.1875 +vt 0.20833333333333334 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o leg2 +v 0.18781249999999994 0.375 0 +v 0.18781249999999994 0.375 -0.125 +v 0.18781249999999994 0 0 +v 0.18781249999999994 0 -0.125 +v 0.06281249999999994 0.375 -0.125 +v 0.06281249999999994 0.375 0 +v 0.06281249999999994 0 -0.125 +v 0.06281249999999994 0 0 +vt 0.3125 0.1875 +vt 0.3541666666666667 0.1875 +vt 0.3541666666666667 0 +vt 0.3125 0 +vt 0.2708333333333333 0.1875 +vt 0.3125 0.1875 +vt 0.3125 0 +vt 0.2708333333333333 0 +vt 0.3958333333333333 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0 +vt 0.3958333333333333 0 +vt 0.3541666666666667 0.1875 +vt 0.3958333333333333 0.1875 +vt 0.3958333333333333 0 +vt 0.3541666666666667 0 +vt 0.3541666666666667 0.1875 +vt 0.3125 0.1875 +vt 0.3125 0.25 +vt 0.3541666666666667 0.25 +vt 0.3958333333333333 0.25 +vt 0.3541666666666667 0.25 +vt 0.3541666666666667 0.1875 +vt 0.3958333333333333 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o leg3 +v -0.0628125 0.375 0 +v -0.0628125 0.375 -0.125 +v -0.0628125 0 0 +v -0.0628125 0 -0.125 +v -0.1878125 0.375 -0.125 +v -0.1878125 0.375 0 +v -0.1878125 0 -0.125 +v -0.1878125 0 0 +vt 0.125 0.1875 +vt 0.16666666666666666 0.1875 +vt 0.16666666666666666 0 +vt 0.125 0 +vt 0.08333333333333333 0.1875 +vt 0.125 0.1875 +vt 0.125 0 +vt 0.08333333333333333 0 +vt 0.20833333333333334 0.1875 +vt 0.25 0.1875 +vt 0.25 0 +vt 0.20833333333333334 0 +vt 0.16666666666666666 0.1875 +vt 0.20833333333333334 0.1875 +vt 0.20833333333333334 0 +vt 0.16666666666666666 0 +vt 0.16666666666666666 0.1875 +vt 0.125 0.1875 +vt 0.125 0.25 +vt 0.16666666666666666 0.25 +vt 0.20833333333333334 0.25 +vt 0.16666666666666666 0.25 +vt 0.16666666666666666 0.1875 +vt 0.20833333333333334 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o tail +v 0.125 0.671875 0.5 +v 0.125 0.359375 0.5 +v 0.125 0.671875 1.0625 +v 0.125 0.3593749999999999 1.0625 +v -0.125 0.359375 0.5 +v -0.125 0.671875 0.5 +v -0.125 0.3593749999999999 1.0625 +v -0.125 0.671875 1.0625 +vt 0.7291666666666666 0.84375 +vt 0.8125 0.84375 +vt 0.8125 0.5625 +vt 0.7291666666666666 0.5625 +vt 0.625 0.84375 +vt 0.7291666666666666 0.84375 +vt 0.7291666666666666 0.5625 +vt 0.625 0.5625 +vt 0.9166666666666666 0.84375 +vt 1 0.84375 +vt 1 0.5625 +vt 0.9166666666666666 0.5625 +vt 0.8125 0.84375 +vt 0.9166666666666666 0.84375 +vt 0.9166666666666666 0.5625 +vt 0.8125 0.5625 +vt 0.8125 0.84375 +vt 0.7291666666666666 0.84375 +vt 0.7291666666666666 1 +vt 0.8125 1 +vt 0.8958333333333334 1 +vt 0.8125 1 +vt 0.8125 0.84375 +vt 0.8958333333333334 0.84375 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_55d42d08-0bdc-6d16-75c7-074abfaa1062 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/frog.obj b/renderer/viewer/three/entity/models/frog.obj new file mode 100644 index 00000000..e76a114e --- /dev/null +++ b/renderer/viewer/three/entity/models/frog.obj @@ -0,0 +1,739 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.21875 0.25 0.3125 +v 0.21875 0.25 -0.25 +v 0.21875 0.0625 0.3125 +v 0.21875 0.0625 -0.25 +v -0.21875 0.25 -0.25 +v -0.21875 0.25 0.3125 +v -0.21875 0.0625 -0.25 +v -0.21875 0.0625 0.3125 +vt 0.25 0.7916666666666666 +vt 0.3958333333333333 0.7916666666666666 +vt 0.3958333333333333 0.7291666666666667 +vt 0.25 0.7291666666666667 +vt 0.0625 0.7916666666666666 +vt 0.25 0.7916666666666666 +vt 0.25 0.7291666666666667 +vt 0.0625 0.7291666666666667 +vt 0.5833333333333334 0.7916666666666666 +vt 0.7291666666666666 0.7916666666666666 +vt 0.7291666666666666 0.7291666666666667 +vt 0.5833333333333334 0.7291666666666667 +vt 0.3958333333333333 0.7916666666666666 +vt 0.5833333333333334 0.7916666666666666 +vt 0.5833333333333334 0.7291666666666667 +vt 0.3958333333333333 0.7291666666666667 +vt 0.3958333333333333 0.7916666666666666 +vt 0.25 0.7916666666666666 +vt 0.25 0.9791666666666666 +vt 0.3958333333333333 0.9791666666666666 +vt 0.5416666666666666 0.9791666666666666 +vt 0.3958333333333333 0.9791666666666666 +vt 0.3958333333333333 0.7916666666666666 +vt 0.5416666666666666 0.7916666666666666 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0.21875 0.1875 0.3125 +v 0.21875 0.1875 -0.25 +v 0.21875 0.1875 0.3125 +v 0.21875 0.1875 -0.25 +v -0.21875 0.1875 -0.25 +v -0.21875 0.1875 0.3125 +v -0.21875 0.1875 -0.25 +v -0.21875 0.1875 0.3125 +vt 0.6666666666666666 0.35416666666666663 +vt 0.8125 0.35416666666666663 +vt 0.8125 0.35416666666666663 +vt 0.6666666666666666 0.35416666666666663 +vt 0.4791666666666667 0.35416666666666663 +vt 0.6666666666666666 0.35416666666666663 +vt 0.6666666666666666 0.35416666666666663 +vt 0.4791666666666667 0.35416666666666663 +vt 1 0.35416666666666663 +vt 1.1458333333333333 0.35416666666666663 +vt 1.1458333333333333 0.35416666666666663 +vt 1 0.35416666666666663 +vt 0.8125 0.35416666666666663 +vt 1 0.35416666666666663 +vt 1 0.35416666666666663 +vt 0.8125 0.35416666666666663 +vt 0.8125 0.35416666666666663 +vt 0.6666666666666666 0.35416666666666663 +vt 0.6666666666666666 0.5416666666666667 +vt 0.8125 0.5416666666666667 +vt 0.9583333333333334 0.5416666666666667 +vt 0.8125 0.5416666666666667 +vt 0.8125 0.35416666666666663 +vt 0.9583333333333334 0.35416666666666663 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.21875 0.3125 0.3125 +v 0.21875 0.3125 -0.25 +v 0.21875 0.3125 0.3125 +v 0.21875 0.3125 -0.25 +v -0.21875 0.3125 -0.25 +v -0.21875 0.3125 0.3125 +v -0.21875 0.3125 -0.25 +v -0.21875 0.3125 0.3125 +vt 0.6666666666666666 0.5416666666666667 +vt 0.8125 0.5416666666666667 +vt 0.8125 0.5416666666666667 +vt 0.6666666666666666 0.5416666666666667 +vt 0.4791666666666667 0.5416666666666667 +vt 0.6666666666666666 0.5416666666666667 +vt 0.6666666666666666 0.5416666666666667 +vt 0.4791666666666667 0.5416666666666667 +vt 1 0.5416666666666667 +vt 1.1458333333333333 0.5416666666666667 +vt 1.1458333333333333 0.5416666666666667 +vt 1 0.5416666666666667 +vt 0.8125 0.5416666666666667 +vt 1 0.5416666666666667 +vt 1 0.5416666666666667 +vt 0.8125 0.5416666666666667 +vt 0.8125 0.5416666666666667 +vt 0.6666666666666666 0.5416666666666667 +vt 0.6666666666666666 0.7291666666666667 +vt 0.8125 0.7291666666666667 +vt 0.9583333333333334 0.7291666666666667 +vt 0.8125 0.7291666666666667 +vt 0.8125 0.5416666666666667 +vt 0.9583333333333334 0.5416666666666667 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.21875 0.375 0.3125 +v 0.21875 0.375 -0.25 +v 0.21875 0.1875 0.3125 +v 0.21875 0.1875 -0.25 +v -0.21875 0.375 -0.25 +v -0.21875 0.375 0.3125 +v -0.21875 0.1875 -0.25 +v -0.21875 0.1875 0.3125 +vt 0.1875 0.5416666666666667 +vt 0.3333333333333333 0.5416666666666667 +vt 0.3333333333333333 0.47916666666666663 +vt 0.1875 0.47916666666666663 +vt 0 0.5416666666666667 +vt 0.1875 0.5416666666666667 +vt 0.1875 0.47916666666666663 +vt 0 0.47916666666666663 +vt 0.5208333333333334 0.5416666666666667 +vt 0.6666666666666666 0.5416666666666667 +vt 0.6666666666666666 0.47916666666666663 +vt 0.5208333333333334 0.47916666666666663 +vt 0.3333333333333333 0.5416666666666667 +vt 0.5208333333333334 0.5416666666666667 +vt 0.5208333333333334 0.47916666666666663 +vt 0.3333333333333333 0.47916666666666663 +vt 0.3333333333333333 0.5416666666666667 +vt 0.1875 0.5416666666666667 +vt 0.1875 0.7291666666666667 +vt 0.3333333333333333 0.7291666666666667 +vt 0.4791666666666667 0.7291666666666667 +vt 0.3333333333333333 0.7291666666666667 +vt 0.3333333333333333 0.5416666666666667 +vt 0.4791666666666667 0.5416666666666667 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o right_eye +v 0.21875 0.5 0 +v 0.21875 0.5 -0.1875 +v 0.21875 0.375 0 +v 0.21875 0.375 -0.1875 +v 0.03125 0.5 -0.1875 +v 0.03125 0.5 0 +v 0.03125 0.375 -0.1875 +v 0.03125 0.375 0 +vt 0.0625 0.9375 +vt 0.125 0.9375 +vt 0.125 0.8958333333333334 +vt 0.0625 0.8958333333333334 +vt 0 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.8958333333333334 +vt 0 0.8958333333333334 +vt 0.1875 0.9375 +vt 0.25 0.9375 +vt 0.25 0.8958333333333334 +vt 0.1875 0.8958333333333334 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.8958333333333334 +vt 0.125 0.8958333333333334 +vt 0.125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 1 +vt 0.125 1 +vt 0.1875 1 +vt 0.125 1 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o left_eye +v -0.03125 0.5 0 +v -0.03125 0.5 -0.1875 +v -0.03125 0.375 0 +v -0.03125 0.375 -0.1875 +v -0.21875 0.5 -0.1875 +v -0.21875 0.5 0 +v -0.21875 0.375 -0.1875 +v -0.21875 0.375 0 +vt 0.0625 0.8333333333333334 +vt 0.125 0.8333333333333334 +vt 0.125 0.7916666666666666 +vt 0.0625 0.7916666666666666 +vt 0 0.8333333333333334 +vt 0.0625 0.8333333333333334 +vt 0.0625 0.7916666666666666 +vt 0 0.7916666666666666 +vt 0.1875 0.8333333333333334 +vt 0.25 0.8333333333333334 +vt 0.25 0.7916666666666666 +vt 0.1875 0.7916666666666666 +vt 0.125 0.8333333333333334 +vt 0.1875 0.8333333333333334 +vt 0.1875 0.7916666666666666 +vt 0.125 0.7916666666666666 +vt 0.125 0.8333333333333334 +vt 0.0625 0.8333333333333334 +vt 0.0625 0.8958333333333334 +vt 0.125 0.8958333333333334 +vt 0.1875 0.8958333333333334 +vt 0.125 0.8958333333333334 +vt 0.125 0.8333333333333334 +vt 0.1875 0.8333333333333334 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o croaking_body +v 0.21250000000000002 0.1875 -0.0625 +v 0.21250000000000002 0.1875 -0.2375 +v 0.21250000000000002 0.07499999999999996 -0.0625 +v 0.21250000000000002 0.07499999999999996 -0.2375 +v -0.21250000000000002 0.1875 -0.2375 +v -0.21250000000000002 0.1875 -0.0625 +v -0.21250000000000002 0.07499999999999996 -0.2375 +v -0.21250000000000002 0.07499999999999996 -0.0625 +vt 0.6041666666666666 0.8333333333333334 +vt 0.75 0.8333333333333334 +vt 0.75 0.7916666666666666 +vt 0.6041666666666666 0.7916666666666666 +vt 0.5416666666666666 0.8333333333333334 +vt 0.6041666666666666 0.8333333333333334 +vt 0.6041666666666666 0.7916666666666666 +vt 0.5416666666666666 0.7916666666666666 +vt 0.8125 0.8333333333333334 +vt 0.9583333333333334 0.8333333333333334 +vt 0.9583333333333334 0.7916666666666666 +vt 0.8125 0.7916666666666666 +vt 0.75 0.8333333333333334 +vt 0.8125 0.8333333333333334 +vt 0.8125 0.7916666666666666 +vt 0.75 0.7916666666666666 +vt 0.75 0.8333333333333334 +vt 0.6041666666666666 0.8333333333333334 +vt 0.6041666666666666 0.8958333333333334 +vt 0.75 0.8958333333333334 +vt 0.8958333333333334 0.8958333333333334 +vt 0.75 0.8958333333333334 +vt 0.75 0.8333333333333334 +vt 0.8958333333333334 0.8333333333333334 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o tongue +v 0.125 0.19374999999999998 0.30625 +v 0.125 0.19374999999999998 -0.13124999999999998 +v 0.125 0.19374999999999998 0.30625 +v 0.125 0.19374999999999998 -0.13124999999999998 +v -0.125 0.19374999999999998 -0.13124999999999998 +v -0.125 0.19374999999999998 0.30625 +v -0.125 0.19374999999999998 -0.13124999999999998 +v -0.125 0.19374999999999998 0.30625 +vt 0.5 0.5833333333333333 +vt 0.5833333333333334 0.5833333333333333 +vt 0.5833333333333334 0.5833333333333333 +vt 0.5 0.5833333333333333 +vt 0.3541666666666667 0.5833333333333333 +vt 0.5 0.5833333333333333 +vt 0.5 0.5833333333333333 +vt 0.3541666666666667 0.5833333333333333 +vt 0.7291666666666666 0.5833333333333333 +vt 0.8125 0.5833333333333333 +vt 0.8125 0.5833333333333333 +vt 0.7291666666666666 0.5833333333333333 +vt 0.5833333333333334 0.5833333333333333 +vt 0.7291666666666666 0.5833333333333333 +vt 0.7291666666666666 0.5833333333333333 +vt 0.5833333333333334 0.5833333333333333 +vt 0.5833333333333334 0.5833333333333333 +vt 0.5 0.5833333333333333 +vt 0.5 0.7291666666666667 +vt 0.5833333333333334 0.7291666666666667 +vt 0.6666666666666666 0.7291666666666667 +vt 0.5833333333333334 0.7291666666666667 +vt 0.5833333333333334 0.5833333333333333 +vt 0.6666666666666666 0.5833333333333333 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o left_arm +v -0.1875 0.1875 -0.03125 +v -0.1875 0.1875 -0.21875 +v -0.1875 0 -0.03125 +v -0.1875 0 -0.21875 +v -0.3125 0.1875 -0.21875 +v -0.3125 0.1875 -0.03125 +v -0.3125 0 -0.21875 +v -0.3125 0 -0.03125 +vt 0.0625 0.27083333333333337 +vt 0.10416666666666667 0.27083333333333337 +vt 0.10416666666666667 0.20833333333333337 +vt 0.0625 0.20833333333333337 +vt 0 0.27083333333333337 +vt 0.0625 0.27083333333333337 +vt 0.0625 0.20833333333333337 +vt 0 0.20833333333333337 +vt 0.16666666666666666 0.27083333333333337 +vt 0.20833333333333334 0.27083333333333337 +vt 0.20833333333333334 0.20833333333333337 +vt 0.16666666666666666 0.20833333333333337 +vt 0.10416666666666667 0.27083333333333337 +vt 0.16666666666666666 0.27083333333333337 +vt 0.16666666666666666 0.20833333333333337 +vt 0.10416666666666667 0.20833333333333337 +vt 0.10416666666666667 0.27083333333333337 +vt 0.0625 0.27083333333333337 +vt 0.0625 0.33333333333333337 +vt 0.10416666666666667 0.33333333333333337 +vt 0.14583333333333334 0.33333333333333337 +vt 0.10416666666666667 0.33333333333333337 +vt 0.10416666666666667 0.27083333333333337 +vt 0.14583333333333334 0.27083333333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o left_arm +v 0 -0.0006249999999999867 0.03125 +v 0 -0.0006249999999999867 -0.46875 +v 0 -0.0006249999999999867 0.03125 +v 0 -0.0006249999999999867 -0.46875 +v -0.5 -0.0006249999999999867 -0.46875 +v -0.5 -0.0006249999999999867 0.03125 +v -0.5 -0.0006249999999999867 -0.46875 +v -0.5 -0.0006249999999999867 0.03125 +vt 0.5416666666666666 0 +vt 0.7083333333333334 0 +vt 0.7083333333333334 0 +vt 0.5416666666666666 0 +vt 0.375 0 +vt 0.5416666666666666 0 +vt 0.5416666666666666 0 +vt 0.375 0 +vt 0.875 0 +vt 1.0416666666666667 0 +vt 1.0416666666666667 0 +vt 0.875 0 +vt 0.7083333333333334 0 +vt 0.875 0 +vt 0.875 0 +vt 0.7083333333333334 0 +vt 0.7083333333333334 0 +vt 0.5416666666666666 0 +vt 0.5416666666666666 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.875 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.7083333333333334 0 +vt 0.875 0 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o right_arm +v 0.3125 0.1875 -0.03125 +v 0.3125 0.1875 -0.21875 +v 0.3125 0 -0.03125 +v 0.3125 0 -0.21875 +v 0.1875 0.1875 -0.21875 +v 0.1875 0.1875 -0.03125 +v 0.1875 0 -0.21875 +v 0.1875 0 -0.03125 +vt 0.0625 0.14583333333333337 +vt 0.10416666666666667 0.14583333333333337 +vt 0.10416666666666667 0.08333333333333337 +vt 0.0625 0.08333333333333337 +vt 0 0.14583333333333337 +vt 0.0625 0.14583333333333337 +vt 0.0625 0.08333333333333337 +vt 0 0.08333333333333337 +vt 0.16666666666666666 0.14583333333333337 +vt 0.20833333333333334 0.14583333333333337 +vt 0.20833333333333334 0.08333333333333337 +vt 0.16666666666666666 0.08333333333333337 +vt 0.10416666666666667 0.14583333333333337 +vt 0.16666666666666666 0.14583333333333337 +vt 0.16666666666666666 0.08333333333333337 +vt 0.10416666666666667 0.08333333333333337 +vt 0.10416666666666667 0.14583333333333337 +vt 0.0625 0.14583333333333337 +vt 0.0625 0.20833333333333337 +vt 0.10416666666666667 0.20833333333333337 +vt 0.14583333333333334 0.20833333333333337 +vt 0.10416666666666667 0.20833333333333337 +vt 0.10416666666666667 0.14583333333333337 +vt 0.14583333333333334 0.14583333333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o right_arm +v 0.5 -0.0006249999999999867 0.03125 +v 0.5 -0.0006249999999999867 -0.46875 +v 0.5 -0.0006249999999999867 0.03125 +v 0.5 -0.0006249999999999867 -0.46875 +v 0 -0.0006249999999999867 -0.46875 +v 0 -0.0006249999999999867 0.03125 +v 0 -0.0006249999999999867 -0.46875 +v 0 -0.0006249999999999867 0.03125 +vt 0.20833333333333334 0 +vt 0.375 0 +vt 0.375 0 +vt 0.20833333333333334 0 +vt 0.041666666666666664 0 +vt 0.20833333333333334 0 +vt 0.20833333333333334 0 +vt 0.041666666666666664 0 +vt 0.5416666666666666 0 +vt 0.7083333333333334 0 +vt 0.7083333333333334 0 +vt 0.5416666666666666 0 +vt 0.375 0 +vt 0.5416666666666666 0 +vt 0.5416666666666666 0 +vt 0.375 0 +vt 0.375 0 +vt 0.20833333333333334 0 +vt 0.20833333333333334 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.375 0 +vt 0.5416666666666666 0 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o left_leg +v -0.15625 0.1875 0.375 +v -0.15625 0.1875 0.125 +v -0.15625 0 0.375 +v -0.15625 0 0.125 +v -0.34375 0.1875 0.125 +v -0.34375 0.1875 0.375 +v -0.34375 0 0.125 +v -0.34375 0 0.375 +vt 0.375 0.39583333333333337 +vt 0.4375 0.39583333333333337 +vt 0.4375 0.33333333333333337 +vt 0.375 0.33333333333333337 +vt 0.2916666666666667 0.39583333333333337 +vt 0.375 0.39583333333333337 +vt 0.375 0.33333333333333337 +vt 0.2916666666666667 0.33333333333333337 +vt 0.5208333333333334 0.39583333333333337 +vt 0.5833333333333334 0.39583333333333337 +vt 0.5833333333333334 0.33333333333333337 +vt 0.5208333333333334 0.33333333333333337 +vt 0.4375 0.39583333333333337 +vt 0.5208333333333334 0.39583333333333337 +vt 0.5208333333333334 0.33333333333333337 +vt 0.4375 0.33333333333333337 +vt 0.4375 0.39583333333333337 +vt 0.375 0.39583333333333337 +vt 0.375 0.47916666666666663 +vt 0.4375 0.47916666666666663 +vt 0.5 0.47916666666666663 +vt 0.4375 0.47916666666666663 +vt 0.4375 0.39583333333333337 +vt 0.5 0.39583333333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o left_leg +v -0.09375 -0.0006249999999999867 0.5 +v -0.09375 -0.0006249999999999867 0 +v -0.09375 -0.0006249999999999867 0.5 +v -0.09375 -0.0006249999999999867 0 +v -0.59375 -0.0006249999999999867 0 +v -0.59375 -0.0006249999999999867 0.5 +v -0.59375 -0.0006249999999999867 0 +v -0.59375 -0.0006249999999999867 0.5 +vt 0.20833333333333334 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.20833333333333334 0.16666666666666663 +vt 0.041666666666666664 0.16666666666666663 +vt 0.20833333333333334 0.16666666666666663 +vt 0.20833333333333334 0.16666666666666663 +vt 0.041666666666666664 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.20833333333333334 0.16666666666666663 +vt 0.20833333333333334 0.33333333333333337 +vt 0.375 0.33333333333333337 +vt 0.5416666666666666 0.33333333333333337 +vt 0.375 0.33333333333333337 +vt 0.375 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 +o right_leg +v 0.34375 0.1875 0.375 +v 0.34375 0.1875 0.125 +v 0.34375 0 0.375 +v 0.34375 0 0.125 +v 0.15625 0.1875 0.125 +v 0.15625 0.1875 0.375 +v 0.15625 0 0.125 +v 0.15625 0 0.375 +vt 0.08333333333333333 0.39583333333333337 +vt 0.14583333333333334 0.39583333333333337 +vt 0.14583333333333334 0.33333333333333337 +vt 0.08333333333333333 0.33333333333333337 +vt 0 0.39583333333333337 +vt 0.08333333333333333 0.39583333333333337 +vt 0.08333333333333333 0.33333333333333337 +vt 0 0.33333333333333337 +vt 0.22916666666666666 0.39583333333333337 +vt 0.2916666666666667 0.39583333333333337 +vt 0.2916666666666667 0.33333333333333337 +vt 0.22916666666666666 0.33333333333333337 +vt 0.14583333333333334 0.39583333333333337 +vt 0.22916666666666666 0.39583333333333337 +vt 0.22916666666666666 0.33333333333333337 +vt 0.14583333333333334 0.33333333333333337 +vt 0.14583333333333334 0.39583333333333337 +vt 0.08333333333333333 0.39583333333333337 +vt 0.08333333333333333 0.47916666666666663 +vt 0.14583333333333334 0.47916666666666663 +vt 0.20833333333333334 0.47916666666666663 +vt 0.14583333333333334 0.47916666666666663 +vt 0.14583333333333334 0.39583333333333337 +vt 0.20833333333333334 0.39583333333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 116/340/85 119/339/85 117/338/85 114/337/85 +f 115/344/86 116/343/86 114/342/86 113/341/86 +f 120/348/87 115/347/87 113/346/87 118/345/87 +f 119/352/88 120/351/88 118/350/88 117/349/88 +f 118/356/89 113/355/89 114/354/89 117/353/89 +f 119/360/90 116/359/90 115/358/90 120/357/90 +o right_leg +v 0.59375 -0.0006249999999999867 0.5 +v 0.59375 -0.0006249999999999867 0 +v 0.59375 -0.0006249999999999867 0.5 +v 0.59375 -0.0006249999999999867 0 +v 0.09375 -0.0006249999999999867 0 +v 0.09375 -0.0006249999999999867 0.5 +v 0.09375 -0.0006249999999999867 0 +v 0.09375 -0.0006249999999999867 0.5 +vt 0.5416666666666666 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.375 0.16666666666666663 +vt 0.875 0.16666666666666663 +vt 1.0416666666666667 0.16666666666666663 +vt 1.0416666666666667 0.16666666666666663 +vt 0.875 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.875 0.16666666666666663 +vt 0.875 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.7083333333333334 0.16666666666666663 +vt 0.5416666666666666 0.16666666666666663 +vt 0.5416666666666666 0.33333333333333337 +vt 0.7083333333333334 0.33333333333333337 +vt 0.875 0.33333333333333337 +vt 0.7083333333333334 0.33333333333333337 +vt 0.7083333333333334 0.16666666666666663 +vt 0.875 0.16666666666666663 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_4288dcd0-d35c-c2c4-0fee-38c374635ee1 +f 124/364/91 127/363/91 125/362/91 122/361/91 +f 123/368/92 124/367/92 122/366/92 121/365/92 +f 128/372/93 123/371/93 121/370/93 126/369/93 +f 127/376/94 128/375/94 126/374/94 125/373/94 +f 126/380/95 121/379/95 122/378/95 125/377/95 +f 127/384/96 124/383/96 123/382/96 128/381/96 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/ghast.obj b/renderer/viewer/three/entity/models/ghast.obj new file mode 100644 index 00000000..bed7ccb2 --- /dev/null +++ b/renderer/viewer/three/entity/models/ghast.obj @@ -0,0 +1,463 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.5 1 0.5 +v 0.5 1 -0.5 +v 0.5 0 0.5 +v 0.5 0 -0.5 +v -0.5 1 -0.5 +v -0.5 1 0.5 +v -0.5 0 -0.5 +v -0.5 0 0.5 +vt 0.25 0.5 +vt 0.5 0.5 +vt 0.5 0 +vt 0.25 0 +vt 0 0.5 +vt 0.25 0.5 +vt 0.25 0 +vt 0 0 +vt 0.75 0.5 +vt 1 0.5 +vt 1 0 +vt 0.75 0 +vt 0.5 0.5 +vt 0.75 0.5 +vt 0.75 0 +vt 0.5 0 +vt 0.5 0.5 +vt 0.25 0.5 +vt 0.25 1 +vt 0.5 1 +vt 0.75 1 +vt 0.5 1 +vt 0.5 0.5 +vt 0.75 0.5 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o tentacles_0 +v 0.30000000000000004 0.0625 -0.25 +v 0.30000000000000004 0.0625 -0.375 +v 0.30000000000000004 -0.5 -0.25 +v 0.30000000000000004 -0.5 -0.375 +v 0.17500000000000004 0.0625 -0.375 +v 0.17500000000000004 0.0625 -0.25 +v 0.17500000000000004 -0.5 -0.375 +v 0.17500000000000004 -0.5 -0.25 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.65625 +vt 0.03125 0.65625 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.65625 +vt 0 0.65625 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.65625 +vt 0.09375 0.65625 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.65625 +vt 0.0625 0.65625 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o tentacles_1 +v -0.01874999999999999 0.0625 -0.25 +v -0.01874999999999999 0.0625 -0.375 +v -0.01874999999999999 -0.625 -0.25 +v -0.01874999999999999 -0.625 -0.375 +v -0.14375 0.0625 -0.375 +v -0.14375 0.0625 -0.25 +v -0.14375 -0.625 -0.375 +v -0.14375 -0.625 -0.25 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.59375 +vt 0.03125 0.59375 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.59375 +vt 0 0.59375 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.59375 +vt 0.09375 0.59375 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o tentacles_2 +v -0.33125 0.0625 -0.25 +v -0.33125 0.0625 -0.375 +v -0.33125 -0.4375 -0.25 +v -0.33125 -0.4375 -0.375 +v -0.45625 0.0625 -0.375 +v -0.45625 0.0625 -0.25 +v -0.45625 -0.4375 -0.375 +v -0.45625 -0.4375 -0.25 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.6875 +vt 0.03125 0.6875 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.6875 +vt 0 0.6875 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.6875 +vt 0.09375 0.6875 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o tentacles_3 +v 0.45625000000000004 0.0625 0.0625 +v 0.45625000000000004 0.0625 -0.0625 +v 0.45625000000000004 -0.5 0.0625 +v 0.45625000000000004 -0.5 -0.0625 +v 0.33125000000000004 0.0625 -0.0625 +v 0.33125000000000004 0.0625 0.0625 +v 0.33125000000000004 -0.5 -0.0625 +v 0.33125000000000004 -0.5 0.0625 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.65625 +vt 0.03125 0.65625 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.65625 +vt 0 0.65625 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.65625 +vt 0.09375 0.65625 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.65625 +vt 0.0625 0.65625 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o tentacles_4 +v 0.14375000000000004 0.0625 0.0625 +v 0.14375000000000004 0.0625 -0.0625 +v 0.14375000000000004 -0.75 0.0625 +v 0.14375000000000004 -0.75 -0.0625 +v 0.018750000000000044 0.0625 -0.0625 +v 0.018750000000000044 0.0625 0.0625 +v 0.018750000000000044 -0.75 -0.0625 +v 0.018750000000000044 -0.75 0.0625 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.53125 +vt 0.03125 0.53125 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.53125 +vt 0 0.53125 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.53125 +vt 0.09375 0.53125 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.53125 +vt 0.0625 0.53125 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o tentacles_5 +v -0.175 0.0625 0.0625 +v -0.175 0.0625 -0.0625 +v -0.175 -0.625 0.0625 +v -0.175 -0.625 -0.0625 +v -0.3 0.0625 -0.0625 +v -0.3 0.0625 0.0625 +v -0.3 -0.625 -0.0625 +v -0.3 -0.625 0.0625 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.59375 +vt 0.03125 0.59375 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.59375 +vt 0 0.59375 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.59375 +vt 0.09375 0.59375 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o tentacles_6 +v 0.30000000000000004 0.0625 0.375 +v 0.30000000000000004 0.0625 0.25 +v 0.30000000000000004 -0.6875 0.375 +v 0.30000000000000004 -0.6875 0.25 +v 0.17500000000000004 0.0625 0.25 +v 0.17500000000000004 0.0625 0.375 +v 0.17500000000000004 -0.6875 0.25 +v 0.17500000000000004 -0.6875 0.375 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.5625 +vt 0.03125 0.5625 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.5625 +vt 0 0.5625 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.5625 +vt 0.09375 0.5625 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.5625 +vt 0.0625 0.5625 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o tentacles_7 +v -0.01874999999999999 0.0625 0.375 +v -0.01874999999999999 0.0625 0.25 +v -0.01874999999999999 -0.6875 0.375 +v -0.01874999999999999 -0.6875 0.25 +v -0.14375 0.0625 0.25 +v -0.14375 0.0625 0.375 +v -0.14375 -0.6875 0.25 +v -0.14375 -0.6875 0.375 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.5625 +vt 0.03125 0.5625 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.5625 +vt 0 0.5625 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.5625 +vt 0.09375 0.5625 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.5625 +vt 0.0625 0.5625 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o tentacles_8 +v -0.33125 0.0625 0.375 +v -0.33125 0.0625 0.25 +v -0.33125 -0.75 0.375 +v -0.33125 -0.75 0.25 +v -0.45625 0.0625 0.25 +v -0.45625 0.0625 0.375 +v -0.45625 -0.75 0.25 +v -0.45625 -0.75 0.375 +vt 0.03125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.53125 +vt 0.03125 0.53125 +vt 0 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.53125 +vt 0 0.53125 +vt 0.09375 0.9375 +vt 0.125 0.9375 +vt 0.125 0.53125 +vt 0.09375 0.53125 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vt 0.09375 0.53125 +vt 0.0625 0.53125 +vt 0.0625 0.9375 +vt 0.03125 0.9375 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.9375 +vt 0.09375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_be60a09e-8083-c62f-16c0-359ca5c36498 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/goat.obj b/renderer/viewer/three/entity/models/goat.obj new file mode 100644 index 00000000..adb8910c --- /dev/null +++ b/renderer/viewer/three/entity/models/goat.obj @@ -0,0 +1,601 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o left_back_leg +v -0.0625 0.375 0.4375 +v -0.0625 0.375 0.25 +v -0.0625 0 0.4375 +v -0.0625 0 0.25 +v -0.25 0.375 0.25 +v -0.25 0.375 0.4375 +v -0.25 0 0.25 +v -0.25 0 0.4375 +vt 0.609375 0.5 +vt 0.65625 0.5 +vt 0.65625 0.40625 +vt 0.609375 0.40625 +vt 0.5625 0.5 +vt 0.609375 0.5 +vt 0.609375 0.40625 +vt 0.5625 0.40625 +vt 0.703125 0.5 +vt 0.75 0.5 +vt 0.75 0.40625 +vt 0.703125 0.40625 +vt 0.65625 0.5 +vt 0.703125 0.5 +vt 0.703125 0.40625 +vt 0.65625 0.40625 +vt 0.65625 0.5 +vt 0.609375 0.5 +vt 0.609375 0.546875 +vt 0.65625 0.546875 +vt 0.703125 0.546875 +vt 0.65625 0.546875 +vt 0.65625 0.5 +vt 0.703125 0.5 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o right_back_leg +v 0.1875 0.375 0.4375 +v 0.1875 0.375 0.25 +v 0.1875 0 0.4375 +v 0.1875 0 0.25 +v 0 0.375 0.25 +v 0 0.375 0.4375 +v 0 0 0.25 +v 0 0 0.4375 +vt 0.8125 0.5 +vt 0.859375 0.5 +vt 0.859375 0.40625 +vt 0.8125 0.40625 +vt 0.765625 0.5 +vt 0.8125 0.5 +vt 0.8125 0.40625 +vt 0.765625 0.40625 +vt 0.90625 0.5 +vt 0.953125 0.5 +vt 0.953125 0.40625 +vt 0.90625 0.40625 +vt 0.859375 0.5 +vt 0.90625 0.5 +vt 0.90625 0.40625 +vt 0.859375 0.40625 +vt 0.859375 0.5 +vt 0.8125 0.5 +vt 0.8125 0.546875 +vt 0.859375 0.546875 +vt 0.90625 0.546875 +vt 0.859375 0.546875 +vt 0.859375 0.5 +vt 0.90625 0.5 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o right_front_leg +v 0.1875 0.625 -0.1875 +v 0.1875 0.625 -0.375 +v 0.1875 0 -0.1875 +v 0.1875 0 -0.375 +v 0 0.625 -0.375 +v 0 0.625 -0.1875 +v 0 0 -0.375 +v 0 0 -0.1875 +vt 0.8125 0.921875 +vt 0.859375 0.921875 +vt 0.859375 0.765625 +vt 0.8125 0.765625 +vt 0.765625 0.921875 +vt 0.8125 0.921875 +vt 0.8125 0.765625 +vt 0.765625 0.765625 +vt 0.90625 0.921875 +vt 0.953125 0.921875 +vt 0.953125 0.765625 +vt 0.90625 0.765625 +vt 0.859375 0.921875 +vt 0.90625 0.921875 +vt 0.90625 0.765625 +vt 0.859375 0.765625 +vt 0.859375 0.921875 +vt 0.8125 0.921875 +vt 0.8125 0.96875 +vt 0.859375 0.96875 +vt 0.90625 0.96875 +vt 0.859375 0.96875 +vt 0.859375 0.921875 +vt 0.90625 0.921875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o left_front_leg +v -0.0625 0.625 -0.1875 +v -0.0625 0.625 -0.375 +v -0.0625 0 -0.1875 +v -0.0625 0 -0.375 +v -0.25 0.625 -0.375 +v -0.25 0.625 -0.1875 +v -0.25 0 -0.375 +v -0.25 0 -0.1875 +vt 0.59375 0.921875 +vt 0.640625 0.921875 +vt 0.640625 0.765625 +vt 0.59375 0.765625 +vt 0.546875 0.921875 +vt 0.59375 0.921875 +vt 0.59375 0.765625 +vt 0.546875 0.765625 +vt 0.6875 0.921875 +vt 0.734375 0.921875 +vt 0.734375 0.765625 +vt 0.6875 0.765625 +vt 0.640625 0.921875 +vt 0.6875 0.921875 +vt 0.6875 0.765625 +vt 0.640625 0.765625 +vt 0.640625 0.921875 +vt 0.59375 0.921875 +vt 0.59375 0.96875 +vt 0.640625 0.96875 +vt 0.6875 0.96875 +vt 0.640625 0.96875 +vt 0.640625 0.921875 +vt 0.6875 0.921875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o body +v 0.25 1.0625 0.5625 +v 0.25 1.0625 -0.4375 +v 0.25 0.375 0.5625 +v 0.25 0.375 -0.4375 +v -0.3125 1.0625 -0.4375 +v -0.3125 1.0625 0.5625 +v -0.3125 0.375 -0.4375 +v -0.3125 0.375 0.5625 +vt 0.265625 0.734375 +vt 0.40625 0.734375 +vt 0.40625 0.5625 +vt 0.265625 0.5625 +vt 0.015625 0.734375 +vt 0.265625 0.734375 +vt 0.265625 0.5625 +vt 0.015625 0.5625 +vt 0.65625 0.734375 +vt 0.796875 0.734375 +vt 0.796875 0.5625 +vt 0.65625 0.5625 +vt 0.40625 0.734375 +vt 0.65625 0.734375 +vt 0.65625 0.5625 +vt 0.40625 0.5625 +vt 0.40625 0.734375 +vt 0.265625 0.734375 +vt 0.265625 0.984375 +vt 0.40625 0.984375 +vt 0.546875 0.984375 +vt 0.40625 0.984375 +vt 0.40625 0.734375 +vt 0.546875 0.734375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o body +v 0.3125 1.125 0.1875 +v 0.3125 1.125 -0.5 +v 0.3125 0.25 0.1875 +v 0.3125 0.25 -0.5 +v -0.375 1.125 -0.5 +v -0.375 1.125 0.1875 +v -0.375 0.25 -0.5 +v -0.375 0.25 0.1875 +vt 0.171875 0.390625 +vt 0.34375 0.390625 +vt 0.34375 0.171875 +vt 0.171875 0.171875 +vt 0 0.390625 +vt 0.171875 0.390625 +vt 0.171875 0.171875 +vt 0 0.171875 +vt 0.515625 0.390625 +vt 0.6875 0.390625 +vt 0.6875 0.171875 +vt 0.515625 0.171875 +vt 0.34375 0.390625 +vt 0.515625 0.390625 +vt 0.515625 0.171875 +vt 0.34375 0.171875 +vt 0.34375 0.390625 +vt 0.171875 0.390625 +vt 0.171875 0.5625 +vt 0.34375 0.5625 +vt 0.515625 0.5625 +vt 0.34375 0.5625 +vt 0.34375 0.390625 +vt 0.515625 0.390625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o Head +v 0.125 1.3707881146238856 -0.6330909565283671 +v 0.125 0.8588180869432658 -0.991576229247771 +v 0.125 1.1198484237203028 -0.2747119371519333 +v 0.125 0.607878396039683 -0.6331972098713372 +v -0.1875 0.8588180869432658 -0.991576229247771 +v -0.1875 1.3707881146238856 -0.6330909565283671 +v -0.1875 0.607878396039683 -0.6331972098713372 +v -0.1875 1.1198484237203028 -0.2747119371519333 +vt 0.6875 0.125 +vt 0.765625 0.125 +vt 0.765625 0.015625 +vt 0.6875 0.015625 +vt 0.53125 0.125 +vt 0.6875 0.125 +vt 0.6875 0.015625 +vt 0.53125 0.015625 +vt 0.921875 0.125 +vt 1 0.125 +vt 1 0.015625 +vt 0.921875 0.015625 +vt 0.765625 0.125 +vt 0.921875 0.125 +vt 0.921875 0.015625 +vt 0.765625 0.015625 +vt 0.765625 0.125 +vt 0.6875 0.125 +vt 0.6875 0.28125 +vt 0.765625 0.28125 +vt 0.84375 0.28125 +vt 0.765625 0.28125 +vt 0.765625 0.125 +vt 0.84375 0.125 +vn 0 -0.8191520442889917 -0.5735764363510463 +vn 1 0 0 +vn 0 0.8191520442889917 0.5735764363510463 +vn -1 0 0 +vn 0 0.5735764363510463 -0.8191520442889917 +vn 0 -0.5735764363510463 0.8191520442889917 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o Head +v 0.12437500000000001 1.625 -0.5 +v 0.12437500000000001 1.625 -0.625 +v 0.12437500000000001 1.1875 -0.5 +v 0.12437500000000001 1.1875 -0.625 +v -0.0006249999999999867 1.625 -0.625 +v -0.0006249999999999867 1.625 -0.5 +v -0.0006249999999999867 1.1875 -0.625 +v -0.0006249999999999867 1.1875 -0.5 +vt 0.21875 0.109375 +vt 0.25 0.109375 +vt 0.25 0 +vt 0.21875 0 +vt 0.1875 0.109375 +vt 0.21875 0.109375 +vt 0.21875 0 +vt 0.1875 0 +vt 0.28125 0.109375 +vt 0.3125 0.109375 +vt 0.3125 0 +vt 0.28125 0 +vt 0.25 0.109375 +vt 0.28125 0.109375 +vt 0.28125 0 +vt 0.25 0 +vt 0.25 0.109375 +vt 0.21875 0.109375 +vt 0.21875 0.140625 +vt 0.25 0.140625 +vt 0.28125 0.140625 +vt 0.25 0.140625 +vt 0.25 0.109375 +vt 0.28125 0.109375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o Head +v -0.06187500000000001 1.625 -0.5 +v -0.06187500000000001 1.625 -0.625 +v -0.06187500000000001 1.1875 -0.5 +v -0.06187500000000001 1.1875 -0.625 +v -0.186875 1.625 -0.625 +v -0.186875 1.625 -0.5 +v -0.186875 1.1875 -0.625 +v -0.186875 1.1875 -0.5 +vt 0.21875 0.109375 +vt 0.25 0.109375 +vt 0.25 0 +vt 0.21875 0 +vt 0.1875 0.109375 +vt 0.21875 0.109375 +vt 0.21875 0 +vt 0.1875 0 +vt 0.28125 0.109375 +vt 0.3125 0.109375 +vt 0.3125 0 +vt 0.28125 0 +vt 0.25 0.109375 +vt 0.28125 0.109375 +vt 0.28125 0 +vt 0.25 0 +vt 0.25 0.109375 +vt 0.21875 0.109375 +vt 0.21875 0.140625 +vt 0.25 0.140625 +vt 0.28125 0.140625 +vt 0.25 0.140625 +vt 0.25 0.109375 +vt 0.28125 0.109375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o Head +v -0.1875 1.3125 -0.5625 +v -0.1875 1.3125 -0.625 +v -0.1875 1.1875 -0.5625 +v -0.1875 1.1875 -0.625 +v -0.375 1.3125 -0.625 +v -0.375 1.3125 -0.5625 +v -0.375 1.1875 -0.625 +v -0.375 1.1875 -0.5625 +vt 0.09375 0.03125 +vt 0.046875 0.03125 +vt 0.046875 0 +vt 0.09375 0 +vt 0.109375 0.03125 +vt 0.09375 0.03125 +vt 0.09375 0 +vt 0.109375 0 +vt 0.15625 0.03125 +vt 0.109375 0.03125 +vt 0.109375 0 +vt 0.15625 0 +vt 0.046875 0.03125 +vt 0.03125 0.03125 +vt 0.03125 0 +vt 0.046875 0 +vt 0.046875 0.03125 +vt 0.09375 0.03125 +vt 0.09375 0.046875 +vt 0.046875 0.046875 +vt 0.09375 0.046875 +vt 0.140625 0.046875 +vt 0.140625 0.03125 +vt 0.09375 0.03125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o Head +v 0.3125 1.3125 -0.5625 +v 0.3125 1.3125 -0.625 +v 0.3125 1.1875 -0.5625 +v 0.3125 1.1875 -0.625 +v 0.125 1.3125 -0.625 +v 0.125 1.3125 -0.5625 +v 0.125 1.1875 -0.625 +v 0.125 1.1875 -0.5625 +vt 0.046875 0.03125 +vt 0.09375 0.03125 +vt 0.09375 0 +vt 0.046875 0 +vt 0.03125 0.03125 +vt 0.046875 0.03125 +vt 0.046875 0 +vt 0.03125 0 +vt 0.109375 0.03125 +vt 0.15625 0.03125 +vt 0.15625 0 +vt 0.109375 0 +vt 0.09375 0.03125 +vt 0.109375 0.03125 +vt 0.109375 0 +vt 0.09375 0 +vt 0.09375 0.03125 +vt 0.046875 0.03125 +vt 0.046875 0.046875 +vt 0.09375 0.046875 +vt 0.140625 0.046875 +vt 0.09375 0.046875 +vt 0.09375 0.03125 +vt 0.140625 0.03125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o Head +v -0.03125 0.8125 -0.5625 +v -0.03125 0.8125 -0.875 +v -0.03125 0.375 -0.5625 +v -0.03125 0.375 -0.875 +v -0.03125 0.8125 -0.875 +v -0.03125 0.8125 -0.5625 +v -0.03125 0.375 -0.875 +v -0.03125 0.375 -0.5625 +vt 0.4375 0.109375 +vt 0.4375 0.109375 +vt 0.4375 0 +vt 0.4375 0 +vt 0.359375 0.109375 +vt 0.4375 0.109375 +vt 0.4375 0 +vt 0.359375 0 +vt 0.515625 0.109375 +vt 0.515625 0.109375 +vt 0.515625 0 +vt 0.515625 0 +vt 0.4375 0.109375 +vt 0.515625 0.109375 +vt 0.515625 0 +vt 0.4375 0 +vt 0.4375 0.109375 +vt 0.4375 0.109375 +vt 0.4375 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0.109375 +vt 0.4375 0.109375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o HeadMain +v 0.125 1.3707881146238856 -0.6330909565283671 +v 0.125 0.8588180869432658 -0.991576229247771 +v 0.125 1.1198484237203028 -0.2747119371519333 +v 0.125 0.607878396039683 -0.6331972098713372 +v -0.1875 0.8588180869432658 -0.991576229247771 +v -0.1875 1.3707881146238856 -0.6330909565283671 +v -0.1875 0.607878396039683 -0.6331972098713372 +v -0.1875 1.1198484237203028 -0.2747119371519333 +vt 0.6875 0.125 +vt 0.765625 0.125 +vt 0.765625 0.015625 +vt 0.6875 0.015625 +vt 0.53125 0.125 +vt 0.6875 0.125 +vt 0.6875 0.015625 +vt 0.53125 0.015625 +vt 0.921875 0.125 +vt 1 0.125 +vt 1 0.015625 +vt 0.921875 0.015625 +vt 0.765625 0.125 +vt 0.921875 0.125 +vt 0.921875 0.015625 +vt 0.765625 0.015625 +vt 0.765625 0.125 +vt 0.6875 0.125 +vt 0.6875 0.28125 +vt 0.765625 0.28125 +vt 0.84375 0.28125 +vt 0.765625 0.28125 +vt 0.765625 0.125 +vt 0.84375 0.125 +vn 0 -0.8191520442889917 -0.5735764363510463 +vn 1 0 0 +vn 0 0.8191520442889917 0.5735764363510463 +vn -1 0 0 +vn 0 0.5735764363510463 -0.8191520442889917 +vn 0 -0.5735764363510463 0.8191520442889917 +usemtl m_bd56fb3d-3403-c92f-d539-6df121464423 +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/guardian.obj b/renderer/viewer/three/entity/models/guardian.obj new file mode 100644 index 00000000..0addde29 --- /dev/null +++ b/renderer/viewer/three/entity/models/guardian.obj @@ -0,0 +1,1015 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o head +v 0.375 0.875 0.5 +v 0.375 0.875 -0.5 +v 0.375 0.125 0.5 +v 0.375 0.125 -0.5 +v -0.375 0.875 -0.5 +v -0.375 0.875 0.5 +v -0.375 0.125 -0.5 +v -0.375 0.125 0.5 +vt 0.25 0.75 +vt 0.4375 0.75 +vt 0.4375 0.5625 +vt 0.25 0.5625 +vt 0 0.75 +vt 0.25 0.75 +vt 0.25 0.5625 +vt 0 0.5625 +vt 0.6875 0.75 +vt 0.875 0.75 +vt 0.875 0.5625 +vt 0.6875 0.5625 +vt 0.4375 0.75 +vt 0.6875 0.75 +vt 0.6875 0.5625 +vt 0.4375 0.5625 +vt 0.4375 0.75 +vt 0.25 0.75 +vt 0.25 1 +vt 0.4375 1 +vt 0.625 1 +vt 0.4375 1 +vt 0.4375 0.75 +vt 0.625 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o head +v 0.5 0.875 0.375 +v 0.5 0.875 -0.375 +v 0.5 0.125 0.375 +v 0.5 0.125 -0.375 +v 0.375 0.875 -0.375 +v 0.375 0.875 0.375 +v 0.375 0.125 -0.375 +v 0.375 0.125 0.375 +vt 0.1875 0.375 +vt 0.21875 0.375 +vt 0.21875 0.1875 +vt 0.1875 0.1875 +vt 0 0.375 +vt 0.1875 0.375 +vt 0.1875 0.1875 +vt 0 0.1875 +vt 0.40625 0.375 +vt 0.4375 0.375 +vt 0.4375 0.1875 +vt 0.40625 0.1875 +vt 0.21875 0.375 +vt 0.40625 0.375 +vt 0.40625 0.1875 +vt 0.21875 0.1875 +vt 0.21875 0.375 +vt 0.1875 0.375 +vt 0.1875 0.5625 +vt 0.21875 0.5625 +vt 0.25 0.5625 +vt 0.21875 0.5625 +vt 0.21875 0.375 +vt 0.25 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v -0.375 0.875 0.375 +v -0.375 0.875 -0.375 +v -0.375 0.125 0.375 +v -0.375 0.125 -0.375 +v -0.5 0.875 -0.375 +v -0.5 0.875 0.375 +v -0.5 0.125 -0.375 +v -0.5 0.125 0.375 +vt 0.21875 0.375 +vt 0.1875 0.375 +vt 0.1875 0.1875 +vt 0.21875 0.1875 +vt 0.40625 0.375 +vt 0.21875 0.375 +vt 0.21875 0.1875 +vt 0.40625 0.1875 +vt 0.4375 0.375 +vt 0.40625 0.375 +vt 0.40625 0.1875 +vt 0.4375 0.1875 +vt 0.1875 0.375 +vt 0 0.375 +vt 0 0.1875 +vt 0.1875 0.1875 +vt 0.1875 0.375 +vt 0.21875 0.375 +vt 0.21875 0.5625 +vt 0.1875 0.5625 +vt 0.21875 0.5625 +vt 0.25 0.5625 +vt 0.25 0.375 +vt 0.21875 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.375 1 0.375 +v 0.375 1 -0.375 +v 0.375 0.875 0.375 +v 0.375 0.875 -0.375 +v -0.375 1 -0.375 +v -0.375 1 0.375 +v -0.375 0.875 -0.375 +v -0.375 0.875 0.375 +vt 0.625 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0.15625 +vt 0.625 0.15625 +vt 0.8125 0.1875 +vt 0.625 0.1875 +vt 0.625 0.15625 +vt 0.8125 0.15625 +vt 1 0.1875 +vt 0.8125 0.1875 +vt 0.8125 0.15625 +vt 1 0.15625 +vt 0.4375 0.1875 +vt 0.25 0.1875 +vt 0.25 0.15625 +vt 0.4375 0.15625 +vt 0.4375 0.1875 +vt 0.625 0.1875 +vt 0.625 0.375 +vt 0.4375 0.375 +vt 0.625 0.375 +vt 0.8125 0.375 +vt 0.8125 0.1875 +vt 0.625 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o head +v 0.375 0.125 0.375 +v 0.375 0.125 -0.375 +v 0.375 0 0.375 +v 0.375 0 -0.375 +v -0.375 0.125 -0.375 +v -0.375 0.125 0.375 +v -0.375 0 -0.375 +v -0.375 0 0.375 +vt 0.625 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0.15625 +vt 0.625 0.15625 +vt 0.8125 0.1875 +vt 0.625 0.1875 +vt 0.625 0.15625 +vt 0.8125 0.15625 +vt 1 0.1875 +vt 0.8125 0.1875 +vt 0.8125 0.15625 +vt 1 0.15625 +vt 0.4375 0.1875 +vt 0.25 0.1875 +vt 0.25 0.15625 +vt 0.4375 0.15625 +vt 0.4375 0.1875 +vt 0.625 0.1875 +vt 0.625 0.375 +vt 0.4375 0.375 +vt 0.625 0.375 +vt 0.8125 0.375 +vt 0.8125 0.1875 +vt 0.625 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o eye +v 0.0625 0.5625 -0.453125 +v 0.0625 0.5625 -0.515625 +v 0.0625 0.4375 -0.453125 +v 0.0625 0.4375 -0.515625 +v -0.0625 0.5625 -0.515625 +v -0.0625 0.5625 -0.453125 +v -0.0625 0.4375 -0.515625 +v -0.0625 0.4375 -0.453125 +vt 0.140625 0.984375 +vt 0.171875 0.984375 +vt 0.171875 0.953125 +vt 0.140625 0.953125 +vt 0.125 0.984375 +vt 0.140625 0.984375 +vt 0.140625 0.953125 +vt 0.125 0.953125 +vt 0.1875 0.984375 +vt 0.21875 0.984375 +vt 0.21875 0.953125 +vt 0.1875 0.953125 +vt 0.171875 0.984375 +vt 0.1875 0.984375 +vt 0.1875 0.953125 +vt 0.171875 0.953125 +vt 0.171875 0.984375 +vt 0.140625 0.984375 +vt 0.140625 1 +vt 0.171875 1 +vt 0.203125 1 +vt 0.171875 1 +vt 0.171875 0.984375 +vt 0.203125 0.984375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o tailpart0 +v 0.125 0.625 1 +v 0.125 0.625 0.5 +v 0.125 0.375 1 +v 0.125 0.375 0.5 +v -0.125 0.625 0.5 +v -0.125 0.625 1 +v -0.125 0.375 0.5 +v -0.125 0.375 1 +vt 0.75 0.875 +vt 0.8125 0.875 +vt 0.8125 0.8125 +vt 0.75 0.8125 +vt 0.625 0.875 +vt 0.75 0.875 +vt 0.75 0.8125 +vt 0.625 0.8125 +vt 0.9375 0.875 +vt 1 0.875 +vt 1 0.8125 +vt 0.9375 0.8125 +vt 0.8125 0.875 +vt 0.9375 0.875 +vt 0.9375 0.8125 +vt 0.8125 0.8125 +vt 0.8125 0.875 +vt 0.75 0.875 +vt 0.75 1 +vt 0.8125 1 +vt 0.875 1 +vt 0.8125 1 +vt 0.8125 0.875 +vt 0.875 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o tailpart1 +v 0.09375 0.625 1.4375 +v 0.09375 0.625 1 +v 0.09375 0.4375 1.4375 +v 0.09375 0.4375 1 +v -0.09375 0.625 1 +v -0.09375 0.625 1.4375 +v -0.09375 0.4375 1 +v -0.09375 0.4375 1.4375 +vt 0.109375 0.046875 +vt 0.15625 0.046875 +vt 0.15625 0 +vt 0.109375 0 +vt 0 0.046875 +vt 0.109375 0.046875 +vt 0.109375 0 +vt 0 0 +vt 0.265625 0.046875 +vt 0.3125 0.046875 +vt 0.3125 0 +vt 0.265625 0 +vt 0.15625 0.046875 +vt 0.265625 0.046875 +vt 0.265625 0 +vt 0.15625 0 +vt 0.15625 0.046875 +vt 0.109375 0.046875 +vt 0.109375 0.15625 +vt 0.15625 0.15625 +vt 0.203125 0.15625 +vt 0.15625 0.15625 +vt 0.15625 0.046875 +vt 0.203125 0.046875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o tailpart2 +v 0.0625 0.625 1.8125 +v 0.0625 0.625 1.4375 +v 0.0625 0.5 1.8125 +v 0.0625 0.5 1.4375 +v -0.0625 0.625 1.4375 +v -0.0625 0.625 1.8125 +v -0.0625 0.5 1.4375 +v -0.0625 0.5 1.8125 +vt 0.734375 0.40625 +vt 0.765625 0.40625 +vt 0.765625 0.375 +vt 0.734375 0.375 +vt 0.640625 0.40625 +vt 0.734375 0.40625 +vt 0.734375 0.375 +vt 0.640625 0.375 +vt 0.859375 0.40625 +vt 0.890625 0.40625 +vt 0.890625 0.375 +vt 0.859375 0.375 +vt 0.765625 0.40625 +vt 0.859375 0.40625 +vt 0.859375 0.375 +vt 0.765625 0.375 +vt 0.765625 0.40625 +vt 0.734375 0.40625 +vt 0.734375 0.5 +vt 0.765625 0.5 +vt 0.796875 0.5 +vt 0.765625 0.5 +vt 0.765625 0.40625 +vt 0.796875 0.40625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o tailpart2 +v 0 0.84375 2.1875 +v 0 0.84375 1.625 +v 0 0.28125 2.1875 +v 0 0.28125 1.625 +v -0.0625 0.84375 1.625 +v -0.0625 0.84375 2.1875 +v -0.0625 0.28125 1.625 +v -0.0625 0.28125 2.1875 +vt 0.53125 0.5625 +vt 0.546875 0.5625 +vt 0.546875 0.421875 +vt 0.53125 0.421875 +vt 0.390625 0.5625 +vt 0.53125 0.5625 +vt 0.53125 0.421875 +vt 0.390625 0.421875 +vt 0.6875 0.5625 +vt 0.703125 0.5625 +vt 0.703125 0.421875 +vt 0.6875 0.421875 +vt 0.546875 0.5625 +vt 0.6875 0.5625 +vt 0.6875 0.421875 +vt 0.546875 0.421875 +vt 0.546875 0.5625 +vt 0.53125 0.5625 +vt 0.53125 0.703125 +vt 0.546875 0.703125 +vt 0.5625 0.703125 +vt 0.546875 0.703125 +vt 0.546875 0.5625 +vt 0.5625 0.5625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o spikepart0 +v -0.6518640639063484 1.2458835005110844 0.0625 +v -0.6518640639063484 1.2458835005110844 -0.0625 +v -0.25411649948891535 0.8481359360936516 0.0625 +v -0.25411649948891535 0.8481359360936516 -0.0625 +v -0.7402524115546669 1.157495152862766 -0.0625 +v -0.7402524115546669 1.157495152862766 0.0625 +v -0.34250484713723384 0.7597475884453331 -0.0625 +v -0.34250484713723384 0.7597475884453331 0.0625 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 0 -1 +vn 0.7071067811865475 0.7071067811865476 0 +vn 0 0 1 +vn -0.7071067811865475 -0.7071067811865476 0 +vn -0.7071067811865476 0.7071067811865475 0 +vn 0.7071067811865476 -0.7071067811865475 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o spikepart1 +v 0.7402524115546669 1.157495152862766 0.0625 +v 0.7402524115546669 1.157495152862766 -0.0625 +v 0.34250484713723384 0.7597475884453331 0.0625 +v 0.34250484713723384 0.7597475884453331 -0.0625 +v 0.6518640639063484 1.2458835005110844 -0.0625 +v 0.6518640639063484 1.2458835005110844 0.0625 +v 0.25411649948891535 0.8481359360936516 -0.0625 +v 0.25411649948891535 0.8481359360936516 0.0625 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 0 -1 +vn 0.7071067811865475 -0.7071067811865476 0 +vn 0 0 1 +vn -0.7071067811865475 0.7071067811865476 0 +vn 0.7071067811865476 0.7071067811865475 0 +vn -0.7071067811865476 -0.7071067811865475 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o spikepart2 +v 0.0625 1.2458835005110844 -0.6518640639063484 +v 0.0625 1.157495152862766 -0.7402524115546669 +v 0.0625 0.8481359360936516 -0.25411649948891535 +v 0.0625 0.7597475884453331 -0.34250484713723384 +v -0.0625 1.157495152862766 -0.7402524115546669 +v -0.0625 1.2458835005110844 -0.6518640639063484 +v -0.0625 0.7597475884453331 -0.34250484713723384 +v -0.0625 0.8481359360936516 -0.25411649948891535 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 -0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 -0.7071067811865476 +vn 0 -0.7071067811865475 0.7071067811865476 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o spikepart3 +v 0.0625 1.1464466094067263 0.7513009550107066 +v 0.0625 1.2348349570550448 0.6629126073623883 +v 0.0625 0.7486990449892934 0.3535533905932735 +v 0.0625 0.8370873926376117 0.26516504294495524 +v -0.0625 1.2348349570550448 0.6629126073623883 +v -0.0625 1.1464466094067263 0.7513009550107066 +v -0.0625 0.8370873926376117 0.26516504294495524 +v -0.0625 0.7486990449892934 0.3535533905932735 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 0.7071067811865476 +vn 0 -0.7071067811865475 -0.7071067811865476 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 +o spikepart4 +v -0.7623494984667472 -0.16833006186201072 0.0625 +v -0.7623494984667472 -0.16833006186201072 -0.0625 +v -0.36460193404931407 0.22941750255542193 0.0625 +v -0.36460193404931407 0.22941750255542193 -0.0625 +v -0.6739611508184287 -0.256718409510329 -0.0625 +v -0.6739611508184287 -0.256718409510329 0.0625 +v -0.2762135864009956 0.14102915490710366 -0.0625 +v -0.2762135864009956 0.14102915490710366 0.0625 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 0 -1 +vn -0.7071067811865475 0.7071067811865477 0 +vn 0 0 1 +vn 0.7071067811865475 -0.7071067811865477 0 +vn -0.7071067811865477 -0.7071067811865475 0 +vn 0.7071067811865477 0.7071067811865475 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 116/340/85 119/339/85 117/338/85 114/337/85 +f 115/344/86 116/343/86 114/342/86 113/341/86 +f 120/348/87 115/347/87 113/346/87 118/345/87 +f 119/352/88 120/351/88 118/350/88 117/349/88 +f 118/356/89 113/355/89 114/354/89 117/353/89 +f 119/360/90 116/359/90 115/358/90 120/357/90 +o spikepart5 +v 0.6739611508184287 -0.256718409510329 0.0625 +v 0.6739611508184287 -0.256718409510329 -0.0625 +v 0.2762135864009956 0.14102915490710366 0.0625 +v 0.2762135864009956 0.14102915490710366 -0.0625 +v 0.7623494984667472 -0.16833006186201072 -0.0625 +v 0.7623494984667472 -0.16833006186201072 0.0625 +v 0.36460193404931407 0.22941750255542193 -0.0625 +v 0.36460193404931407 0.22941750255542193 0.0625 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 0 -1 +vn -0.7071067811865475 -0.7071067811865477 0 +vn 0 0 1 +vn 0.7071067811865475 0.7071067811865477 0 +vn 0.7071067811865477 -0.7071067811865475 0 +vn -0.7071067811865477 0.7071067811865475 0 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 124/364/91 127/363/91 125/362/91 122/361/91 +f 123/368/92 124/367/92 122/366/92 121/365/92 +f 128/372/93 123/371/93 121/370/93 126/369/93 +f 127/376/94 128/375/94 126/374/94 125/373/94 +f 126/380/95 121/379/95 122/378/95 125/377/95 +f 127/384/96 124/383/96 123/382/96 128/381/96 +o spikepart6 +v 0.0625 -0.21252423568616985 -0.8065436722909063 +v 0.0625 -0.30091258333448856 -0.7181553246425878 +v 0.0625 0.18522332873126324 -0.4087961078734732 +v 0.0625 0.09683498108294453 -0.3204077602251547 +v -0.0625 -0.30091258333448856 -0.7181553246425878 +v -0.0625 -0.21252423568616985 -0.8065436722909063 +v -0.0625 0.09683498108294453 -0.3204077602251547 +v -0.0625 0.18522332873126324 -0.4087961078734732 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 -0.7071067811865477 0.7071067811865475 +vn 1 0 0 +vn 0 0.7071067811865477 -0.7071067811865475 +vn -1 0 0 +vn 0 -0.7071067811865475 -0.7071067811865477 +vn 0 0.7071067811865475 0.7071067811865477 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 132/388/97 135/387/97 133/386/97 130/385/97 +f 131/392/98 132/391/98 130/390/98 129/389/98 +f 136/396/99 131/395/99 129/394/99 134/393/99 +f 135/400/100 136/399/100 134/398/100 133/397/100 +f 134/404/101 129/403/101 130/402/101 133/401/101 +f 135/408/102 132/407/102 131/406/102 136/405/102 +o spikepart7 +v 0.0625 -0.256718409510329 0.6739611508184287 +v 0.0625 -0.16833006186201072 0.7623494984667472 +v 0.0625 0.14102915490710366 0.2762135864009956 +v 0.0625 0.22941750255542193 0.36460193404931407 +v -0.0625 -0.16833006186201072 0.7623494984667472 +v -0.0625 -0.256718409510329 0.6739611508184287 +v -0.0625 0.22941750255542193 0.36460193404931407 +v -0.0625 0.14102915490710366 0.2762135864009956 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 0 0.7071067811865477 0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865477 -0.7071067811865475 +vn -1 0 0 +vn 0 -0.7071067811865475 0.7071067811865477 +vn 0 0.7071067811865475 -0.7071067811865477 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 140/412/103 143/411/103 141/410/103 138/409/103 +f 139/416/104 140/415/104 138/414/104 137/413/104 +f 144/420/105 139/419/105 137/418/105 142/417/105 +f 143/424/106 144/423/106 142/422/106 141/421/106 +f 142/428/107 137/427/107 138/426/107 141/425/107 +f 143/432/108 140/431/108 139/430/108 144/429/108 +o spikepart8 +v -0.7292038680986273 0.5625000000000004 -0.8175922157469457 +v -0.7292038680986275 0.43750000000000044 -0.8175922157469457 +v -0.33145630368119416 0.5625000000000002 -0.41984465132951265 +v -0.3314563036811944 0.4375000000000002 -0.41984465132951265 +v -0.8175922157469457 0.43750000000000044 -0.7292038680986275 +v -0.8175922157469455 0.5625000000000004 -0.7292038680986275 +v -0.41984465132951265 0.4375000000000002 -0.3314563036811944 +v -0.41984465132951243 0.5625000000000002 -0.3314563036811944 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn -2.355138688025663e-16 -1 -2.3551386880256634e-16 +vn 0.7071067811865476 7.850462293418876e-17 -0.7071067811865476 +vn 2.355138688025663e-16 1 2.3551386880256634e-16 +vn -0.7071067811865476 -7.850462293418876e-17 0.7071067811865476 +vn -0.7071067811865475 2.355138688025663e-16 -0.7071067811865476 +vn 0.7071067811865475 -2.355138688025663e-16 0.7071067811865476 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 148/436/109 151/435/109 149/434/109 146/433/109 +f 147/440/110 148/439/110 146/438/110 145/437/110 +f 152/444/111 147/443/111 145/442/111 150/441/111 +f 151/448/112 152/447/112 150/446/112 149/445/112 +f 150/452/113 145/451/113 146/450/113 149/449/113 +f 151/456/114 148/455/114 147/454/114 152/453/114 +o spikepart8 +v 0.8175922157469455 0.5625000000000004 -0.7292038680986275 +v 0.8175922157469457 0.43750000000000044 -0.7292038680986275 +v 0.41984465132951243 0.5625000000000002 -0.3314563036811944 +v 0.41984465132951265 0.4375000000000002 -0.3314563036811944 +v 0.7292038680986275 0.43750000000000044 -0.8175922157469457 +v 0.7292038680986273 0.5625000000000004 -0.8175922157469457 +v 0.3314563036811944 0.4375000000000002 -0.41984465132951265 +v 0.33145630368119416 0.5625000000000002 -0.41984465132951265 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 2.355138688025663e-16 -1 -2.3551386880256634e-16 +vn 0.7071067811865476 -7.850462293418876e-17 0.7071067811865476 +vn -2.355138688025663e-16 1 2.3551386880256634e-16 +vn -0.7071067811865476 7.850462293418876e-17 -0.7071067811865476 +vn 0.7071067811865475 2.355138688025663e-16 -0.7071067811865476 +vn -0.7071067811865475 -2.355138688025663e-16 0.7071067811865476 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 156/460/115 159/459/115 157/458/115 154/457/115 +f 155/464/116 156/463/116 154/462/116 153/461/116 +f 160/468/117 155/467/117 153/466/117 158/465/117 +f 159/472/118 160/471/118 158/470/118 157/469/118 +f 158/476/119 153/475/119 154/474/119 157/473/119 +f 159/480/120 156/479/120 155/478/120 160/477/120 +o spikepart8 +v -0.8175922157469455 0.5625 0.7292038680986273 +v -0.8175922157469457 0.4375000000000002 0.7292038680986273 +v -0.41984465132951243 0.5625 0.33145630368119416 +v -0.41984465132951265 0.4375 0.33145630368119416 +v -0.7292038680986275 0.4375000000000002 0.8175922157469455 +v -0.7292038680986273 0.5625 0.8175922157469455 +v -0.3314563036811944 0.4375 0.41984465132951243 +v -0.33145630368119416 0.5625 0.41984465132951243 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn -1.5700924586837752e-16 -1 1.570092458683775e-16 +vn -0.7071067811865475 7.850462293418875e-17 -0.7071067811865476 +vn 1.5700924586837752e-16 1 -1.570092458683775e-16 +vn 0.7071067811865475 -7.850462293418875e-17 0.7071067811865476 +vn -0.7071067811865476 7.850462293418876e-17 0.7071067811865475 +vn 0.7071067811865476 -7.850462293418876e-17 -0.7071067811865475 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 164/484/121 167/483/121 165/482/121 162/481/121 +f 163/488/122 164/487/122 162/486/122 161/485/122 +f 168/492/123 163/491/123 161/490/123 166/489/123 +f 167/496/124 168/495/124 166/494/124 165/493/124 +f 166/500/125 161/499/125 162/498/125 165/497/125 +f 167/504/126 164/503/126 163/502/126 168/501/126 +o spikepart8 +v 0.7292038680986273 0.5625 0.8175922157469455 +v 0.7292038680986275 0.4375000000000002 0.8175922157469455 +v 0.33145630368119416 0.5625 0.41984465132951243 +v 0.3314563036811944 0.4375 0.41984465132951243 +v 0.8175922157469457 0.4375000000000002 0.7292038680986273 +v 0.8175922157469455 0.5625 0.7292038680986273 +v 0.41984465132951265 0.4375 0.33145630368119416 +v 0.41984465132951243 0.5625 0.33145630368119416 +vt 0.03125 0.96875 +vt 0.0625 0.96875 +vt 0.0625 0.828125 +vt 0.03125 0.828125 +vt 0 0.96875 +vt 0.03125 0.96875 +vt 0.03125 0.828125 +vt 0 0.828125 +vt 0.09375 0.96875 +vt 0.125 0.96875 +vt 0.125 0.828125 +vt 0.09375 0.828125 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vt 0.09375 0.828125 +vt 0.0625 0.828125 +vt 0.0625 0.96875 +vt 0.03125 0.96875 +vt 0.03125 1 +vt 0.0625 1 +vt 0.09375 1 +vt 0.0625 1 +vt 0.0625 0.96875 +vt 0.09375 0.96875 +vn 1.5700924586837752e-16 -1 1.570092458683775e-16 +vn -0.7071067811865475 -7.850462293418875e-17 0.7071067811865476 +vn -1.5700924586837752e-16 1 -1.570092458683775e-16 +vn 0.7071067811865475 7.850462293418875e-17 -0.7071067811865476 +vn 0.7071067811865476 7.850462293418876e-17 0.7071067811865475 +vn -0.7071067811865476 -7.850462293418876e-17 -0.7071067811865475 +usemtl m_18bfdc93-cc40-fa86-b211-05ac08cf8255 +f 172/508/127 175/507/127 173/506/127 170/505/127 +f 171/512/128 172/511/128 170/510/128 169/509/128 +f 176/516/129 171/515/129 169/514/129 174/513/129 +f 175/520/130 176/519/130 174/518/130 173/517/130 +f 174/524/131 169/523/131 170/522/131 173/521/131 +f 175/528/132 172/527/132 171/526/132 176/525/132 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/horse.obj b/renderer/viewer/three/entity/models/horse.obj new file mode 100644 index 00000000..bb08e913 --- /dev/null +++ b/renderer/viewer/three/entity/models/horse.obj @@ -0,0 +1,1061 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o Body +v 0.3125 1.3125 0.6875 +v 0.3125 1.3125 -0.6875 +v 0.3125 0.6875 0.6875 +v 0.3125 0.6875 -0.6875 +v -0.3125 1.3125 -0.6875 +v -0.3125 1.3125 0.6875 +v -0.3125 0.6875 -0.6875 +v -0.3125 0.6875 0.6875 +vt 0.34375 0.15625 +vt 0.5 0.15625 +vt 0.5 0 +vt 0.34375 0 +vt 0 0.15625 +vt 0.34375 0.15625 +vt 0.34375 0 +vt 0 0 +vt 0.84375 0.15625 +vt 1 0.15625 +vt 1 0 +vt 0.84375 0 +vt 0.5 0.15625 +vt 0.84375 0.15625 +vt 0.84375 0 +vt 0.5 0 +vt 0.5 0.15625 +vt 0.34375 0.15625 +vt 0.34375 0.5 +vt 0.5 0.5 +vt 0.65625 0.5 +vt 0.5 0.5 +vt 0.5 0.15625 +vt 0.65625 0.15625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o TailA +v 0.09375 1.3125 0.7957531754730547 +v 0.09375 1.1875 0.5792468245269451 +v 0.09375 0.5547277716886161 1.2332531754730547 +v 0.09375 0.4297277716886161 1.0167468245269449 +v -0.09375 1.1875 0.5792468245269451 +v -0.09375 1.3125 0.7957531754730547 +v -0.09375 0.4297277716886161 1.0167468245269449 +v -0.09375 0.5547277716886161 1.2332531754730547 +vt 0.71875 0.375 +vt 0.765625 0.375 +vt 0.765625 0.15625 +vt 0.71875 0.15625 +vt 0.65625 0.375 +vt 0.71875 0.375 +vt 0.71875 0.15625 +vt 0.65625 0.15625 +vt 0.828125 0.375 +vt 0.875 0.375 +vt 0.875 0.15625 +vt 0.828125 0.15625 +vt 0.765625 0.375 +vt 0.828125 0.375 +vt 0.828125 0.15625 +vt 0.765625 0.15625 +vt 0.765625 0.375 +vt 0.71875 0.375 +vt 0.71875 0.4375 +vt 0.765625 0.4375 +vt 0.8125 0.4375 +vt 0.765625 0.4375 +vt 0.765625 0.375 +vt 0.8125 0.375 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o Leg1A +v -0.0625 0.6875 0.6875 +v -0.0625 0.6875 0.4375 +v -0.0625 0 0.6875 +v -0.0625 0 0.4375 +v -0.3125 0.6875 0.4375 +v -0.3125 0.6875 0.6875 +v -0.3125 0 0.4375 +v -0.3125 0 0.6875 +vt 0.875 0.609375 +vt 0.8125 0.609375 +vt 0.8125 0.4375 +vt 0.875 0.4375 +vt 0.9375 0.609375 +vt 0.875 0.609375 +vt 0.875 0.4375 +vt 0.9375 0.4375 +vt 1 0.609375 +vt 0.9375 0.609375 +vt 0.9375 0.4375 +vt 1 0.4375 +vt 0.8125 0.609375 +vt 0.75 0.609375 +vt 0.75 0.4375 +vt 0.8125 0.4375 +vt 0.8125 0.609375 +vt 0.875 0.609375 +vt 0.875 0.671875 +vt 0.8125 0.671875 +vt 0.875 0.671875 +vt 0.9375 0.671875 +vt 0.9375 0.609375 +vt 0.875 0.609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o Leg2A +v 0.3125 0.6875 0.6875 +v 0.3125 0.6875 0.4375 +v 0.3125 0 0.6875 +v 0.3125 0 0.4375 +v 0.0625 0.6875 0.4375 +v 0.0625 0.6875 0.6875 +v 0.0625 0 0.4375 +v 0.0625 0 0.6875 +vt 0.8125 0.609375 +vt 0.875 0.609375 +vt 0.875 0.4375 +vt 0.8125 0.4375 +vt 0.75 0.609375 +vt 0.8125 0.609375 +vt 0.8125 0.4375 +vt 0.75 0.4375 +vt 0.9375 0.609375 +vt 1 0.609375 +vt 1 0.4375 +vt 0.9375 0.4375 +vt 0.875 0.609375 +vt 0.9375 0.609375 +vt 0.9375 0.4375 +vt 0.875 0.4375 +vt 0.875 0.609375 +vt 0.8125 0.609375 +vt 0.8125 0.671875 +vt 0.875 0.671875 +vt 0.9375 0.671875 +vt 0.875 0.671875 +vt 0.875 0.609375 +vt 0.9375 0.609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o Leg3A +v -0.0625 0.6875 -0.4375 +v -0.0625 0.6875 -0.6875 +v -0.0625 0 -0.4375 +v -0.0625 0 -0.6875 +v -0.3125 0.6875 -0.6875 +v -0.3125 0.6875 -0.4375 +v -0.3125 0 -0.6875 +v -0.3125 0 -0.4375 +vt 0.875 0.609375 +vt 0.8125 0.609375 +vt 0.8125 0.4375 +vt 0.875 0.4375 +vt 0.9375 0.609375 +vt 0.875 0.609375 +vt 0.875 0.4375 +vt 0.9375 0.4375 +vt 1 0.609375 +vt 0.9375 0.609375 +vt 0.9375 0.4375 +vt 1 0.4375 +vt 0.8125 0.609375 +vt 0.75 0.609375 +vt 0.75 0.4375 +vt 0.8125 0.4375 +vt 0.8125 0.609375 +vt 0.875 0.609375 +vt 0.875 0.671875 +vt 0.8125 0.671875 +vt 0.875 0.671875 +vt 0.9375 0.671875 +vt 0.9375 0.609375 +vt 0.875 0.609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o Leg4A +v 0.3125 0.6875 -0.4375 +v 0.3125 0.6875 -0.6875 +v 0.3125 0 -0.4375 +v 0.3125 0 -0.6875 +v 0.0625 0.6875 -0.6875 +v 0.0625 0.6875 -0.4375 +v 0.0625 0 -0.6875 +v 0.0625 0 -0.4375 +vt 0.8125 0.609375 +vt 0.875 0.609375 +vt 0.875 0.4375 +vt 0.8125 0.4375 +vt 0.75 0.609375 +vt 0.8125 0.609375 +vt 0.8125 0.4375 +vt 0.75 0.4375 +vt 0.9375 0.609375 +vt 1 0.609375 +vt 1 0.4375 +vt 0.9375 0.4375 +vt 0.875 0.609375 +vt 0.9375 0.609375 +vt 0.9375 0.4375 +vt 0.875 0.4375 +vt 0.875 0.609375 +vt 0.8125 0.609375 +vt 0.8125 0.671875 +vt 0.875 0.671875 +vt 0.9375 0.671875 +vt 0.875 0.671875 +vt 0.875 0.609375 +vt 0.9375 0.609375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o Head +v 0.1875 2.051882938682637 -0.7896234122634724 +v 0.1875 1.833132938682637 -1.1685095264191645 +v 0.1875 1.78125 -0.6333734122634727 +v 0.1875 1.5625 -1.0122595264191645 +v -0.1875 1.833132938682637 -1.1685095264191645 +v -0.1875 2.051882938682637 -0.7896234122634724 +v -0.1875 1.5625 -1.0122595264191645 +v -0.1875 1.78125 -0.6333734122634727 +vt 0.109375 0.6875 +vt 0.203125 0.6875 +vt 0.203125 0.609375 +vt 0.109375 0.609375 +vt 0 0.6875 +vt 0.109375 0.6875 +vt 0.109375 0.609375 +vt 0 0.609375 +vt 0.3125 0.6875 +vt 0.40625 0.6875 +vt 0.40625 0.609375 +vt 0.3125 0.609375 +vt 0.203125 0.6875 +vt 0.3125 0.6875 +vt 0.3125 0.609375 +vt 0.203125 0.609375 +vt 0.203125 0.6875 +vt 0.109375 0.6875 +vt 0.109375 0.796875 +vt 0.203125 0.796875 +vt 0.296875 0.796875 +vt 0.203125 0.796875 +vt 0.203125 0.6875 +vt 0.296875 0.6875 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o UMouth +v 0.125 1.833132938682637 -1.1685095264191645 +v 0.125 1.676882938682637 -1.4391424651018014 +v 0.125 1.5625 -1.0122595264191645 +v 0.125 1.40625 -1.2828924651018019 +v -0.125 1.676882938682637 -1.4391424651018014 +v -0.125 1.833132938682637 -1.1685095264191645 +v -0.125 1.40625 -1.2828924651018019 +v -0.125 1.5625 -1.0122595264191645 +vt 0.078125 0.53125 +vt 0.140625 0.53125 +vt 0.140625 0.453125 +vt 0.078125 0.453125 +vt 0 0.53125 +vt 0.078125 0.53125 +vt 0.078125 0.453125 +vt 0 0.453125 +vt 0.21875 0.53125 +vt 0.28125 0.53125 +vt 0.28125 0.453125 +vt 0.21875 0.453125 +vt 0.140625 0.53125 +vt 0.21875 0.53125 +vt 0.21875 0.453125 +vt 0.140625 0.453125 +vt 0.140625 0.53125 +vt 0.078125 0.53125 +vt 0.078125 0.609375 +vt 0.140625 0.609375 +vt 0.203125 0.609375 +vt 0.140625 0.609375 +vt 0.140625 0.53125 +vt 0.203125 0.53125 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o Ear1 +v -0.06465012057680164 2.1600077984998522 -0.8465349149312555 +v -0.06192650361593727 2.1288767141844853 -0.9006615026677829 +v -0.050497791707081574 1.9982459393130734 -0.7527849149312555 +v -0.04777417474621726 1.9671148549977064 -0.8069115026677829 +v -0.1864508408774055 2.117982246341028 -0.9006615026677829 +v -0.1891744578382698 2.149113330656395 -0.8465349149312555 +v -0.17229851200768548 1.9562203871542492 -0.8069115026677829 +v -0.1750221289685498 1.987351471469616 -0.7527849149312555 +vt 0.34375 0.734375 +vt 0.3125 0.734375 +vt 0.3125 0.6875 +vt 0.34375 0.6875 +vt 0.359375 0.734375 +vt 0.34375 0.734375 +vt 0.34375 0.6875 +vt 0.359375 0.6875 +vt 0.390625 0.734375 +vt 0.359375 0.734375 +vt 0.359375 0.6875 +vt 0.390625 0.6875 +vt 0.3125 0.734375 +vt 0.296875 0.734375 +vt 0.296875 0.6875 +vt 0.3125 0.6875 +vt 0.3125 0.734375 +vt 0.34375 0.734375 +vt 0.34375 0.75 +vt 0.3125 0.75 +vt 0.34375 0.75 +vt 0.375 0.75 +vt 0.375 0.734375 +vt 0.34375 0.734375 +vn 0.0435778713738291 -0.4980973490458729 -0.8660254037844388 +vn 0.9961946980917455 0.0871557427476582 -1.3877787807814457e-17 +vn -0.0435778713738291 0.4980973490458729 0.8660254037844388 +vn -0.9961946980917455 -0.0871557427476582 1.3877787807814457e-17 +vn -0.07547908730517335 0.862729915662821 -0.5 +vn 0.07547908730517335 -0.862729915662821 0.5 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o Ear2 +v 0.1891744578382698 2.149113330656395 -0.8465349149312555 +v 0.1864508408774055 2.117982246341028 -0.9006615026677829 +v 0.17502212896854985 1.987351471469616 -0.7527849149312555 +v 0.17229851200768542 1.9562203871542492 -0.8069115026677829 +v 0.06192650361593732 2.1288767141844853 -0.9006615026677829 +v 0.06465012057680164 2.1600077984998522 -0.8465349149312555 +v 0.04777417474621726 1.9671148549977064 -0.8069115026677829 +v 0.050497791707081574 1.9982459393130734 -0.7527849149312555 +vt 0.3125 0.734375 +vt 0.34375 0.734375 +vt 0.34375 0.6875 +vt 0.3125 0.6875 +vt 0.296875 0.734375 +vt 0.3125 0.734375 +vt 0.3125 0.6875 +vt 0.296875 0.6875 +vt 0.359375 0.734375 +vt 0.390625 0.734375 +vt 0.390625 0.6875 +vt 0.359375 0.6875 +vt 0.34375 0.734375 +vt 0.359375 0.734375 +vt 0.359375 0.6875 +vt 0.34375 0.6875 +vt 0.34375 0.734375 +vt 0.3125 0.734375 +vt 0.3125 0.75 +vt 0.34375 0.75 +vt 0.375 0.75 +vt 0.34375 0.75 +vt 0.34375 0.734375 +vt 0.375 0.734375 +vn -0.0435778713738291 -0.4980973490458729 -0.8660254037844388 +vn 0.9961946980917455 -0.0871557427476582 1.3877787807814457e-17 +vn 0.0435778713738291 0.4980973490458729 0.8660254037844388 +vn -0.9961946980917455 0.0871557427476582 -1.3877787807814457e-17 +vn 0.07547908730517335 0.862729915662821 -0.5 +vn -0.07547908730517335 -0.862729915662821 0.5 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o MuleEarL +v -0.15935822581478865 2.3816773650616265 -0.9715349149312555 +v -0.15127013065533484 2.351492182990093 -1.0256615026677829 +v -0.061295283546407786 2.0157014821763357 -0.7527849149312555 +v -0.05320718838695404 1.9855163001048024 -0.8069115026677829 +v -0.27201085894146837 2.3191398023522782 -1.0256615026677829 +v -0.28009895410092217 2.3493249844238115 -0.9715349149312555 +v -0.1739479166730875 1.9531639194669874 -0.8069115026677829 +v -0.1820360118325413 1.9833491015385207 -0.7527849149312555 +vt 0.046875 0.796875 +vt 0.015625 0.796875 +vt 0.015625 0.6875 +vt 0.046875 0.6875 +vt 0.0625 0.796875 +vt 0.046875 0.796875 +vt 0.046875 0.6875 +vt 0.0625 0.6875 +vt 0.09375 0.796875 +vt 0.0625 0.796875 +vt 0.0625 0.6875 +vt 0.09375 0.6875 +vt 0.015625 0.796875 +vt 0 0.796875 +vt 0 0.6875 +vt 0.015625 0.6875 +vt 0.015625 0.796875 +vt 0.046875 0.796875 +vt 0.046875 0.8125 +vt 0.015625 0.8125 +vt 0.046875 0.8125 +vt 0.078125 0.8125 +vt 0.078125 0.796875 +vt 0.046875 0.796875 +vn 0.12940952255126037 -0.48296291314453416 -0.8660254037844387 +vn 0.9659258262890683 0.25881904510252074 1.3877787807814457e-17 +vn -0.12940952255126037 0.48296291314453416 0.8660254037844387 +vn -0.9659258262890683 -0.25881904510252074 -1.3877787807814457e-17 +vn -0.2241438680420134 0.8365163037378079 -0.5 +vn 0.2241438680420134 -0.8365163037378079 0.5 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o MuleEarR +v 0.2800989541009222 2.3493249844238115 -0.9715349149312555 +v 0.27201085894146837 2.3191398023522782 -1.0256615026677829 +v 0.18203601183254126 1.9833491015385207 -0.7527849149312555 +v 0.1739479166730875 1.9531639194669874 -0.8069115026677829 +v 0.1512701306553348 2.351492182990093 -1.0256615026677829 +v 0.15935822581478865 2.3816773650616265 -0.9715349149312555 +v 0.05320718838695404 1.9855163001048024 -0.8069115026677829 +v 0.061295283546407786 2.0157014821763357 -0.7527849149312555 +vt 0.015625 0.796875 +vt 0.046875 0.796875 +vt 0.046875 0.6875 +vt 0.015625 0.6875 +vt 0 0.796875 +vt 0.015625 0.796875 +vt 0.015625 0.6875 +vt 0 0.6875 +vt 0.0625 0.796875 +vt 0.09375 0.796875 +vt 0.09375 0.6875 +vt 0.0625 0.6875 +vt 0.046875 0.796875 +vt 0.0625 0.796875 +vt 0.0625 0.6875 +vt 0.046875 0.6875 +vt 0.046875 0.796875 +vt 0.015625 0.796875 +vt 0.015625 0.8125 +vt 0.046875 0.8125 +vt 0.078125 0.8125 +vt 0.046875 0.8125 +vt 0.046875 0.796875 +vt 0.078125 0.796875 +vn -0.12940952255126037 -0.48296291314453416 -0.8660254037844387 +vn 0.9659258262890683 -0.25881904510252074 -1.3877787807814457e-17 +vn 0.12940952255126037 0.48296291314453416 0.8660254037844387 +vn -0.9659258262890683 0.25881904510252074 1.3877787807814457e-17 +vn 0.2241438680420134 0.8365163037378079 -0.5 +vn -0.2241438680420134 -0.8365163037378079 0.5 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o Neck +v 0.125 1.7828924651018019 -0.6272436490538904 +v 0.125 1.5641424651018019 -1.0061297632095823 +v 0.125 1.1333734122634724 -0.2522436490538904 +v 0.125 0.9146234122634727 -0.6311297632095825 +v -0.125 1.5641424651018019 -1.0061297632095823 +v -0.125 1.7828924651018019 -0.6272436490538904 +v -0.125 0.9146234122634727 -0.6311297632095825 +v -0.125 1.1333734122634724 -0.2522436490538904 +vt 0.109375 0.34375 +vt 0.171875 0.34375 +vt 0.171875 0.15625 +vt 0.109375 0.15625 +vt 0 0.34375 +vt 0.109375 0.34375 +vt 0.109375 0.15625 +vt 0 0.15625 +vt 0.28125 0.34375 +vt 0.34375 0.34375 +vt 0.34375 0.15625 +vt 0.28125 0.15625 +vt 0.171875 0.34375 +vt 0.28125 0.34375 +vt 0.28125 0.15625 +vt 0.171875 0.15625 +vt 0.171875 0.34375 +vt 0.109375 0.34375 +vt 0.109375 0.453125 +vt 0.171875 0.453125 +vt 0.234375 0.453125 +vt 0.171875 0.453125 +vt 0.171875 0.34375 +vt 0.234375 0.34375 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o Mane +v 0.0625 2.1160254037844384 -0.6752404735808355 +v 0.0625 2.0535254037844384 -0.7834936490538902 +v 0.0625 1.25 -0.1752404735808355 +v 0.0625 1.1875 -0.2834936490538904 +v -0.0625 2.0535254037844384 -0.7834936490538902 +v -0.0625 2.1160254037844384 -0.6752404735808355 +v -0.0625 1.1875 -0.2834936490538904 +v -0.0625 1.25 -0.1752404735808355 +vt 0.90625 0.40625 +vt 0.9375 0.40625 +vt 0.9375 0.15625 +vt 0.90625 0.15625 +vt 0.875 0.40625 +vt 0.90625 0.40625 +vt 0.90625 0.15625 +vt 0.875 0.15625 +vt 0.96875 0.40625 +vt 1 0.40625 +vt 1 0.15625 +vt 0.96875 0.15625 +vt 0.9375 0.40625 +vt 0.96875 0.40625 +vt 0.96875 0.15625 +vt 0.9375 0.15625 +vt 0.9375 0.40625 +vt 0.90625 0.40625 +vt 0.90625 0.4375 +vt 0.9375 0.4375 +vt 0.96875 0.4375 +vt 0.9375 0.4375 +vt 0.9375 0.40625 +vt 0.96875 0.40625 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 +o Bag1 +v 0.5 1.3125 0.125 +v 0.3125000000000001 1.3125 0.12499999999999989 +v 0.5 0.8125 0.125 +v 0.3125000000000001 0.8125 0.12499999999999989 +v 0.3125 1.3125 0.625 +v 0.5 1.3125 0.625 +v 0.3125 0.8125 0.625 +v 0.5 0.8125 0.625 +vt 0.453125 0.625 +vt 0.578125 0.625 +vt 0.578125 0.5 +vt 0.453125 0.5 +vt 0.40625 0.625 +vt 0.453125 0.625 +vt 0.453125 0.5 +vt 0.40625 0.5 +vt 0.625 0.625 +vt 0.75 0.625 +vt 0.75 0.5 +vt 0.625 0.5 +vt 0.578125 0.625 +vt 0.625 0.625 +vt 0.625 0.5 +vt 0.578125 0.5 +vt 0.578125 0.625 +vt 0.453125 0.625 +vt 0.453125 0.671875 +vt 0.578125 0.671875 +vt 0.703125 0.671875 +vt 0.578125 0.671875 +vt 0.578125 0.625 +vt 0.703125 0.625 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 116/340/85 119/339/85 117/338/85 114/337/85 +f 115/344/86 116/343/86 114/342/86 113/341/86 +f 120/348/87 115/347/87 113/346/87 118/345/87 +f 119/352/88 120/351/88 118/350/88 117/349/88 +f 118/356/89 113/355/89 114/354/89 117/353/89 +f 119/360/90 116/359/90 115/358/90 120/357/90 +o Bag2 +v -0.5 1.3125 0.625 +v -0.3125 1.3125 0.625 +v -0.5 0.8125 0.625 +v -0.3125 0.8125 0.625 +v -0.3125000000000001 1.3125 0.12499999999999989 +v -0.5000000000000001 1.3125 0.125 +v -0.3125000000000001 0.8125 0.12499999999999989 +v -0.5000000000000001 0.8125 0.125 +vt 0.578125 0.625 +vt 0.453125 0.625 +vt 0.453125 0.5 +vt 0.578125 0.5 +vt 0.625 0.625 +vt 0.578125 0.625 +vt 0.578125 0.5 +vt 0.625 0.5 +vt 0.75 0.625 +vt 0.625 0.625 +vt 0.625 0.5 +vt 0.75 0.5 +vt 0.453125 0.625 +vt 0.40625 0.625 +vt 0.40625 0.5 +vt 0.453125 0.5 +vt 0.453125 0.625 +vt 0.578125 0.625 +vt 0.578125 0.671875 +vt 0.453125 0.671875 +vt 0.578125 0.671875 +vt 0.703125 0.671875 +vt 0.703125 0.625 +vt 0.578125 0.625 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 124/364/91 127/363/91 125/362/91 122/361/91 +f 123/368/92 124/367/92 122/366/92 121/365/92 +f 128/372/93 123/371/93 121/370/93 126/369/93 +f 127/376/94 128/375/94 126/374/94 125/373/94 +f 126/380/95 121/379/95 122/378/95 125/377/95 +f 127/384/96 124/383/96 123/382/96 128/381/96 +o Saddle +v 0.34375 1.34375 0.375 +v 0.34375 1.34375 -0.25 +v 0.34375 0.71875 0.375 +v 0.34375 0.71875 -0.25 +v -0.34375 1.34375 -0.25 +v -0.34375 1.34375 0.375 +v -0.34375 0.71875 -0.25 +v -0.34375 0.71875 0.375 +vt 0.546875 0.859375 +vt 0.703125 0.859375 +vt 0.703125 0.71875 +vt 0.546875 0.71875 +vt 0.40625 0.859375 +vt 0.546875 0.859375 +vt 0.546875 0.71875 +vt 0.40625 0.71875 +vt 0.84375 0.859375 +vt 1 0.859375 +vt 1 0.71875 +vt 0.84375 0.71875 +vt 0.703125 0.859375 +vt 0.84375 0.859375 +vt 0.84375 0.71875 +vt 0.703125 0.71875 +vt 0.703125 0.859375 +vt 0.546875 0.859375 +vt 0.546875 1 +vt 0.703125 1 +vt 0.859375 1 +vt 0.703125 1 +vt 0.703125 0.859375 +vt 0.859375 0.859375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 132/388/97 135/387/97 133/386/97 130/385/97 +f 131/392/98 132/391/98 130/390/98 129/389/98 +f 136/396/99 131/395/99 129/394/99 134/393/99 +f 135/400/100 136/399/100 134/398/100 133/397/100 +f 134/404/101 129/403/101 130/402/101 133/401/101 +f 135/408/102 132/407/102 131/406/102 136/405/102 +o SaddleMouthL +v -0.125 1.6952722283113841 -1.1540063509461098 +v -0.125 1.6327722283113841 -1.2622595264191645 +v -0.125 1.587019052838329 -1.0915063509461098 +v -0.125 1.524519052838329 -1.1997595264191645 +v -0.1875 1.6327722283113841 -1.2622595264191645 +v -0.1875 1.6952722283113841 -1.1540063509461098 +v -0.1875 1.524519052838329 -1.1997595264191645 +v -0.1875 1.587019052838329 -1.0915063509461098 +vt 0.484375 0.890625 +vt 0.5 0.890625 +vt 0.5 0.859375 +vt 0.484375 0.859375 +vt 0.453125 0.890625 +vt 0.484375 0.890625 +vt 0.484375 0.859375 +vt 0.453125 0.859375 +vt 0.53125 0.890625 +vt 0.546875 0.890625 +vt 0.546875 0.859375 +vt 0.53125 0.859375 +vt 0.5 0.890625 +vt 0.53125 0.890625 +vt 0.53125 0.859375 +vt 0.5 0.859375 +vt 0.5 0.890625 +vt 0.484375 0.890625 +vt 0.484375 0.921875 +vt 0.5 0.921875 +vt 0.515625 0.921875 +vt 0.5 0.921875 +vt 0.5 0.890625 +vt 0.515625 0.890625 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 140/412/103 143/411/103 141/410/103 138/409/103 +f 139/416/104 140/415/104 138/414/104 137/413/104 +f 144/420/105 139/419/105 137/418/105 142/417/105 +f 143/424/106 144/423/106 142/422/106 141/421/106 +f 142/428/107 137/427/107 138/426/107 141/425/107 +f 143/432/108 140/431/108 139/430/108 144/429/108 +o SaddleMouthR +v 0.1875 1.6952722283113841 -1.1540063509461098 +v 0.1875 1.6327722283113841 -1.2622595264191645 +v 0.1875 1.587019052838329 -1.0915063509461098 +v 0.1875 1.524519052838329 -1.1997595264191645 +v 0.125 1.6327722283113841 -1.2622595264191645 +v 0.125 1.6952722283113841 -1.1540063509461098 +v 0.125 1.524519052838329 -1.1997595264191645 +v 0.125 1.587019052838329 -1.0915063509461098 +vt 0.484375 0.890625 +vt 0.5 0.890625 +vt 0.5 0.859375 +vt 0.484375 0.859375 +vt 0.453125 0.890625 +vt 0.484375 0.890625 +vt 0.484375 0.859375 +vt 0.453125 0.859375 +vt 0.53125 0.890625 +vt 0.546875 0.890625 +vt 0.546875 0.859375 +vt 0.53125 0.859375 +vt 0.5 0.890625 +vt 0.53125 0.890625 +vt 0.53125 0.859375 +vt 0.5 0.859375 +vt 0.5 0.890625 +vt 0.484375 0.890625 +vt 0.484375 0.921875 +vt 0.5 0.921875 +vt 0.515625 0.921875 +vt 0.5 0.921875 +vt 0.5 0.890625 +vt 0.515625 0.890625 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 148/436/109 151/435/109 149/434/109 146/433/109 +f 147/440/110 148/439/110 146/438/110 145/437/110 +f 152/444/111 147/443/111 145/442/111 150/441/111 +f 151/448/112 152/447/112 150/446/112 149/445/112 +f 150/452/113 145/451/113 146/450/113 149/449/113 +f 151/456/114 148/455/114 147/454/114 152/453/114 +o SaddleMouthLine +v -0.19374999999999998 1.6875 -0.21875 +v -0.19374999999999998 1.6875 -1.21875 +v -0.19374999999999998 1.5 -0.21875 +v -0.19374999999999998 1.5 -1.21875 +v -0.19374999999999998 1.6875 -1.21875 +v -0.19374999999999998 1.6875 -0.21875 +v -0.19374999999999998 1.5 -1.21875 +v -0.19374999999999998 1.5 -0.21875 +vt 0.75 0.71875 +vt 0.75 0.71875 +vt 0.75 0.671875 +vt 0.75 0.671875 +vt 0.5 0.71875 +vt 0.75 0.71875 +vt 0.75 0.671875 +vt 0.5 0.671875 +vt 1 0.71875 +vt 1 0.71875 +vt 1 0.671875 +vt 1 0.671875 +vt 0.75 0.71875 +vt 1 0.71875 +vt 1 0.671875 +vt 0.75 0.671875 +vt 0.75 0.71875 +vt 0.75 0.71875 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 0.71875 +vt 0.75 0.71875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 156/460/115 159/459/115 157/458/115 154/457/115 +f 155/464/116 156/463/116 154/462/116 153/461/116 +f 160/468/117 155/467/117 153/466/117 158/465/117 +f 159/472/118 160/471/118 158/470/118 157/469/118 +f 158/476/119 153/475/119 154/474/119 157/473/119 +f 159/480/120 156/479/120 155/478/120 160/477/120 +o SaddleMouthLineR +v 0.19374999999999998 1.6875 -0.21875 +v 0.19374999999999998 1.6875 -1.21875 +v 0.19374999999999998 1.5 -0.21875 +v 0.19374999999999998 1.5 -1.21875 +v 0.19374999999999998 1.6875 -1.21875 +v 0.19374999999999998 1.6875 -0.21875 +v 0.19374999999999998 1.5 -1.21875 +v 0.19374999999999998 1.5 -0.21875 +vt 0.75 0.71875 +vt 0.75 0.71875 +vt 0.75 0.671875 +vt 0.75 0.671875 +vt 0.5 0.71875 +vt 0.75 0.71875 +vt 0.75 0.671875 +vt 0.5 0.671875 +vt 1 0.71875 +vt 1 0.71875 +vt 1 0.671875 +vt 1 0.671875 +vt 0.75 0.71875 +vt 1 0.71875 +vt 1 0.671875 +vt 0.75 0.671875 +vt 0.75 0.71875 +vt 0.75 0.71875 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 0.96875 +vt 0.75 0.71875 +vt 0.75 0.71875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 164/484/121 167/483/121 165/482/121 162/481/121 +f 163/488/122 164/487/122 162/486/122 161/485/122 +f 168/492/123 163/491/123 161/490/123 166/489/123 +f 167/496/124 168/495/124 166/494/124 165/493/124 +f 166/500/125 161/499/125 162/498/125 165/497/125 +f 167/504/126 164/503/126 163/502/126 168/501/126 +o HeadSaddle +v 0.140625 1.8561195507185708 -1.1566606162754502 +v 0.140625 1.7779945507185708 -1.291977085616769 +v 0.140625 1.5584233181676694 -0.9847856162754505 +v 0.140625 1.4802983181676697 -1.120102085616769 +v -0.140625 1.7779945507185708 -1.291977085616769 +v -0.140625 1.8561195507185708 -1.1566606162754502 +v -0.140625 1.4802983181676697 -1.120102085616769 +v -0.140625 1.5584233181676694 -0.9847856162754505 +vt 0.328125 0.96875 +vt 0.390625 0.96875 +vt 0.390625 0.890625 +vt 0.328125 0.890625 +vt 0.296875 0.96875 +vt 0.328125 0.96875 +vt 0.328125 0.890625 +vt 0.296875 0.890625 +vt 0.421875 0.96875 +vt 0.484375 0.96875 +vt 0.484375 0.890625 +vt 0.421875 0.890625 +vt 0.390625 0.96875 +vt 0.421875 0.96875 +vt 0.421875 0.890625 +vt 0.390625 0.890625 +vt 0.390625 0.96875 +vt 0.328125 0.96875 +vt 0.328125 1 +vt 0.390625 1 +vt 0.453125 1 +vt 0.390625 1 +vt 0.390625 0.96875 +vt 0.453125 0.96875 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 172/508/127 175/507/127 173/506/127 170/505/127 +f 171/512/128 172/511/128 170/510/128 169/509/128 +f 176/516/129 171/515/129 169/514/129 174/513/129 +f 175/520/130 176/519/130 174/518/130 173/517/130 +f 174/524/131 169/523/131 170/522/131 173/521/131 +f 175/528/132 172/527/132 171/526/132 176/525/132 +o HeadSaddle +v 0.203125 2.074869550718571 -0.7777745021197584 +v 0.203125 1.8404945507185708 -1.183723910143714 +v 0.203125 1.7771733181676694 -0.6058995021197586 +v 0.203125 1.5427983181676694 -1.0118489101437143 +v -0.203125 1.8404945507185708 -1.183723910143714 +v -0.203125 2.074869550718571 -0.7777745021197584 +v -0.203125 1.5427983181676694 -1.0118489101437143 +v -0.203125 1.7771733181676694 -0.6058995021197586 +vt 0.109375 0.890625 +vt 0.203125 0.890625 +vt 0.203125 0.8125 +vt 0.109375 0.8125 +vt 0 0.890625 +vt 0.109375 0.890625 +vt 0.109375 0.8125 +vt 0 0.8125 +vt 0.3125 0.890625 +vt 0.40625 0.890625 +vt 0.40625 0.8125 +vt 0.3125 0.8125 +vt 0.203125 0.890625 +vt 0.3125 0.890625 +vt 0.3125 0.8125 +vt 0.203125 0.8125 +vt 0.203125 0.890625 +vt 0.109375 0.890625 +vt 0.109375 1 +vt 0.203125 1 +vt 0.296875 1 +vt 0.203125 1 +vt 0.203125 0.890625 +vt 0.296875 0.890625 +vn 0 -0.49999999999999994 -0.8660254037844387 +vn 1 0 0 +vn 0 0.49999999999999994 0.8660254037844387 +vn -1 0 0 +vn 0 0.8660254037844387 -0.49999999999999994 +vn 0 -0.8660254037844387 0.49999999999999994 +usemtl m_1e01f934-e3cf-9457-589b-e2903555a409 +f 180/532/133 183/531/133 181/530/133 178/529/133 +f 179/536/134 180/535/134 178/534/134 177/533/134 +f 184/540/135 179/539/135 177/538/135 182/537/135 +f 183/544/136 184/543/136 182/542/136 181/541/136 +f 182/548/137 177/547/137 178/546/137 181/545/137 +f 183/552/138 180/551/138 179/550/138 184/549/138 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/llama.obj b/renderer/viewer/three/entity/models/llama.obj new file mode 100644 index 00000000..1ef48ac5 --- /dev/null +++ b/renderer/viewer/three/entity/models/llama.obj @@ -0,0 +1,509 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o head +v 0.125 1.9375 -0.4375 +v 0.125 1.9375 -1 +v 0.125 1.6875 -0.4375 +v 0.125 1.6875 -1 +v -0.125 1.9375 -1 +v -0.125 1.9375 -0.4375 +v -0.125 1.6875 -1 +v -0.125 1.6875 -0.4375 +vt 0.0703125 0.859375 +vt 0.1015625 0.859375 +vt 0.1015625 0.796875 +vt 0.0703125 0.796875 +vt 0 0.859375 +vt 0.0703125 0.859375 +vt 0.0703125 0.796875 +vt 0 0.796875 +vt 0.171875 0.859375 +vt 0.203125 0.859375 +vt 0.203125 0.796875 +vt 0.171875 0.796875 +vt 0.1015625 0.859375 +vt 0.171875 0.859375 +vt 0.171875 0.796875 +vt 0.1015625 0.796875 +vt 0.1015625 0.859375 +vt 0.0703125 0.859375 +vt 0.0703125 1 +vt 0.1015625 1 +vt 0.1328125 1 +vt 0.1015625 1 +vt 0.1015625 0.859375 +vt 0.1328125 0.859375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o head +v 0.25 2.0625 -0.375 +v 0.25 2.0625 -0.75 +v 0.25 0.9375 -0.375 +v 0.25 0.9375 -0.75 +v -0.25 2.0625 -0.75 +v -0.25 2.0625 -0.375 +v -0.25 0.9375 -0.75 +v -0.25 0.9375 -0.375 +vt 0.046875 0.6875 +vt 0.109375 0.6875 +vt 0.109375 0.40625 +vt 0.046875 0.40625 +vt 0 0.6875 +vt 0.046875 0.6875 +vt 0.046875 0.40625 +vt 0 0.40625 +vt 0.15625 0.6875 +vt 0.21875 0.6875 +vt 0.21875 0.40625 +vt 0.15625 0.40625 +vt 0.109375 0.6875 +vt 0.15625 0.6875 +vt 0.15625 0.40625 +vt 0.109375 0.40625 +vt 0.109375 0.6875 +vt 0.046875 0.6875 +vt 0.046875 0.78125 +vt 0.109375 0.78125 +vt 0.171875 0.78125 +vt 0.109375 0.78125 +vt 0.109375 0.6875 +vt 0.171875 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.25 2.25 -0.5 +v 0.25 2.25 -0.625 +v 0.25 2.0625 -0.5 +v 0.25 2.0625 -0.625 +v 0.0625 2.25 -0.625 +v 0.0625 2.25 -0.5 +v 0.0625 2.0625 -0.625 +v 0.0625 2.0625 -0.5 +vt 0.1484375 0.96875 +vt 0.171875 0.96875 +vt 0.171875 0.921875 +vt 0.1484375 0.921875 +vt 0.1328125 0.96875 +vt 0.1484375 0.96875 +vt 0.1484375 0.921875 +vt 0.1328125 0.921875 +vt 0.1875 0.96875 +vt 0.2109375 0.96875 +vt 0.2109375 0.921875 +vt 0.1875 0.921875 +vt 0.171875 0.96875 +vt 0.1875 0.96875 +vt 0.1875 0.921875 +vt 0.171875 0.921875 +vt 0.171875 0.96875 +vt 0.1484375 0.96875 +vt 0.1484375 1 +vt 0.171875 1 +vt 0.1953125 1 +vt 0.171875 1 +vt 0.171875 0.96875 +vt 0.1953125 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v -0.0625 2.25 -0.5 +v -0.0625 2.25 -0.625 +v -0.0625 2.0625 -0.5 +v -0.0625 2.0625 -0.625 +v -0.25 2.25 -0.625 +v -0.25 2.25 -0.5 +v -0.25 2.0625 -0.625 +v -0.25 2.0625 -0.5 +vt 0.1484375 0.96875 +vt 0.171875 0.96875 +vt 0.171875 0.921875 +vt 0.1484375 0.921875 +vt 0.1328125 0.96875 +vt 0.1484375 0.96875 +vt 0.1484375 0.921875 +vt 0.1328125 0.921875 +vt 0.1875 0.96875 +vt 0.2109375 0.96875 +vt 0.2109375 0.921875 +vt 0.1875 0.921875 +vt 0.171875 0.96875 +vt 0.1875 0.96875 +vt 0.1875 0.921875 +vt 0.171875 0.921875 +vt 0.171875 0.96875 +vt 0.1484375 0.96875 +vt 0.1484375 1 +vt 0.171875 1 +vt 0.1953125 1 +vt 0.171875 1 +vt 0.171875 0.96875 +vt 0.1953125 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o chest1 +v 0.34375 1.3125 0.3750000000000001 +v 0.53125 1.3125 0.375 +v 0.34375 0.8125 0.3750000000000001 +v 0.53125 0.8125 0.375 +v 0.53125 1.3125 -0.12499999999999994 +v 0.34375 1.3125 -0.12499999999999989 +v 0.53125 0.8125 -0.12499999999999994 +v 0.34375 0.8125 -0.12499999999999989 +vt 0.375 0.515625 +vt 0.4375 0.515625 +vt 0.4375 0.390625 +vt 0.375 0.390625 +vt 0.3515625 0.515625 +vt 0.375 0.515625 +vt 0.375 0.390625 +vt 0.3515625 0.390625 +vt 0.4609375 0.515625 +vt 0.5234375 0.515625 +vt 0.5234375 0.390625 +vt 0.4609375 0.390625 +vt 0.4375 0.515625 +vt 0.4609375 0.515625 +vt 0.4609375 0.390625 +vt 0.4375 0.390625 +vt 0.4375 0.515625 +vt 0.375 0.515625 +vt 0.375 0.5625 +vt 0.4375 0.5625 +vt 0.5 0.5625 +vt 0.4375 0.5625 +vt 0.4375 0.515625 +vt 0.5 0.515625 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o chest2 +v -0.53125 1.3125 0.3750000000000001 +v -0.34374999999999994 1.3125 0.375 +v -0.53125 0.8125 0.3750000000000001 +v -0.34374999999999994 0.8125 0.375 +v -0.34375000000000006 1.3125 -0.125 +v -0.5312500000000001 1.3125 -0.12499999999999989 +v -0.34375000000000006 0.8125 -0.125 +v -0.5312500000000001 0.8125 -0.12499999999999989 +vt 0.375 0.3125 +vt 0.4375 0.3125 +vt 0.4375 0.1875 +vt 0.375 0.1875 +vt 0.3515625 0.3125 +vt 0.375 0.3125 +vt 0.375 0.1875 +vt 0.3515625 0.1875 +vt 0.4609375 0.3125 +vt 0.5234375 0.3125 +vt 0.5234375 0.1875 +vt 0.4609375 0.1875 +vt 0.4375 0.3125 +vt 0.4609375 0.3125 +vt 0.4609375 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0.3125 +vt 0.375 0.3125 +vt 0.375 0.359375 +vt 0.4375 0.359375 +vt 0.5 0.359375 +vt 0.4375 0.359375 +vt 0.4375 0.3125 +vt 0.5 0.3125 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o body +v 0.375 1.3750000000000002 -0.5 +v 0.375 0.7500000000000002 -0.5 +v 0.375 1.375 0.625 +v 0.375 0.75 0.625 +v -0.375 0.7500000000000002 -0.5 +v -0.375 1.3750000000000002 -0.5 +v -0.375 0.75 0.625 +v -0.375 1.375 0.625 +vt 0.3046875 0.84375 +vt 0.3984375 0.84375 +vt 0.3984375 0.5625 +vt 0.3046875 0.5625 +vt 0.2265625 0.84375 +vt 0.3046875 0.84375 +vt 0.3046875 0.5625 +vt 0.2265625 0.5625 +vt 0.4765625 0.84375 +vt 0.5703125 0.84375 +vt 0.5703125 0.5625 +vt 0.4765625 0.5625 +vt 0.3984375 0.84375 +vt 0.4765625 0.84375 +vt 0.4765625 0.5625 +vt 0.3984375 0.5625 +vt 0.3984375 0.84375 +vt 0.3046875 0.84375 +vt 0.3046875 1 +vt 0.3984375 1 +vt 0.4921875 1 +vt 0.3984375 1 +vt 0.3984375 0.84375 +vt 0.4921875 0.84375 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o leg0 +v 0.34375 0.875 0.5 +v 0.34375 0.875 0.25 +v 0.34375 0 0.5 +v 0.34375 0 0.25 +v 0.09375 0.875 0.25 +v 0.09375 0.875 0.5 +v 0.09375 0 0.25 +v 0.09375 0 0.5 +vt 0.2578125 0.484375 +vt 0.2890625 0.484375 +vt 0.2890625 0.265625 +vt 0.2578125 0.265625 +vt 0.2265625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.265625 +vt 0.2265625 0.265625 +vt 0.3203125 0.484375 +vt 0.3515625 0.484375 +vt 0.3515625 0.265625 +vt 0.3203125 0.265625 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vt 0.3203125 0.265625 +vt 0.2890625 0.265625 +vt 0.2890625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.546875 +vt 0.2890625 0.546875 +vt 0.3203125 0.546875 +vt 0.2890625 0.546875 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o leg1 +v -0.09375 0.875 0.5 +v -0.09375 0.875 0.25 +v -0.09375 0 0.5 +v -0.09375 0 0.25 +v -0.34375 0.875 0.25 +v -0.34375 0.875 0.5 +v -0.34375 0 0.25 +v -0.34375 0 0.5 +vt 0.2578125 0.484375 +vt 0.2890625 0.484375 +vt 0.2890625 0.265625 +vt 0.2578125 0.265625 +vt 0.2265625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.265625 +vt 0.2265625 0.265625 +vt 0.3203125 0.484375 +vt 0.3515625 0.484375 +vt 0.3515625 0.265625 +vt 0.3203125 0.265625 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vt 0.3203125 0.265625 +vt 0.2890625 0.265625 +vt 0.2890625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.546875 +vt 0.2890625 0.546875 +vt 0.3203125 0.546875 +vt 0.2890625 0.546875 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o leg2 +v 0.34375 0.875 -0.1875 +v 0.34375 0.875 -0.4375 +v 0.34375 0 -0.1875 +v 0.34375 0 -0.4375 +v 0.09375 0.875 -0.4375 +v 0.09375 0.875 -0.1875 +v 0.09375 0 -0.4375 +v 0.09375 0 -0.1875 +vt 0.2578125 0.484375 +vt 0.2890625 0.484375 +vt 0.2890625 0.265625 +vt 0.2578125 0.265625 +vt 0.2265625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.265625 +vt 0.2265625 0.265625 +vt 0.3203125 0.484375 +vt 0.3515625 0.484375 +vt 0.3515625 0.265625 +vt 0.3203125 0.265625 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vt 0.3203125 0.265625 +vt 0.2890625 0.265625 +vt 0.2890625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.546875 +vt 0.2890625 0.546875 +vt 0.3203125 0.546875 +vt 0.2890625 0.546875 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o leg3 +v -0.09375 0.875 -0.1875 +v -0.09375 0.875 -0.4375 +v -0.09375 0 -0.1875 +v -0.09375 0 -0.4375 +v -0.34375 0.875 -0.4375 +v -0.34375 0.875 -0.1875 +v -0.34375 0 -0.4375 +v -0.34375 0 -0.1875 +vt 0.2578125 0.484375 +vt 0.2890625 0.484375 +vt 0.2890625 0.265625 +vt 0.2578125 0.265625 +vt 0.2265625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.265625 +vt 0.2265625 0.265625 +vt 0.3203125 0.484375 +vt 0.3515625 0.484375 +vt 0.3515625 0.265625 +vt 0.3203125 0.265625 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vt 0.3203125 0.265625 +vt 0.2890625 0.265625 +vt 0.2890625 0.484375 +vt 0.2578125 0.484375 +vt 0.2578125 0.546875 +vt 0.2890625 0.546875 +vt 0.3203125 0.546875 +vt 0.2890625 0.546875 +vt 0.2890625 0.484375 +vt 0.3203125 0.484375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c2c1ddb5-5693-7a64-a950-f7fec476ea98 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/minecart.obj b/renderer/viewer/three/entity/models/minecart.obj new file mode 100644 index 00000000..0dd2f4c8 --- /dev/null +++ b/renderer/viewer/three/entity/models/minecart.obj @@ -0,0 +1,233 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o bottom +v 0.625 0.12500000000000022 -0.5000000000000002 +v 0.625 2.220446049250313e-16 -0.5000000000000002 +v 0.625 0.125 0.4999999999999998 +v 0.625 0 0.4999999999999998 +v -0.625 2.220446049250313e-16 -0.5000000000000002 +v -0.625 0.12500000000000022 -0.5000000000000002 +v -0.625 0 0.4999999999999998 +v -0.625 0.125 0.4999999999999998 +vt 0.34375 0.625 +vt 0.03125 0.625 +vt 0.03125 0.125 +vt 0.34375 0.125 +vt 0.375 0.625 +vt 0.34375 0.625 +vt 0.34375 0.125 +vt 0.375 0.125 +vt 0.6875 0.625 +vt 0.375 0.625 +vt 0.375 0.125 +vt 0.6875 0.125 +vt 0.03125 0.625 +vt 0 0.625 +vt 0 0.125 +vt 0.03125 0.125 +vt 0.03125 0.625 +vt 0.34375 0.625 +vt 0.34375 0.6875 +vt 0.03125 0.6875 +vt 0.34375 0.6875 +vt 0.65625 0.6875 +vt 0.65625 0.625 +vt 0.34375 0.625 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_51fd1571-03b7-0fcd-9442-72fc6c7ce0a3 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o front +v 0.625 0.625 -0.5 +v 0.5 0.625 -0.5 +v 0.625 0.125 -0.5 +v 0.5 0.125 -0.5 +v 0.4999999999999999 0.625 0.5 +v 0.625 0.625 0.5 +v 0.4999999999999999 0.125 0.5 +v 0.625 0.125 0.5 +vt 0.28125 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.6875 +vt 0.28125 0.6875 +vt 0.3125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 0.6875 +vt 0.3125 0.6875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.6875 +vt 0.5625 0.6875 +vt 0.03125 0.9375 +vt 0 0.9375 +vt 0 0.6875 +vt 0.03125 0.6875 +vt 0.03125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 1 +vt 0.03125 1 +vt 0.28125 1 +vt 0.53125 1 +vt 0.53125 0.9375 +vt 0.28125 0.9375 +vn -1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 -1 +vn 1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_51fd1571-03b7-0fcd-9442-72fc6c7ce0a3 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o back +v -0.6249999999999999 0.625 0.5 +v -0.4999999999999999 0.625 0.5 +v -0.6249999999999999 0.125 0.5 +v -0.4999999999999999 0.125 0.5 +v -0.5000000000000001 0.625 -0.5 +v -0.6250000000000001 0.625 -0.5 +v -0.5000000000000001 0.125 -0.5 +v -0.6250000000000001 0.125 -0.5 +vt 0.28125 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.6875 +vt 0.28125 0.6875 +vt 0.3125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 0.6875 +vt 0.3125 0.6875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.6875 +vt 0.5625 0.6875 +vt 0.03125 0.9375 +vt 0 0.9375 +vt 0 0.6875 +vt 0.03125 0.6875 +vt 0.03125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 1 +vt 0.03125 1 +vt 0.28125 1 +vt 0.53125 1 +vt 0.53125 0.9375 +vt 0.28125 0.9375 +vn 1 0 -2.220446049250313e-16 +vn 2.220446049250313e-16 0 1 +vn -1 0 2.220446049250313e-16 +vn -2.220446049250313e-16 0 -1 +vn 0 1 0 +vn 0 -1 0 +usemtl m_51fd1571-03b7-0fcd-9442-72fc6c7ce0a3 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o right +v -0.49999999999999994 0.625 -0.5 +v -0.5000000000000001 0.625 -0.37500000000000006 +v -0.49999999999999994 0.125 -0.5 +v -0.5000000000000001 0.125 -0.37500000000000006 +v 0.5 0.625 -0.3749999999999999 +v 0.5 0.625 -0.49999999999999994 +v 0.5 0.125 -0.3749999999999999 +v 0.5 0.125 -0.49999999999999994 +vt 0.28125 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.6875 +vt 0.28125 0.6875 +vt 0.3125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 0.6875 +vt 0.3125 0.6875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.6875 +vt 0.5625 0.6875 +vt 0.03125 0.9375 +vt 0 0.9375 +vt 0 0.6875 +vt 0.03125 0.6875 +vt 0.03125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 1 +vt 0.03125 1 +vt 0.28125 1 +vt 0.53125 1 +vt 0.53125 0.9375 +vt 0.28125 0.9375 +vn -1.2246467991473532e-16 0 1 +vn -1 0 -1.2246467991473532e-16 +vn 1.2246467991473532e-16 0 -1 +vn 1 0 1.2246467991473532e-16 +vn 0 1 0 +vn 0 -1 0 +usemtl m_51fd1571-03b7-0fcd-9442-72fc6c7ce0a3 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o left +v 0.5 0.625 0.5 +v 0.5 0.625 0.375 +v 0.5 0.125 0.5 +v 0.5 0.125 0.375 +v -0.5 0.625 0.375 +v -0.5 0.625 0.5 +v -0.5 0.125 0.375 +v -0.5 0.125 0.5 +vt 0.28125 0.9375 +vt 0.03125 0.9375 +vt 0.03125 0.6875 +vt 0.28125 0.6875 +vt 0.3125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 0.6875 +vt 0.3125 0.6875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.6875 +vt 0.5625 0.6875 +vt 0.03125 0.9375 +vt 0 0.9375 +vt 0 0.6875 +vt 0.03125 0.6875 +vt 0.03125 0.9375 +vt 0.28125 0.9375 +vt 0.28125 1 +vt 0.03125 1 +vt 0.28125 1 +vt 0.53125 1 +vt 0.53125 0.9375 +vt 0.28125 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_51fd1571-03b7-0fcd-9442-72fc6c7ce0a3 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/parrot.obj b/renderer/viewer/three/entity/models/parrot.obj new file mode 100644 index 00000000..35d14a5d --- /dev/null +++ b/renderer/viewer/three/entity/models/parrot.obj @@ -0,0 +1,509 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.09375 0.5083704620381906 -0.10253364496531403 +v 0.09375 0.4291295379618094 -0.2724663550346859 +v 0.09375 0.16850504189944682 0.05594820318744831 +v 0.09375 0.08926411782306565 -0.11398450688192363 +v -0.09375 0.4291295379618094 -0.2724663550346859 +v -0.09375 0.5083704620381906 -0.10253364496531403 +v -0.09375 0.08926411782306565 -0.11398450688192363 +v -0.09375 0.16850504189944682 0.05594820318744831 +vt 0.15625 0.65625 +vt 0.25 0.65625 +vt 0.25 0.46875 +vt 0.15625 0.46875 +vt 0.0625 0.65625 +vt 0.15625 0.65625 +vt 0.15625 0.46875 +vt 0.0625 0.46875 +vt 0.34375 0.65625 +vt 0.4375 0.65625 +vt 0.4375 0.46875 +vt 0.34375 0.46875 +vt 0.25 0.65625 +vt 0.34375 0.65625 +vt 0.34375 0.46875 +vt 0.25 0.46875 +vt 0.25 0.65625 +vt 0.15625 0.65625 +vt 0.15625 0.75 +vt 0.25 0.75 +vt 0.34375 0.75 +vt 0.25 0.75 +vt 0.25 0.65625 +vt 0.34375 0.65625 +vn 0 -0.42261826174069944 -0.9063077870366499 +vn 1 0 0 +vn 0 0.42261826174069944 0.9063077870366499 +vn -1 0 0 +vn 0 0.9063077870366499 -0.42261826174069944 +vn 0 -0.9063077870366499 0.42261826174069944 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o wing0 +v -0.0625 0.5051478245037531 -0.08881019196643142 +v -0.0625 0.3976022426879319 -0.24240120027061735 +v -0.0625 0.24916281066344315 0.09043244439327047 +v -0.0625 0.14161722884762196 -0.06315856391091551 +v -0.125 0.3976022426879319 -0.24240120027061735 +v -0.125 0.5051478245037531 -0.08881019196643142 +v -0.125 0.14161722884762196 -0.06315856391091551 +v -0.125 0.24916281066344315 0.09043244439327047 +vt 0.6875 0.65625 +vt 0.71875 0.65625 +vt 0.71875 0.5 +vt 0.6875 0.5 +vt 0.59375 0.65625 +vt 0.6875 0.65625 +vt 0.6875 0.5 +vt 0.59375 0.5 +vt 0.8125 0.65625 +vt 0.84375 0.65625 +vt 0.84375 0.5 +vt 0.8125 0.5 +vt 0.71875 0.65625 +vt 0.8125 0.65625 +vt 0.8125 0.5 +vt 0.71875 0.5 +vt 0.71875 0.65625 +vt 0.6875 0.65625 +vt 0.6875 0.75 +vt 0.71875 0.75 +vt 0.75 0.75 +vt 0.71875 0.75 +vt 0.71875 0.65625 +vt 0.75 0.65625 +vn 0 -0.5735764363510462 -0.8191520442889919 +vn 1 0 0 +vn 0 0.5735764363510462 0.8191520442889919 +vn -1 0 0 +vn 0 0.8191520442889919 -0.5735764363510462 +vn 0 -0.8191520442889919 0.5735764363510462 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o wing1 +v 0.125 0.5051478245037531 -0.08881019196643142 +v 0.125 0.3976022426879319 -0.24240120027061735 +v 0.125 0.24916281066344315 0.09043244439327047 +v 0.125 0.14161722884762196 -0.06315856391091551 +v 0.0625 0.3976022426879319 -0.24240120027061735 +v 0.0625 0.5051478245037531 -0.08881019196643142 +v 0.0625 0.14161722884762196 -0.06315856391091551 +v 0.0625 0.24916281066344315 0.09043244439327047 +vt 0.6875 0.65625 +vt 0.71875 0.65625 +vt 0.71875 0.5 +vt 0.6875 0.5 +vt 0.59375 0.65625 +vt 0.6875 0.65625 +vt 0.6875 0.5 +vt 0.59375 0.5 +vt 0.8125 0.65625 +vt 0.84375 0.65625 +vt 0.84375 0.5 +vt 0.8125 0.5 +vt 0.71875 0.65625 +vt 0.8125 0.65625 +vt 0.8125 0.5 +vt 0.71875 0.5 +vt 0.71875 0.65625 +vt 0.6875 0.65625 +vt 0.6875 0.75 +vt 0.71875 0.75 +vt 0.75 0.75 +vt 0.71875 0.75 +vt 0.71875 0.65625 +vt 0.75 0.65625 +vn 0 -0.5735764363510462 -0.8191520442889919 +vn 1 0 0 +vn 0 0.5735764363510462 0.8191520442889919 +vn -1 0 0 +vn 0 0.8191520442889919 -0.5735764363510462 +vn 0 -0.8191520442889919 0.5735764363510462 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.0625 0.6125 -0.11249999999999999 +v 0.0625 0.6125 -0.2375 +v 0.0625 0.42500000000000004 -0.11249999999999999 +v 0.0625 0.42500000000000004 -0.2375 +v -0.0625 0.6125 -0.2375 +v -0.0625 0.6125 -0.11249999999999999 +v -0.0625 0.42500000000000004 -0.2375 +v -0.0625 0.42500000000000004 -0.11249999999999999 +vt 0.125 0.875 +vt 0.1875 0.875 +vt 0.1875 0.78125 +vt 0.125 0.78125 +vt 0.0625 0.875 +vt 0.125 0.875 +vt 0.125 0.78125 +vt 0.0625 0.78125 +vt 0.25 0.875 +vt 0.3125 0.875 +vt 0.3125 0.78125 +vt 0.25 0.78125 +vt 0.1875 0.875 +vt 0.25 0.875 +vt 0.25 0.78125 +vt 0.1875 0.78125 +vt 0.1875 0.875 +vt 0.125 0.875 +vt 0.125 0.9375 +vt 0.1875 0.9375 +vt 0.25 0.9375 +vt 0.1875 0.9375 +vt 0.1875 0.875 +vt 0.25 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o head2 +v 0.0625 0.675 -0.11249999999999999 +v 0.0625 0.675 -0.3625 +v 0.0625 0.6125 -0.11249999999999999 +v 0.0625 0.6125 -0.3625 +v -0.0625 0.675 -0.3625 +v -0.0625 0.675 -0.11249999999999999 +v -0.0625 0.6125 -0.3625 +v -0.0625 0.6125 -0.11249999999999999 +vt 0.4375 0.875 +vt 0.5 0.875 +vt 0.5 0.84375 +vt 0.4375 0.84375 +vt 0.3125 0.875 +vt 0.4375 0.875 +vt 0.4375 0.84375 +vt 0.3125 0.84375 +vt 0.625 0.875 +vt 0.6875 0.875 +vt 0.6875 0.84375 +vt 0.625 0.84375 +vt 0.5 0.875 +vt 0.625 0.875 +vt 0.625 0.84375 +vt 0.5 0.84375 +vt 0.5 0.875 +vt 0.4375 0.875 +vt 0.4375 1 +vt 0.5 1 +vt 0.5625 1 +vt 0.5 1 +vt 0.5 0.875 +vt 0.5625 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o beak1 +v 0.03125 0.6125 -0.23125 +v 0.03125 0.6125 -0.29375 +v 0.03125 0.48750000000000004 -0.23125 +v 0.03125 0.48750000000000004 -0.29375 +v -0.03125 0.6125 -0.29375 +v -0.03125 0.6125 -0.23125 +v -0.03125 0.48750000000000004 -0.29375 +v -0.03125 0.48750000000000004 -0.23125 +vt 0.375 0.75 +vt 0.40625 0.75 +vt 0.40625 0.6875 +vt 0.375 0.6875 +vt 0.34375 0.75 +vt 0.375 0.75 +vt 0.375 0.6875 +vt 0.34375 0.6875 +vt 0.4375 0.75 +vt 0.46875 0.75 +vt 0.46875 0.6875 +vt 0.4375 0.6875 +vt 0.40625 0.75 +vt 0.4375 0.75 +vt 0.4375 0.6875 +vt 0.40625 0.6875 +vt 0.40625 0.75 +vt 0.375 0.75 +vt 0.375 0.78125 +vt 0.40625 0.78125 +vt 0.4375 0.78125 +vt 0.40625 0.78125 +vt 0.40625 0.75 +vt 0.4375 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o beak2 +v 0.03125 0.6124999999999998 -0.29375 +v 0.03125 0.6124999999999998 -0.35625 +v 0.03125 0.5062500000000001 -0.29375 +v 0.03125 0.5062500000000001 -0.35625 +v -0.03125 0.6124999999999998 -0.35625 +v -0.03125 0.6124999999999998 -0.29375 +v -0.03125 0.5062500000000001 -0.35625 +v -0.03125 0.5062500000000001 -0.29375 +vt 0.53125 0.75 +vt 0.5625 0.75 +vt 0.5625 0.71875 +vt 0.53125 0.71875 +vt 0.5 0.75 +vt 0.53125 0.75 +vt 0.53125 0.71875 +vt 0.5 0.71875 +vt 0.59375 0.75 +vt 0.625 0.75 +vt 0.625 0.71875 +vt 0.59375 0.71875 +vt 0.5625 0.75 +vt 0.59375 0.75 +vt 0.59375 0.71875 +vt 0.5625 0.71875 +vt 0.5625 0.75 +vt 0.53125 0.75 +vt 0.53125 0.78125 +vt 0.5625 0.78125 +vt 0.59375 0.78125 +vt 0.5625 0.78125 +vt 0.5625 0.75 +vt 0.59375 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o feather +v 0 0.8812500000000001 -0.05625000000000002 +v 0 0.8812500000000001 -0.30625 +v 0 0.5687500000000001 -0.05625000000000002 +v 0 0.5687500000000001 -0.30625 +v 0 0.8812500000000001 -0.30625 +v 0 0.8812500000000001 -0.05625000000000002 +v 0 0.5687500000000001 -0.30625 +v 0 0.5687500000000001 -0.05625000000000002 +vt 0.1875 0.3125 +vt 0.1875 0.3125 +vt 0.1875 0.15625 +vt 0.1875 0.15625 +vt 0.0625 0.3125 +vt 0.1875 0.3125 +vt 0.1875 0.15625 +vt 0.0625 0.15625 +vt 0.3125 0.3125 +vt 0.3125 0.3125 +vt 0.3125 0.15625 +vt 0.3125 0.15625 +vt 0.1875 0.3125 +vt 0.3125 0.3125 +vt 0.3125 0.15625 +vt 0.1875 0.15625 +vt 0.1875 0.3125 +vt 0.1875 0.3125 +vt 0.1875 0.4375 +vt 0.1875 0.4375 +vt 0.1875 0.4375 +vt 0.1875 0.4375 +vt 0.1875 0.3125 +vt 0.1875 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o tail +v 0.09375 0.22142422560540864 0.027122222305063892 +v 0.09375 0.17354644791047258 -0.013052003300344839 +v 0.09375 0.06072732318377394 0.21863333308480837 +v 0.09375 0.012849545488837766 0.17845910747939964 +v -0.09375 0.17354644791047258 -0.013052003300344839 +v -0.09375 0.22142422560540864 0.027122222305063892 +v -0.09375 0.012849545488837766 0.17845910747939964 +v -0.09375 0.06072732318377394 0.21863333308480837 +vt 0.71875 0.9375 +vt 0.8125 0.9375 +vt 0.8125 0.8125 +vt 0.71875 0.8125 +vt 0.6875 0.9375 +vt 0.71875 0.9375 +vt 0.71875 0.8125 +vt 0.6875 0.8125 +vt 0.84375 0.9375 +vt 0.9375 0.9375 +vt 0.9375 0.8125 +vt 0.84375 0.8125 +vt 0.8125 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.8125 +vt 0.8125 0.8125 +vt 0.8125 0.9375 +vt 0.71875 0.9375 +vt 0.71875 0.96875 +vt 0.8125 0.96875 +vt 0.90625 0.96875 +vt 0.8125 0.96875 +vt 0.8125 0.9375 +vt 0.90625 0.9375 +vn 0 -0.766044443118978 -0.6427876096865393 +vn 1 0 0 +vn 0 0.766044443118978 0.6427876096865393 +vn -1 0 0 +vn 0 0.6427876096865393 -0.766044443118978 +vn 0 -0.6427876096865393 0.766044443118978 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o leg0 +v -0.03125 0.09375 -0.03125 +v -0.03125 0.09375 -0.09375 +v -0.03125 -0.03125 -0.03125 +v -0.03125 -0.03125 -0.09375 +v -0.09375 0.09375 -0.09375 +v -0.09375 0.09375 -0.03125 +v -0.09375 -0.03125 -0.09375 +v -0.09375 -0.03125 -0.03125 +vt 0.46875 0.40625 +vt 0.5 0.40625 +vt 0.5 0.34375 +vt 0.46875 0.34375 +vt 0.4375 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.34375 +vt 0.4375 0.34375 +vt 0.53125 0.40625 +vt 0.5625 0.40625 +vt 0.5625 0.34375 +vt 0.53125 0.34375 +vt 0.5 0.40625 +vt 0.53125 0.40625 +vt 0.53125 0.34375 +vt 0.5 0.34375 +vt 0.5 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.4375 +vt 0.5 0.4375 +vt 0.53125 0.4375 +vt 0.5 0.4375 +vt 0.5 0.40625 +vt 0.53125 0.40625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o leg1 +v 0.09375 0.09375 -0.03125 +v 0.09375 0.09375 -0.09375 +v 0.09375 -0.03125 -0.03125 +v 0.09375 -0.03125 -0.09375 +v 0.03125 0.09375 -0.09375 +v 0.03125 0.09375 -0.03125 +v 0.03125 -0.03125 -0.09375 +v 0.03125 -0.03125 -0.03125 +vt 0.46875 0.40625 +vt 0.5 0.40625 +vt 0.5 0.34375 +vt 0.46875 0.34375 +vt 0.4375 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.34375 +vt 0.4375 0.34375 +vt 0.53125 0.40625 +vt 0.5625 0.40625 +vt 0.5625 0.34375 +vt 0.53125 0.34375 +vt 0.5 0.40625 +vt 0.53125 0.40625 +vt 0.53125 0.34375 +vt 0.5 0.34375 +vt 0.5 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.4375 +vt 0.5 0.4375 +vt 0.53125 0.4375 +vt 0.5 0.4375 +vt 0.5 0.40625 +vt 0.53125 0.40625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_c341d2fe-028b-bd76-6b34-40c8c9b3653b +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/piglin.obj b/renderer/viewer/three/entity/models/piglin.obj new file mode 100644 index 00000000..2f68f4c1 --- /dev/null +++ b/renderer/viewer/three/entity/models/piglin.obj @@ -0,0 +1,739 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o Body +v 0.25 1.5 0.125 +v 0.25 1.5 -0.125 +v 0.25 0.75 0.125 +v 0.25 0.75 -0.125 +v -0.25 1.5 -0.125 +v -0.25 1.5 0.125 +v -0.25 0.75 -0.125 +v -0.25 0.75 0.125 +vt 0.3125 0.6875 +vt 0.4375 0.6875 +vt 0.4375 0.5 +vt 0.3125 0.5 +vt 0.25 0.6875 +vt 0.3125 0.6875 +vt 0.3125 0.5 +vt 0.25 0.5 +vt 0.5 0.6875 +vt 0.625 0.6875 +vt 0.625 0.5 +vt 0.5 0.5 +vt 0.4375 0.6875 +vt 0.5 0.6875 +vt 0.5 0.5 +vt 0.4375 0.5 +vt 0.4375 0.6875 +vt 0.3125 0.6875 +vt 0.3125 0.75 +vt 0.4375 0.75 +vt 0.5625 0.75 +vt 0.4375 0.75 +vt 0.4375 0.6875 +vt 0.5625 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o Body +v 0.265625 1.515625 0.140625 +v 0.265625 1.515625 -0.140625 +v 0.265625 0.734375 0.140625 +v 0.265625 0.734375 -0.140625 +v -0.265625 1.515625 -0.140625 +v -0.265625 1.515625 0.140625 +v -0.265625 0.734375 -0.140625 +v -0.265625 0.734375 0.140625 +vt 0.3125 0.4375 +vt 0.4375 0.4375 +vt 0.4375 0.25 +vt 0.3125 0.25 +vt 0.25 0.4375 +vt 0.3125 0.4375 +vt 0.3125 0.25 +vt 0.25 0.25 +vt 0.5 0.4375 +vt 0.625 0.4375 +vt 0.625 0.25 +vt 0.5 0.25 +vt 0.4375 0.4375 +vt 0.5 0.4375 +vt 0.5 0.25 +vt 0.4375 0.25 +vt 0.4375 0.4375 +vt 0.3125 0.4375 +vt 0.3125 0.5 +vt 0.4375 0.5 +vt 0.5625 0.5 +vt 0.4375 0.5 +vt 0.4375 0.4375 +vt 0.5625 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.31125 1.9987500000000002 0.24875000000000003 +v 0.31125 1.9987500000000002 -0.24875000000000003 +v 0.31125 1.5012499999999998 0.24875000000000003 +v 0.31125 1.5012499999999998 -0.24875000000000003 +v -0.31125 1.9987500000000002 -0.24875000000000003 +v -0.31125 1.9987500000000002 0.24875000000000003 +v -0.31125 1.5012499999999998 -0.24875000000000003 +v -0.31125 1.5012499999999998 0.24875000000000003 +vt 0.125 0.875 +vt 0.28125 0.875 +vt 0.28125 0.75 +vt 0.125 0.75 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.75 +vt 0 0.75 +vt 0.40625 0.875 +vt 0.5625 0.875 +vt 0.5625 0.75 +vt 0.40625 0.75 +vt 0.28125 0.875 +vt 0.40625 0.875 +vt 0.40625 0.75 +vt 0.28125 0.75 +vt 0.28125 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.28125 1 +vt 0.4375 1 +vt 0.28125 1 +vt 0.28125 0.875 +vt 0.4375 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.125 1.75 -0.25 +v 0.125 1.75 -0.3125 +v 0.125 1.5 -0.25 +v 0.125 1.5 -0.3125 +v -0.125 1.75 -0.3125 +v -0.125 1.75 -0.25 +v -0.125 1.5 -0.3125 +v -0.125 1.5 -0.25 +vt 0.5 0.96875 +vt 0.5625 0.96875 +vt 0.5625 0.90625 +vt 0.5 0.90625 +vt 0.484375 0.96875 +vt 0.5 0.96875 +vt 0.5 0.90625 +vt 0.484375 0.90625 +vt 0.578125 0.96875 +vt 0.640625 0.96875 +vt 0.640625 0.90625 +vt 0.578125 0.90625 +vt 0.5625 0.96875 +vt 0.578125 0.96875 +vt 0.578125 0.90625 +vt 0.5625 0.90625 +vt 0.5625 0.96875 +vt 0.5 0.96875 +vt 0.5 0.984375 +vt 0.5625 0.984375 +vt 0.625 0.984375 +vt 0.5625 0.984375 +vt 0.5625 0.96875 +vt 0.625 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o head +v -0.125 1.625 -0.25 +v -0.125 1.625 -0.3125 +v -0.125 1.5 -0.25 +v -0.125 1.5 -0.3125 +v -0.1875 1.625 -0.3125 +v -0.1875 1.625 -0.25 +v -0.1875 1.5 -0.3125 +v -0.1875 1.5 -0.25 +vt 0.046875 0.921875 +vt 0.0625 0.921875 +vt 0.0625 0.890625 +vt 0.046875 0.890625 +vt 0.03125 0.921875 +vt 0.046875 0.921875 +vt 0.046875 0.890625 +vt 0.03125 0.890625 +vt 0.078125 0.921875 +vt 0.09375 0.921875 +vt 0.09375 0.890625 +vt 0.078125 0.890625 +vt 0.0625 0.921875 +vt 0.078125 0.921875 +vt 0.078125 0.890625 +vt 0.0625 0.890625 +vt 0.0625 0.921875 +vt 0.046875 0.921875 +vt 0.046875 0.9375 +vt 0.0625 0.9375 +vt 0.078125 0.9375 +vt 0.0625 0.9375 +vt 0.0625 0.921875 +vt 0.078125 0.921875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o head +v 0.1875 1.625 -0.25 +v 0.1875 1.625 -0.3125 +v 0.1875 1.5 -0.25 +v 0.1875 1.5 -0.3125 +v 0.125 1.625 -0.3125 +v 0.125 1.625 -0.25 +v 0.125 1.5 -0.3125 +v 0.125 1.5 -0.25 +vt 0.046875 0.984375 +vt 0.0625 0.984375 +vt 0.0625 0.953125 +vt 0.046875 0.953125 +vt 0.03125 0.984375 +vt 0.046875 0.984375 +vt 0.046875 0.953125 +vt 0.03125 0.953125 +vt 0.078125 0.984375 +vt 0.09375 0.984375 +vt 0.09375 0.953125 +vt 0.078125 0.953125 +vt 0.0625 0.984375 +vt 0.078125 0.984375 +vt 0.078125 0.953125 +vt 0.0625 0.953125 +vt 0.0625 0.984375 +vt 0.046875 0.984375 +vt 0.046875 1 +vt 0.0625 1 +vt 0.078125 1 +vt 0.0625 1 +vt 0.0625 0.984375 +vt 0.078125 0.984375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o leftear +v -0.25837341226347266 1.84375 0.125 +v -0.25837341226347266 1.84375 -0.125 +v -0.41462341226347266 1.573117061317363 0.125 +v -0.41462341226347266 1.573117061317363 -0.125 +v -0.3125 1.875 -0.125 +v -0.3125 1.875 0.125 +v -0.46875 1.604367061317363 -0.125 +v -0.46875 1.604367061317363 0.125 +vt 0.859375 0.84375 +vt 0.875 0.84375 +vt 0.875 0.765625 +vt 0.859375 0.765625 +vt 0.796875 0.84375 +vt 0.859375 0.84375 +vt 0.859375 0.765625 +vt 0.796875 0.765625 +vt 0.9375 0.84375 +vt 0.953125 0.84375 +vt 0.953125 0.765625 +vt 0.9375 0.765625 +vt 0.875 0.84375 +vt 0.9375 0.84375 +vt 0.9375 0.765625 +vt 0.875 0.765625 +vt 0.875 0.84375 +vt 0.859375 0.84375 +vt 0.859375 0.90625 +vt 0.875 0.90625 +vt 0.890625 0.90625 +vt 0.875 0.90625 +vt 0.875 0.84375 +vt 0.890625 0.84375 +vn 0 0 -1 +vn 0.8660254037844387 -0.49999999999999994 0 +vn 0 0 1 +vn -0.8660254037844387 0.49999999999999994 0 +vn 0.49999999999999994 0.8660254037844387 0 +vn -0.49999999999999994 -0.8660254037844387 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o rightear +v 0.3125 1.875 0.125 +v 0.3125 1.875 -0.125 +v 0.46875 1.604367061317363 0.125 +v 0.46875 1.604367061317363 -0.125 +v 0.25837341226347266 1.84375 -0.125 +v 0.25837341226347266 1.84375 0.125 +v 0.41462341226347266 1.573117061317363 -0.125 +v 0.41462341226347266 1.573117061317363 0.125 +vt 0.671875 0.84375 +vt 0.6875 0.84375 +vt 0.6875 0.765625 +vt 0.671875 0.765625 +vt 0.609375 0.84375 +vt 0.671875 0.84375 +vt 0.671875 0.765625 +vt 0.609375 0.765625 +vt 0.75 0.84375 +vt 0.765625 0.84375 +vt 0.765625 0.765625 +vt 0.75 0.765625 +vt 0.6875 0.84375 +vt 0.75 0.84375 +vt 0.75 0.765625 +vt 0.6875 0.765625 +vt 0.6875 0.84375 +vt 0.671875 0.84375 +vt 0.671875 0.90625 +vt 0.6875 0.90625 +vt 0.703125 0.90625 +vt 0.6875 0.90625 +vt 0.6875 0.84375 +vt 0.703125 0.84375 +vn 0 0 -1 +vn 0.8660254037844387 0.49999999999999994 0 +vn 0 0 1 +vn -0.8660254037844387 -0.49999999999999994 0 +vn -0.49999999999999994 0.8660254037844387 0 +vn 0.49999999999999994 -0.8660254037844387 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o RightArm +v 0.5 1.5 0.125 +v 0.5 1.5 -0.125 +v 0.5 0.75 0.125 +v 0.5 0.75 -0.125 +v 0.25 1.5 -0.125 +v 0.25 1.5 0.125 +v 0.25 0.75 -0.125 +v 0.25 0.75 0.125 +vt 0.6875 0.6875 +vt 0.75 0.6875 +vt 0.75 0.5 +vt 0.6875 0.5 +vt 0.625 0.6875 +vt 0.6875 0.6875 +vt 0.6875 0.5 +vt 0.625 0.5 +vt 0.8125 0.6875 +vt 0.875 0.6875 +vt 0.875 0.5 +vt 0.8125 0.5 +vt 0.75 0.6875 +vt 0.8125 0.6875 +vt 0.8125 0.5 +vt 0.75 0.5 +vt 0.75 0.6875 +vt 0.6875 0.6875 +vt 0.6875 0.75 +vt 0.75 0.75 +vt 0.8125 0.75 +vt 0.75 0.75 +vt 0.75 0.6875 +vt 0.8125 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o RightArm +v 0.515625 1.515625 0.140625 +v 0.515625 1.515625 -0.140625 +v 0.515625 0.734375 0.140625 +v 0.515625 0.734375 -0.140625 +v 0.234375 1.515625 -0.140625 +v 0.234375 1.515625 0.140625 +v 0.234375 0.734375 -0.140625 +v 0.234375 0.734375 0.140625 +vt 0.6875 0.4375 +vt 0.75 0.4375 +vt 0.75 0.25 +vt 0.6875 0.25 +vt 0.625 0.4375 +vt 0.6875 0.4375 +vt 0.6875 0.25 +vt 0.625 0.25 +vt 0.8125 0.4375 +vt 0.875 0.4375 +vt 0.875 0.25 +vt 0.8125 0.25 +vt 0.75 0.4375 +vt 0.8125 0.4375 +vt 0.8125 0.25 +vt 0.75 0.25 +vt 0.75 0.4375 +vt 0.6875 0.4375 +vt 0.6875 0.5 +vt 0.75 0.5 +vt 0.8125 0.5 +vt 0.75 0.5 +vt 0.75 0.4375 +vt 0.8125 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o LeftArm +v -0.25 1.5 0.125 +v -0.25 1.5 -0.125 +v -0.25 0.75 0.125 +v -0.25 0.75 -0.125 +v -0.5 1.5 -0.125 +v -0.5 1.5 0.125 +v -0.5 0.75 -0.125 +v -0.5 0.75 0.125 +vt 0.5625 0.1875 +vt 0.625 0.1875 +vt 0.625 0 +vt 0.5625 0 +vt 0.5 0.1875 +vt 0.5625 0.1875 +vt 0.5625 0 +vt 0.5 0 +vt 0.6875 0.1875 +vt 0.75 0.1875 +vt 0.75 0 +vt 0.6875 0 +vt 0.625 0.1875 +vt 0.6875 0.1875 +vt 0.6875 0 +vt 0.625 0 +vt 0.625 0.1875 +vt 0.5625 0.1875 +vt 0.5625 0.25 +vt 0.625 0.25 +vt 0.6875 0.25 +vt 0.625 0.25 +vt 0.625 0.1875 +vt 0.6875 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o LeftArm +v -0.234375 1.515625 0.140625 +v -0.234375 1.515625 -0.140625 +v -0.234375 0.734375 0.140625 +v -0.234375 0.734375 -0.140625 +v -0.515625 1.515625 -0.140625 +v -0.515625 1.515625 0.140625 +v -0.515625 0.734375 -0.140625 +v -0.515625 0.734375 0.140625 +vt 0.8125 0.1875 +vt 0.875 0.1875 +vt 0.875 0 +vt 0.8125 0 +vt 0.75 0.1875 +vt 0.8125 0.1875 +vt 0.8125 0 +vt 0.75 0 +vt 0.9375 0.1875 +vt 1 0.1875 +vt 1 0 +vt 0.9375 0 +vt 0.875 0.1875 +vt 0.9375 0.1875 +vt 0.9375 0 +vt 0.875 0 +vt 0.875 0.1875 +vt 0.8125 0.1875 +vt 0.8125 0.25 +vt 0.875 0.25 +vt 0.9375 0.25 +vt 0.875 0.25 +vt 0.875 0.1875 +vt 0.9375 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o RightLeg +v 0.25 0.75 0.125 +v 0.25 0.75 -0.125 +v 0.25 0 0.125 +v 0.25 0 -0.125 +v 0 0.75 -0.125 +v 0 0.75 0.125 +v 0 0 -0.125 +v 0 0 0.125 +vt 0.0625 0.6875 +vt 0.125 0.6875 +vt 0.125 0.5 +vt 0.0625 0.5 +vt 0 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.5 +vt 0 0.5 +vt 0.1875 0.6875 +vt 0.25 0.6875 +vt 0.25 0.5 +vt 0.1875 0.5 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.75 +vt 0.125 0.75 +vt 0.1875 0.75 +vt 0.125 0.75 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o RightLeg +v 0.265625 0.765625 0.140625 +v 0.265625 0.765625 -0.140625 +v 0.265625 -0.015625 0.140625 +v 0.265625 -0.015625 -0.140625 +v -0.015625 0.765625 -0.140625 +v -0.015625 0.765625 0.140625 +v -0.015625 -0.015625 -0.140625 +v -0.015625 -0.015625 0.140625 +vt 0.0625 0.4375 +vt 0.125 0.4375 +vt 0.125 0.25 +vt 0.0625 0.25 +vt 0 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.25 +vt 0 0.25 +vt 0.1875 0.4375 +vt 0.25 0.4375 +vt 0.25 0.25 +vt 0.1875 0.25 +vt 0.125 0.4375 +vt 0.1875 0.4375 +vt 0.1875 0.25 +vt 0.125 0.25 +vt 0.125 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.5 +vt 0.125 0.5 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.4375 +vt 0.1875 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 +o LeftLeg +v 0 0.75 0.125 +v 0 0.75 -0.125 +v 0 0 0.125 +v 0 0 -0.125 +v -0.25 0.75 -0.125 +v -0.25 0.75 0.125 +v -0.25 0 -0.125 +v -0.25 0 0.125 +vt 0.3125 0.1875 +vt 0.375 0.1875 +vt 0.375 0 +vt 0.3125 0 +vt 0.25 0.1875 +vt 0.3125 0.1875 +vt 0.3125 0 +vt 0.25 0 +vt 0.4375 0.1875 +vt 0.5 0.1875 +vt 0.5 0 +vt 0.4375 0 +vt 0.375 0.1875 +vt 0.4375 0.1875 +vt 0.4375 0 +vt 0.375 0 +vt 0.375 0.1875 +vt 0.3125 0.1875 +vt 0.3125 0.25 +vt 0.375 0.25 +vt 0.4375 0.25 +vt 0.375 0.25 +vt 0.375 0.1875 +vt 0.4375 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 116/340/85 119/339/85 117/338/85 114/337/85 +f 115/344/86 116/343/86 114/342/86 113/341/86 +f 120/348/87 115/347/87 113/346/87 118/345/87 +f 119/352/88 120/351/88 118/350/88 117/349/88 +f 118/356/89 113/355/89 114/354/89 117/353/89 +f 119/360/90 116/359/90 115/358/90 120/357/90 +o LeftLeg +v 0.015625 0.765625 0.140625 +v 0.015625 0.765625 -0.140625 +v 0.015625 -0.015625 0.140625 +v 0.015625 -0.015625 -0.140625 +v -0.265625 0.765625 -0.140625 +v -0.265625 0.765625 0.140625 +v -0.265625 -0.015625 -0.140625 +v -0.265625 -0.015625 0.140625 +vt 0.0625 0.1875 +vt 0.125 0.1875 +vt 0.125 0 +vt 0.0625 0 +vt 0 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0 +vt 0 0 +vt 0.1875 0.1875 +vt 0.25 0.1875 +vt 0.25 0 +vt 0.1875 0 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vt 0.1875 0 +vt 0.125 0 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.25 +vt 0.125 0.25 +vt 0.1875 0.25 +vt 0.125 0.25 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_bd9b2175-46cc-d3be-0d85-ed94b50a7825 +f 124/364/91 127/363/91 125/362/91 122/361/91 +f 123/368/92 124/367/92 122/366/92 121/365/92 +f 128/372/93 123/371/93 121/370/93 126/369/93 +f 127/376/94 128/375/94 126/374/94 125/373/94 +f 126/380/95 121/379/95 122/378/95 125/377/95 +f 127/384/96 124/383/96 123/382/96 128/381/96 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/pillager.obj b/renderer/viewer/three/entity/models/pillager.obj new file mode 100644 index 00000000..213a3b94 --- /dev/null +++ b/renderer/viewer/three/entity/models/pillager.obj @@ -0,0 +1,371 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o Body +v 0.25 1.5 0.1875 +v 0.25 1.5 -0.1875 +v 0.25 0.75 0.1875 +v 0.25 0.75 -0.1875 +v -0.25 1.5 -0.1875 +v -0.25 1.5 0.1875 +v -0.25 0.75 -0.1875 +v -0.25 0.75 0.1875 +vt 0.34375 0.59375 +vt 0.46875 0.59375 +vt 0.46875 0.40625 +vt 0.34375 0.40625 +vt 0.25 0.59375 +vt 0.34375 0.59375 +vt 0.34375 0.40625 +vt 0.25 0.40625 +vt 0.5625 0.59375 +vt 0.6875 0.59375 +vt 0.6875 0.40625 +vt 0.5625 0.40625 +vt 0.46875 0.59375 +vt 0.5625 0.59375 +vt 0.5625 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.59375 +vt 0.34375 0.59375 +vt 0.34375 0.6875 +vt 0.46875 0.6875 +vt 0.59375 0.6875 +vt 0.46875 0.6875 +vt 0.46875 0.59375 +vt 0.59375 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o Body +v 0.28125 1.53125 0.21875 +v 0.28125 1.53125 -0.21875 +v 0.28125 0.34375 0.21875 +v 0.28125 0.34375 -0.21875 +v -0.28125 1.53125 -0.21875 +v -0.28125 1.53125 0.21875 +v -0.28125 0.34375 -0.21875 +v -0.28125 0.34375 0.21875 +vt 0.09375 0.3125 +vt 0.21875 0.3125 +vt 0.21875 0.03125 +vt 0.09375 0.03125 +vt 0 0.3125 +vt 0.09375 0.3125 +vt 0.09375 0.03125 +vt 0 0.03125 +vt 0.3125 0.3125 +vt 0.4375 0.3125 +vt 0.4375 0.03125 +vt 0.3125 0.03125 +vt 0.21875 0.3125 +vt 0.3125 0.3125 +vt 0.3125 0.03125 +vt 0.21875 0.03125 +vt 0.21875 0.3125 +vt 0.09375 0.3125 +vt 0.09375 0.40625 +vt 0.21875 0.40625 +vt 0.34375 0.40625 +vt 0.21875 0.40625 +vt 0.21875 0.3125 +vt 0.34375 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.25 2.125 0.25 +v 0.25 2.125 -0.25 +v 0.25 1.5 0.25 +v 0.25 1.5 -0.25 +v -0.25 2.125 -0.25 +v -0.25 2.125 0.25 +v -0.25 1.5 -0.25 +v -0.25 1.5 0.25 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.71875 +vt 0.125 0.71875 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.71875 +vt 0 0.71875 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.71875 +vt 0.375 0.71875 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.71875 +vt 0.25 0.71875 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o nose +v 0.0625 1.6875 -0.25 +v 0.0625 1.6875 -0.375 +v 0.0625 1.4375 -0.25 +v 0.0625 1.4375 -0.375 +v -0.0625 1.6875 -0.375 +v -0.0625 1.6875 -0.25 +v -0.0625 1.4375 -0.375 +v -0.0625 1.4375 -0.25 +vt 0.40625 0.96875 +vt 0.4375 0.96875 +vt 0.4375 0.90625 +vt 0.40625 0.90625 +vt 0.375 0.96875 +vt 0.40625 0.96875 +vt 0.40625 0.90625 +vt 0.375 0.90625 +vt 0.46875 0.96875 +vt 0.5 0.96875 +vt 0.5 0.90625 +vt 0.46875 0.90625 +vt 0.4375 0.96875 +vt 0.46875 0.96875 +vt 0.46875 0.90625 +vt 0.4375 0.90625 +vt 0.4375 0.96875 +vt 0.40625 0.96875 +vt 0.40625 1 +vt 0.4375 1 +vt 0.46875 1 +vt 0.4375 1 +vt 0.4375 0.96875 +vt 0.46875 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o LeftLeg +v 0 0.75 0.125 +v 0 0.75 -0.125 +v 0 0 0.125 +v 0 0 -0.125 +v -0.25 0.75 -0.125 +v -0.25 0.75 0.125 +v -0.25 0 -0.125 +v -0.25 0 0.125 +vt 0.0625 0.59375 +vt 0.125 0.59375 +vt 0.125 0.40625 +vt 0.0625 0.40625 +vt 0 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.40625 +vt 0 0.40625 +vt 0.1875 0.59375 +vt 0.25 0.59375 +vt 0.25 0.40625 +vt 0.1875 0.40625 +vt 0.125 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.40625 +vt 0.125 0.40625 +vt 0.125 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.65625 +vt 0.125 0.65625 +vt 0.1875 0.65625 +vt 0.125 0.65625 +vt 0.125 0.59375 +vt 0.1875 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o RightLeg +v 0.25 0.75 0.125 +v 0.25 0.75 -0.125 +v 0.25 0 0.125 +v 0.25 0 -0.125 +v 0 0.75 -0.125 +v 0 0.75 0.125 +v 0 0 -0.125 +v 0 0 0.125 +vt 0.125 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.40625 +vt 0.125 0.40625 +vt 0.1875 0.59375 +vt 0.125 0.59375 +vt 0.125 0.40625 +vt 0.1875 0.40625 +vt 0.25 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.40625 +vt 0.25 0.40625 +vt 0.0625 0.59375 +vt 0 0.59375 +vt 0 0.40625 +vt 0.0625 0.40625 +vt 0.0625 0.59375 +vt 0.125 0.59375 +vt 0.125 0.65625 +vt 0.0625 0.65625 +vt 0.125 0.65625 +vt 0.1875 0.65625 +vt 0.1875 0.59375 +vt 0.125 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o RightArm +v 0.5 1.5 0.125 +v 0.5 1.5 -0.125 +v 0.5 0.75 0.125 +v 0.5 0.75 -0.125 +v 0.25 1.5 -0.125 +v 0.25 1.5 0.125 +v 0.25 0.75 -0.125 +v 0.25 0.75 0.125 +vt 0.6875 0.21875 +vt 0.75 0.21875 +vt 0.75 0.03125 +vt 0.6875 0.03125 +vt 0.625 0.21875 +vt 0.6875 0.21875 +vt 0.6875 0.03125 +vt 0.625 0.03125 +vt 0.8125 0.21875 +vt 0.875 0.21875 +vt 0.875 0.03125 +vt 0.8125 0.03125 +vt 0.75 0.21875 +vt 0.8125 0.21875 +vt 0.8125 0.03125 +vt 0.75 0.03125 +vt 0.75 0.21875 +vt 0.6875 0.21875 +vt 0.6875 0.28125 +vt 0.75 0.28125 +vt 0.8125 0.28125 +vt 0.75 0.28125 +vt 0.75 0.21875 +vt 0.8125 0.21875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o LeftArm +v -0.25 1.5 0.125 +v -0.25 1.5 -0.125 +v -0.25 0.75 0.125 +v -0.25 0.75 -0.125 +v -0.5 1.5 -0.125 +v -0.5 1.5 0.125 +v -0.5 0.75 -0.125 +v -0.5 0.75 0.125 +vt 0.75 0.21875 +vt 0.6875 0.21875 +vt 0.6875 0.03125 +vt 0.75 0.03125 +vt 0.8125 0.21875 +vt 0.75 0.21875 +vt 0.75 0.03125 +vt 0.8125 0.03125 +vt 0.875 0.21875 +vt 0.8125 0.21875 +vt 0.8125 0.03125 +vt 0.875 0.03125 +vt 0.6875 0.21875 +vt 0.625 0.21875 +vt 0.625 0.03125 +vt 0.6875 0.03125 +vt 0.6875 0.21875 +vt 0.75 0.21875 +vt 0.75 0.28125 +vt 0.6875 0.28125 +vt 0.75 0.28125 +vt 0.8125 0.28125 +vt 0.8125 0.21875 +vt 0.75 0.21875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_0e7f3cc8-7af8-21a7-d2f3-04bee5fb4aae +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/rabbit.obj b/renderer/viewer/three/entity/models/rabbit.obj new file mode 100644 index 00000000..545c4b5d --- /dev/null +++ b/renderer/viewer/three/entity/models/rabbit.obj @@ -0,0 +1,555 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o rearFootLeft +v -0.125 0.0625 0.4375 +v -0.125 0.0625 0 +v -0.125 0 0.4375 +v -0.125 0 0 +v -0.25 0.0625 0 +v -0.25 0.0625 0.4375 +v -0.25 0 0 +v -0.25 0 0.4375 +vt 0.265625 0.03125 +vt 0.234375 0.03125 +vt 0.234375 0 +vt 0.265625 0 +vt 0.375 0.03125 +vt 0.265625 0.03125 +vt 0.265625 0 +vt 0.375 0 +vt 0.40625 0.03125 +vt 0.375 0.03125 +vt 0.375 0 +vt 0.40625 0 +vt 0.234375 0.03125 +vt 0.125 0.03125 +vt 0.125 0 +vt 0.234375 0 +vt 0.234375 0.03125 +vt 0.265625 0.03125 +vt 0.265625 0.25 +vt 0.234375 0.25 +vt 0.265625 0.25 +vt 0.296875 0.25 +vt 0.296875 0.03125 +vt 0.265625 0.03125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o rearFootRight +v 0.25 0.0625 0.4375 +v 0.25 0.0625 0 +v 0.25 0 0.4375 +v 0.25 0 0 +v 0.125 0.0625 0 +v 0.125 0.0625 0.4375 +v 0.125 0 0 +v 0.125 0 0.4375 +vt 0.546875 0.03125 +vt 0.515625 0.03125 +vt 0.515625 0 +vt 0.546875 0 +vt 0.65625 0.03125 +vt 0.546875 0.03125 +vt 0.546875 0 +vt 0.65625 0 +vt 0.6875 0.03125 +vt 0.65625 0.03125 +vt 0.65625 0 +vt 0.6875 0 +vt 0.515625 0.03125 +vt 0.40625 0.03125 +vt 0.40625 0 +vt 0.515625 0 +vt 0.515625 0.03125 +vt 0.546875 0.03125 +vt 0.546875 0.25 +vt 0.515625 0.25 +vt 0.546875 0.25 +vt 0.578125 0.25 +vt 0.578125 0.03125 +vt 0.546875 0.03125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o haunchLeft +v -0.125 0.29936870521072856 0.5249039439955965 +v -0.125 0.40625 0.23124999999999996 +v -0.125 0.06444555001425145 0.43939890816417915 +v -0.125 0.1713268448035229 0.14574496416858285 +v -0.25 0.40625 0.23124999999999996 +v -0.25 0.29936870521072856 0.5249039439955965 +v -0.25 0.1713268448035229 0.14574496416858285 +v -0.25 0.06444555001425145 0.43939890816417915 +vt 0.359375 0.375 +vt 0.328125 0.375 +vt 0.328125 0.25 +vt 0.359375 0.25 +vt 0.4375 0.375 +vt 0.359375 0.375 +vt 0.359375 0.25 +vt 0.4375 0.25 +vt 0.46875 0.375 +vt 0.4375 0.375 +vt 0.4375 0.25 +vt 0.46875 0.25 +vt 0.328125 0.375 +vt 0.25 0.375 +vt 0.25 0.25 +vt 0.328125 0.25 +vt 0.328125 0.375 +vt 0.359375 0.375 +vt 0.359375 0.53125 +vt 0.328125 0.53125 +vt 0.359375 0.53125 +vt 0.390625 0.53125 +vt 0.390625 0.375 +vt 0.359375 0.375 +vn 0 0.34202014332566866 -0.9396926207859084 +vn 1 0 0 +vn 0 -0.34202014332566866 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 0.34202014332566866 +vn 0 -0.9396926207859084 -0.34202014332566866 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o haunchRight +v 0.25 0.29936870521072856 0.5249039439955965 +v 0.25 0.40625 0.23124999999999996 +v 0.25 0.06444555001425145 0.43939890816417915 +v 0.25 0.1713268448035229 0.14574496416858285 +v 0.125 0.40625 0.23124999999999996 +v 0.125 0.29936870521072856 0.5249039439955965 +v 0.125 0.1713268448035229 0.14574496416858285 +v 0.125 0.06444555001425145 0.43939890816417915 +vt 0.578125 0.375 +vt 0.546875 0.375 +vt 0.546875 0.25 +vt 0.578125 0.25 +vt 0.65625 0.375 +vt 0.578125 0.375 +vt 0.578125 0.25 +vt 0.65625 0.25 +vt 0.6875 0.375 +vt 0.65625 0.375 +vt 0.65625 0.25 +vt 0.6875 0.25 +vt 0.546875 0.375 +vt 0.46875 0.375 +vt 0.46875 0.25 +vt 0.546875 0.25 +vt 0.546875 0.375 +vt 0.578125 0.375 +vt 0.578125 0.53125 +vt 0.546875 0.53125 +vt 0.578125 0.53125 +vt 0.609375 0.53125 +vt 0.609375 0.375 +vt 0.578125 0.375 +vn 0 0.34202014332566866 -0.9396926207859084 +vn 1 0 0 +vn 0 -0.34202014332566866 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 0.34202014332566866 +vn 0 -0.9396926207859084 -0.34202014332566866 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o body +v 0.1875 0.4299615775982385 0.5427525179157087 +v 0.1875 0.6437241671767815 -0.04455537007548416 +v 0.1875 0.1363076336026421 0.4358712231264371 +v 0.1875 0.3500702231811851 -0.1514366648647556 +v -0.1875 0.6437241671767815 -0.04455537007548416 +v -0.1875 0.4299615775982385 0.5427525179157087 +v -0.1875 0.3500702231811851 -0.1514366648647556 +v -0.1875 0.1363076336026421 0.4358712231264371 +vt 0.25 0.6875 +vt 0.15625 0.6875 +vt 0.15625 0.53125 +vt 0.25 0.53125 +vt 0.40625 0.6875 +vt 0.25 0.6875 +vt 0.25 0.53125 +vt 0.40625 0.53125 +vt 0.5 0.6875 +vt 0.40625 0.6875 +vt 0.40625 0.53125 +vt 0.5 0.53125 +vt 0.15625 0.6875 +vt 0 0.6875 +vt 0 0.53125 +vt 0.15625 0.53125 +vt 0.15625 0.6875 +vt 0.25 0.6875 +vt 0.25 1 +vt 0.15625 1 +vt 0.25 1 +vt 0.34375 1 +vt 0.34375 0.6875 +vt 0.25 0.6875 +vn 0 0.34202014332566866 -0.9396926207859084 +vn 1 0 0 +vn 0 -0.34202014332566866 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 0.34202014332566866 +vn 0 -0.9396926207859084 -0.34202014332566866 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o frontLegLeft +v -0.125 0.42664698889581687 -0.0009495154367369918 +v -0.125 0.44835301110418313 -0.12405048456326301 +v -0.125 -0.004206403047024132 -0.07692059316601901 +v -0.125 0.017499619161342128 -0.20002156229254503 +v -0.25 0.44835301110418313 -0.12405048456326301 +v -0.25 0.42664698889581687 -0.0009495154367369918 +v -0.25 0.017499619161342128 -0.20002156229254503 +v -0.25 -0.004206403047024132 -0.07692059316601901 +vt 0.1875 0.46875 +vt 0.15625 0.46875 +vt 0.15625 0.25 +vt 0.1875 0.25 +vt 0.21875 0.46875 +vt 0.1875 0.46875 +vt 0.1875 0.25 +vt 0.21875 0.25 +vt 0.25 0.46875 +vt 0.21875 0.46875 +vt 0.21875 0.25 +vt 0.25 0.25 +vt 0.15625 0.46875 +vt 0.125 0.46875 +vt 0.125 0.25 +vt 0.15625 0.25 +vt 0.15625 0.46875 +vt 0.1875 0.46875 +vt 0.1875 0.53125 +vt 0.15625 0.53125 +vt 0.1875 0.53125 +vt 0.21875 0.53125 +vt 0.21875 0.46875 +vt 0.1875 0.46875 +vn 0 0.17364817766693033 -0.984807753012208 +vn 1 0 0 +vn 0 -0.17364817766693033 0.984807753012208 +vn -1 0 0 +vn 0 0.984807753012208 0.17364817766693033 +vn 0 -0.984807753012208 -0.17364817766693033 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o frontLegRight +v 0.25 0.42664698889581687 -0.0009495154367369918 +v 0.25 0.44835301110418313 -0.12405048456326301 +v 0.25 -0.004206403047024132 -0.07692059316601901 +v 0.25 0.017499619161342128 -0.20002156229254503 +v 0.125 0.44835301110418313 -0.12405048456326301 +v 0.125 0.42664698889581687 -0.0009495154367369918 +v 0.125 0.017499619161342128 -0.20002156229254503 +v 0.125 -0.004206403047024132 -0.07692059316601901 +vt 0.0625 0.46875 +vt 0.03125 0.46875 +vt 0.03125 0.25 +vt 0.0625 0.25 +vt 0.09375 0.46875 +vt 0.0625 0.46875 +vt 0.0625 0.25 +vt 0.09375 0.25 +vt 0.125 0.46875 +vt 0.09375 0.46875 +vt 0.09375 0.25 +vt 0.125 0.25 +vt 0.03125 0.46875 +vt 0 0.46875 +vt 0 0.25 +vt 0.03125 0.25 +vt 0.03125 0.46875 +vt 0.0625 0.46875 +vt 0.0625 0.53125 +vt 0.03125 0.53125 +vt 0.0625 0.53125 +vt 0.09375 0.53125 +vt 0.09375 0.46875 +vt 0.0625 0.46875 +vn 0 0.17364817766693033 -0.984807753012208 +vn 1 0 0 +vn 0 -0.17364817766693033 0.984807753012208 +vn -1 0 0 +vn 0 0.984807753012208 0.17364817766693033 +vn 0 -0.984807753012208 -0.17364817766693033 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o head +v 0.15625 0.75 -0.0625 +v 0.15625 0.75 -0.375 +v 0.15625 0.5 -0.0625 +v 0.15625 0.5 -0.375 +v -0.15625 0.75 -0.375 +v -0.15625 0.75 -0.0625 +v -0.15625 0.5 -0.375 +v -0.15625 0.5 -0.0625 +vt 0.65625 0.84375 +vt 0.578125 0.84375 +vt 0.578125 0.71875 +vt 0.65625 0.71875 +vt 0.734375 0.84375 +vt 0.65625 0.84375 +vt 0.65625 0.71875 +vt 0.734375 0.71875 +vt 0.8125 0.84375 +vt 0.734375 0.84375 +vt 0.734375 0.71875 +vt 0.8125 0.71875 +vt 0.578125 0.84375 +vt 0.5 0.84375 +vt 0.5 0.71875 +vt 0.578125 0.71875 +vt 0.578125 0.84375 +vt 0.65625 0.84375 +vt 0.65625 1 +vt 0.578125 1 +vt 0.65625 1 +vt 0.734375 1 +vt 0.734375 0.84375 +vt 0.65625 0.84375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o earRight +v 0.1509259103576669 1.0625 -0.10294047579726884 +v 0.1347497200387594 1.0625 -0.16331083994033568 +v 0.1509259103576669 0.75 -0.10294047579726884 +v 0.1347497200387594 0.75 -0.16331083994033568 +v 0.014008991752625821 1.0625 -0.1309584593025206 +v 0.030185182071533423 1.0625 -0.07058809515945375 +v 0.014008991752625821 0.75 -0.1309584593025206 +v 0.030185182071533423 0.75 -0.07058809515945375 +vt 0.953125 0.96875 +vt 0.921875 0.96875 +vt 0.921875 0.8125 +vt 0.953125 0.8125 +vt 0.96875 0.96875 +vt 0.953125 0.96875 +vt 0.953125 0.8125 +vt 0.96875 0.8125 +vt 1 0.96875 +vt 0.96875 0.96875 +vt 0.96875 0.8125 +vt 1 0.8125 +vt 0.921875 0.96875 +vt 0.90625 0.96875 +vt 0.90625 0.8125 +vt 0.921875 0.8125 +vt 0.921875 0.96875 +vt 0.953125 0.96875 +vt 0.953125 1 +vt 0.921875 1 +vt 0.953125 1 +vt 0.984375 1 +vt 0.984375 0.96875 +vt 0.953125 0.96875 +vn -0.25881904510252074 0 -0.9659258262890683 +vn 0.9659258262890683 0 -0.25881904510252074 +vn 0.25881904510252074 0 0.9659258262890683 +vn -0.9659258262890683 0 0.25881904510252074 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o earLeft +v -0.030185182071533367 1.0625 -0.07058809515945375 +v -0.014008991752625821 1.0625 -0.1309584593025206 +v -0.030185182071533367 0.75 -0.07058809515945375 +v -0.014008991752625821 0.75 -0.1309584593025206 +v -0.1347497200387594 1.0625 -0.16331083994033568 +v -0.1509259103576669 1.0625 -0.10294047579726884 +v -0.1347497200387594 0.75 -0.16331083994033568 +v -0.1509259103576669 0.75 -0.10294047579726884 +vt 0.859375 0.96875 +vt 0.828125 0.96875 +vt 0.828125 0.8125 +vt 0.859375 0.8125 +vt 0.875 0.96875 +vt 0.859375 0.96875 +vt 0.859375 0.8125 +vt 0.875 0.8125 +vt 0.90625 0.96875 +vt 0.875 0.96875 +vt 0.875 0.8125 +vt 0.90625 0.8125 +vt 0.828125 0.96875 +vt 0.8125 0.96875 +vt 0.8125 0.8125 +vt 0.828125 0.8125 +vt 0.828125 0.96875 +vt 0.859375 0.96875 +vt 0.859375 1 +vt 0.828125 1 +vt 0.859375 1 +vt 0.890625 1 +vt 0.890625 0.96875 +vt 0.859375 0.96875 +vn 0.25881904510252074 0 -0.9659258262890683 +vn 0.9659258262890683 0 0.25881904510252074 +vn -0.25881904510252074 0 0.9659258262890683 +vn -0.9659258262890683 0 -0.25881904510252074 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o tail +v 0.09375 0.2953436652829704 0.5870259660350201 +v 0.09375 0.33809618319867885 0.4695643884367815 +v 0.09375 0.11915129888561249 0.5228971891614571 +v 0.09375 0.16190381680132115 0.4054356115632185 +v -0.09375 0.33809618319867885 0.4695643884367815 +v -0.09375 0.2953436652829704 0.5870259660350201 +v -0.09375 0.16190381680132115 0.4054356115632185 +v -0.09375 0.11915129888561249 0.5228971891614571 +vt 0.890625 0.75 +vt 0.84375 0.75 +vt 0.84375 0.65625 +vt 0.890625 0.65625 +vt 0.921875 0.75 +vt 0.890625 0.75 +vt 0.890625 0.65625 +vt 0.921875 0.65625 +vt 0.96875 0.75 +vt 0.921875 0.75 +vt 0.921875 0.65625 +vt 0.96875 0.65625 +vt 0.84375 0.75 +vt 0.8125 0.75 +vt 0.8125 0.65625 +vt 0.84375 0.65625 +vt 0.84375 0.75 +vt 0.890625 0.75 +vt 0.890625 0.8125 +vt 0.84375 0.8125 +vt 0.890625 0.8125 +vt 0.9375 0.8125 +vt 0.9375 0.75 +vt 0.890625 0.75 +vn 0 0.34202014332566866 -0.9396926207859084 +vn 1 0 0 +vn 0 -0.34202014332566866 0.9396926207859084 +vn -1 0 0 +vn 0 0.9396926207859084 0.34202014332566866 +vn 0 -0.9396926207859084 -0.34202014332566866 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o nose +v 0.03125 0.65625 -0.34375 +v 0.03125 0.65625 -0.40625 +v 0.03125 0.59375 -0.34375 +v 0.03125 0.59375 -0.40625 +v -0.03125 0.65625 -0.40625 +v -0.03125 0.65625 -0.34375 +v -0.03125 0.59375 -0.40625 +v -0.03125 0.59375 -0.34375 +vt 0.53125 0.6875 +vt 0.515625 0.6875 +vt 0.515625 0.65625 +vt 0.53125 0.65625 +vt 0.546875 0.6875 +vt 0.53125 0.6875 +vt 0.53125 0.65625 +vt 0.546875 0.65625 +vt 0.5625 0.6875 +vt 0.546875 0.6875 +vt 0.546875 0.65625 +vt 0.5625 0.65625 +vt 0.515625 0.6875 +vt 0.5 0.6875 +vt 0.5 0.65625 +vt 0.515625 0.65625 +vt 0.515625 0.6875 +vt 0.53125 0.6875 +vt 0.53125 0.71875 +vt 0.515625 0.71875 +vt 0.53125 0.71875 +vt 0.546875 0.71875 +vt 0.546875 0.6875 +vt 0.53125 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_a200089f-c989-c3f8-c313-2c45240e78d7 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/sheep.obj b/renderer/viewer/three/entity/models/sheep.obj new file mode 100644 index 00000000..66a2175f --- /dev/null +++ b/renderer/viewer/three/entity/models/sheep.obj @@ -0,0 +1,555 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.25 1.1250000000000002 -0.5 +v 0.25 0.7500000000000002 -0.5 +v 0.25 1.125 0.5 +v 0.25 0.75 0.4999999999999999 +v -0.25 0.7500000000000002 -0.5 +v -0.25 1.1250000000000002 -0.5 +v -0.25 0.75 0.4999999999999999 +v -0.25 1.125 0.5 +vt 0.53125 0.78125 +vt 0.65625 0.78125 +vt 0.65625 0.53125 +vt 0.53125 0.53125 +vt 0.4375 0.78125 +vt 0.53125 0.78125 +vt 0.53125 0.53125 +vt 0.4375 0.53125 +vt 0.75 0.78125 +vt 0.875 0.78125 +vt 0.875 0.53125 +vt 0.75 0.53125 +vt 0.65625 0.78125 +vt 0.75 0.78125 +vt 0.75 0.53125 +vt 0.65625 0.53125 +vt 0.65625 0.78125 +vt 0.53125 0.78125 +vt 0.53125 0.875 +vt 0.65625 0.875 +vt 0.78125 0.875 +vt 0.65625 0.875 +vt 0.65625 0.78125 +vt 0.78125 0.78125 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0.359375 1.2343750000000002 -0.609375 +v 0.359375 0.6406250000000002 -0.609375 +v 0.359375 1.234375 0.609375 +v 0.359375 0.640625 0.609375 +v -0.359375 0.6406250000000002 -0.609375 +v -0.359375 1.2343750000000002 -0.609375 +v -0.359375 0.640625 0.609375 +v -0.359375 1.234375 0.609375 +vt 0.53125 0.28125 +vt 0.65625 0.28125 +vt 0.65625 0.03125 +vt 0.53125 0.03125 +vt 0.4375 0.28125 +vt 0.53125 0.28125 +vt 0.53125 0.03125 +vt 0.4375 0.03125 +vt 0.75 0.28125 +vt 0.875 0.28125 +vt 0.875 0.03125 +vt 0.75 0.03125 +vt 0.65625 0.28125 +vt 0.75 0.28125 +vt 0.75 0.03125 +vt 0.65625 0.03125 +vt 0.65625 0.28125 +vt 0.53125 0.28125 +vt 0.53125 0.375 +vt 0.65625 0.375 +vt 0.78125 0.375 +vt 0.65625 0.375 +vt 0.65625 0.28125 +vt 0.78125 0.28125 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.1875 1.375 -0.375 +v 0.1875 1.375 -0.875 +v 0.1875 1 -0.375 +v 0.1875 1 -0.875 +v -0.1875 1.375 -0.875 +v -0.1875 1.375 -0.375 +v -0.1875 1 -0.875 +v -0.1875 1 -0.375 +vt 0.125 0.875 +vt 0.21875 0.875 +vt 0.21875 0.78125 +vt 0.125 0.78125 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.78125 +vt 0 0.78125 +vt 0.34375 0.875 +vt 0.4375 0.875 +vt 0.4375 0.78125 +vt 0.34375 0.78125 +vt 0.21875 0.875 +vt 0.34375 0.875 +vt 0.34375 0.78125 +vt 0.21875 0.78125 +vt 0.21875 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.21875 1 +vt 0.3125 1 +vt 0.21875 1 +vt 0.21875 0.875 +vt 0.3125 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.22499999999999998 1.4125 -0.3375 +v 0.22499999999999998 1.4125 -0.7875 +v 0.22499999999999998 0.9624999999999999 -0.3375 +v 0.22499999999999998 0.9624999999999999 -0.7875 +v -0.22499999999999998 1.4125 -0.7875 +v -0.22499999999999998 1.4125 -0.3375 +v -0.22499999999999998 0.9624999999999999 -0.7875 +v -0.22499999999999998 0.9624999999999999 -0.3375 +vt 0.09375 0.40625 +vt 0.1875 0.40625 +vt 0.1875 0.3125 +vt 0.09375 0.3125 +vt 0 0.40625 +vt 0.09375 0.40625 +vt 0.09375 0.3125 +vt 0 0.3125 +vt 0.28125 0.40625 +vt 0.375 0.40625 +vt 0.375 0.3125 +vt 0.28125 0.3125 +vt 0.1875 0.40625 +vt 0.28125 0.40625 +vt 0.28125 0.3125 +vt 0.1875 0.3125 +vt 0.1875 0.40625 +vt 0.09375 0.40625 +vt 0.09375 0.5 +vt 0.1875 0.5 +vt 0.28125 0.5 +vt 0.1875 0.5 +vt 0.1875 0.40625 +vt 0.28125 0.40625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o leg0 +v 0.3125 0.75 0.5625 +v 0.3125 0.75 0.3125 +v 0.3125 0 0.5625 +v 0.3125 0 0.3125 +v 0.0625 0.75 0.3125 +v 0.0625 0.75 0.5625 +v 0.0625 0 0.3125 +v 0.0625 0 0.5625 +vt 0.0625 0.6875 +vt 0.125 0.6875 +vt 0.125 0.5 +vt 0.0625 0.5 +vt 0 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.5 +vt 0 0.5 +vt 0.1875 0.6875 +vt 0.25 0.6875 +vt 0.25 0.5 +vt 0.1875 0.5 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.75 +vt 0.125 0.75 +vt 0.1875 0.75 +vt 0.125 0.75 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leg0 +v 0.34375 0.78125 0.59375 +v 0.34375 0.78125 0.28125 +v 0.34375 0.34375 0.59375 +v 0.34375 0.34375 0.28125 +v 0.03125 0.78125 0.28125 +v 0.03125 0.78125 0.59375 +v 0.03125 0.34375 0.28125 +v 0.03125 0.34375 0.59375 +vt 0.0625 0.1875 +vt 0.125 0.1875 +vt 0.125 0.09375 +vt 0.0625 0.09375 +vt 0 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.09375 +vt 0 0.09375 +vt 0.1875 0.1875 +vt 0.25 0.1875 +vt 0.25 0.09375 +vt 0.1875 0.09375 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vt 0.1875 0.09375 +vt 0.125 0.09375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.25 +vt 0.125 0.25 +vt 0.1875 0.25 +vt 0.125 0.25 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o leg1 +v -0.0625 0.75 0.5625 +v -0.0625 0.75 0.3125 +v -0.0625 0 0.5625 +v -0.0625 0 0.3125 +v -0.3125 0.75 0.3125 +v -0.3125 0.75 0.5625 +v -0.3125 0 0.3125 +v -0.3125 0 0.5625 +vt 0.0625 0.6875 +vt 0.125 0.6875 +vt 0.125 0.5 +vt 0.0625 0.5 +vt 0 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.5 +vt 0 0.5 +vt 0.1875 0.6875 +vt 0.25 0.6875 +vt 0.25 0.5 +vt 0.1875 0.5 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.75 +vt 0.125 0.75 +vt 0.1875 0.75 +vt 0.125 0.75 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o leg1 +v -0.03125 0.78125 0.59375 +v -0.03125 0.78125 0.28125 +v -0.03125 0.34375 0.59375 +v -0.03125 0.34375 0.28125 +v -0.34375 0.78125 0.28125 +v -0.34375 0.78125 0.59375 +v -0.34375 0.34375 0.28125 +v -0.34375 0.34375 0.59375 +vt 0.0625 0.1875 +vt 0.125 0.1875 +vt 0.125 0.09375 +vt 0.0625 0.09375 +vt 0 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.09375 +vt 0 0.09375 +vt 0.1875 0.1875 +vt 0.25 0.1875 +vt 0.25 0.09375 +vt 0.1875 0.09375 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vt 0.1875 0.09375 +vt 0.125 0.09375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.25 +vt 0.125 0.25 +vt 0.1875 0.25 +vt 0.125 0.25 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o leg2 +v 0.3125 0.75 -0.1875 +v 0.3125 0.75 -0.4375 +v 0.3125 0 -0.1875 +v 0.3125 0 -0.4375 +v 0.0625 0.75 -0.4375 +v 0.0625 0.75 -0.1875 +v 0.0625 0 -0.4375 +v 0.0625 0 -0.1875 +vt 0.0625 0.6875 +vt 0.125 0.6875 +vt 0.125 0.5 +vt 0.0625 0.5 +vt 0 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.5 +vt 0 0.5 +vt 0.1875 0.6875 +vt 0.25 0.6875 +vt 0.25 0.5 +vt 0.1875 0.5 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.75 +vt 0.125 0.75 +vt 0.1875 0.75 +vt 0.125 0.75 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o leg2 +v 0.34375 0.78125 -0.15625 +v 0.34375 0.78125 -0.46875 +v 0.34375 0.34375 -0.15625 +v 0.34375 0.34375 -0.46875 +v 0.03125 0.78125 -0.46875 +v 0.03125 0.78125 -0.15625 +v 0.03125 0.34375 -0.46875 +v 0.03125 0.34375 -0.15625 +vt 0.0625 0.1875 +vt 0.125 0.1875 +vt 0.125 0.09375 +vt 0.0625 0.09375 +vt 0 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.09375 +vt 0 0.09375 +vt 0.1875 0.1875 +vt 0.25 0.1875 +vt 0.25 0.09375 +vt 0.1875 0.09375 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vt 0.1875 0.09375 +vt 0.125 0.09375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.25 +vt 0.125 0.25 +vt 0.1875 0.25 +vt 0.125 0.25 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o leg3 +v -0.0625 0.75 -0.1875 +v -0.0625 0.75 -0.4375 +v -0.0625 0 -0.1875 +v -0.0625 0 -0.4375 +v -0.3125 0.75 -0.4375 +v -0.3125 0.75 -0.1875 +v -0.3125 0 -0.4375 +v -0.3125 0 -0.1875 +vt 0.0625 0.6875 +vt 0.125 0.6875 +vt 0.125 0.5 +vt 0.0625 0.5 +vt 0 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.5 +vt 0 0.5 +vt 0.1875 0.6875 +vt 0.25 0.6875 +vt 0.25 0.5 +vt 0.1875 0.5 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vt 0.1875 0.5 +vt 0.125 0.5 +vt 0.125 0.6875 +vt 0.0625 0.6875 +vt 0.0625 0.75 +vt 0.125 0.75 +vt 0.1875 0.75 +vt 0.125 0.75 +vt 0.125 0.6875 +vt 0.1875 0.6875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o leg3 +v -0.03125 0.78125 -0.15625 +v -0.03125 0.78125 -0.46875 +v -0.03125 0.34375 -0.15625 +v -0.03125 0.34375 -0.46875 +v -0.34375 0.78125 -0.46875 +v -0.34375 0.78125 -0.15625 +v -0.34375 0.34375 -0.46875 +v -0.34375 0.34375 -0.15625 +vt 0.0625 0.1875 +vt 0.125 0.1875 +vt 0.125 0.09375 +vt 0.0625 0.09375 +vt 0 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.09375 +vt 0 0.09375 +vt 0.1875 0.1875 +vt 0.25 0.1875 +vt 0.25 0.09375 +vt 0.1875 0.09375 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vt 0.1875 0.09375 +vt 0.125 0.09375 +vt 0.125 0.1875 +vt 0.0625 0.1875 +vt 0.0625 0.25 +vt 0.125 0.25 +vt 0.1875 0.25 +vt 0.125 0.25 +vt 0.125 0.1875 +vt 0.1875 0.1875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_801e22d5-c057-fde3-2edb-c11e082736eb +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/shulker.obj b/renderer/viewer/three/entity/models/shulker.obj new file mode 100644 index 00000000..0287fddb --- /dev/null +++ b/renderer/viewer/three/entity/models/shulker.obj @@ -0,0 +1,141 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o base +v 0.5 0.5 0.5 +v 0.5 0.5 -0.5 +v 0.5 0 0.5 +v 0.5 0 -0.5 +v -0.5 0.5 -0.5 +v -0.5 0.5 0.5 +v -0.5 0 -0.5 +v -0.5 0 0.5 +vt 0.25 0.3125 +vt 0.5 0.3125 +vt 0.5 0.1875 +vt 0.25 0.1875 +vt 0 0.3125 +vt 0.25 0.3125 +vt 0.25 0.1875 +vt 0 0.1875 +vt 0.75 0.3125 +vt 1 0.3125 +vt 1 0.1875 +vt 0.75 0.1875 +vt 0.5 0.3125 +vt 0.75 0.3125 +vt 0.75 0.1875 +vt 0.5 0.1875 +vt 0.5 0.3125 +vt 0.25 0.3125 +vt 0.25 0.5625 +vt 0.5 0.5625 +vt 0.75 0.5625 +vt 0.5 0.5625 +vt 0.5 0.3125 +vt 0.75 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1c25eeea-87e5-6114-747e-b8cdb1a56a09 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o lid +v 0.5 1.5625 0.5 +v 0.5 1.5625 -0.5 +v 0.5 0.8125 0.5 +v 0.5 0.8125 -0.5 +v -0.5 1.5625 -0.5 +v -0.5 1.5625 0.5 +v -0.5 0.8125 -0.5 +v -0.5 0.8125 0.5 +vt 0.25 0.75 +vt 0.5 0.75 +vt 0.5 0.5625 +vt 0.25 0.5625 +vt 0 0.75 +vt 0.25 0.75 +vt 0.25 0.5625 +vt 0 0.5625 +vt 0.75 0.75 +vt 1 0.75 +vt 1 0.5625 +vt 0.75 0.5625 +vt 0.5 0.75 +vt 0.75 0.75 +vt 0.75 0.5625 +vt 0.5 0.5625 +vt 0.5 0.75 +vt 0.25 0.75 +vt 0.25 1 +vt 0.5 1 +vt 0.75 1 +vt 0.5 1 +vt 0.5 0.75 +vt 0.75 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1c25eeea-87e5-6114-747e-b8cdb1a56a09 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.1875 0.75 0.1875 +v 0.1875 0.75 -0.1875 +v 0.1875 0.375 0.1875 +v 0.1875 0.375 -0.1875 +v -0.1875 0.75 -0.1875 +v -0.1875 0.75 0.1875 +v -0.1875 0.375 -0.1875 +v -0.1875 0.375 0.1875 +vt 0.09375 0.09375 +vt 0.1875 0.09375 +vt 0.1875 0 +vt 0.09375 0 +vt 0 0.09375 +vt 0.09375 0.09375 +vt 0.09375 0 +vt 0 0 +vt 0.28125 0.09375 +vt 0.375 0.09375 +vt 0.375 0 +vt 0.28125 0 +vt 0.1875 0.09375 +vt 0.28125 0.09375 +vt 0.28125 0 +vt 0.1875 0 +vt 0.1875 0.09375 +vt 0.09375 0.09375 +vt 0.09375 0.1875 +vt 0.1875 0.1875 +vt 0.28125 0.1875 +vt 0.1875 0.1875 +vt 0.1875 0.09375 +vt 0.28125 0.09375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_1c25eeea-87e5-6114-747e-b8cdb1a56a09 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/sniffer.obj b/renderer/viewer/three/entity/models/sniffer.obj new file mode 100644 index 00000000..6fe8ed15 --- /dev/null +++ b/renderer/viewer/three/entity/models/sniffer.obj @@ -0,0 +1,693 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.8125 2.09375 1.28125 +v 0.8125 2.09375 -1.28125 +v 0.8125 0.53125 1.28125 +v 0.8125 0.53125 -1.28125 +v -0.8125 2.09375 -1.28125 +v -0.8125 2.09375 1.28125 +v -0.8125 0.53125 -1.28125 +v -0.8125 0.53125 1.28125 +vt 0.53125 0.7916666666666666 +vt 0.6614583333333334 0.7916666666666666 +vt 0.6614583333333334 0.6666666666666667 +vt 0.53125 0.6666666666666667 +vt 0.3229166666666667 0.7916666666666666 +vt 0.53125 0.7916666666666666 +vt 0.53125 0.6666666666666667 +vt 0.3229166666666667 0.6666666666666667 +vt 0.8697916666666666 0.7916666666666666 +vt 1 0.7916666666666666 +vt 1 0.6666666666666667 +vt 0.8697916666666666 0.6666666666666667 +vt 0.6614583333333334 0.7916666666666666 +vt 0.8697916666666666 0.7916666666666666 +vt 0.8697916666666666 0.6666666666666667 +vt 0.6614583333333334 0.6666666666666667 +vt 0.6614583333333334 0.7916666666666666 +vt 0.53125 0.7916666666666666 +vt 0.53125 1 +vt 0.6614583333333334 1 +vt 0.7916666666666666 1 +vt 0.6614583333333334 1 +vt 0.6614583333333334 0.7916666666666666 +vt 0.7916666666666666 0.7916666666666666 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0.78125 2.0625 1.25 +v 0.78125 2.0625 -1.25 +v 0.78125 0.25 1.25 +v 0.78125 0.25 -1.25 +v -0.78125 2.0625 -1.25 +v -0.78125 2.0625 1.25 +v -0.78125 0.25 -1.25 +v -0.78125 0.25 1.25 +vt 0.53125 0.4375 +vt 0.6614583333333334 0.4375 +vt 0.6614583333333334 0.28645833333333337 +vt 0.53125 0.28645833333333337 +vt 0.3229166666666667 0.4375 +vt 0.53125 0.4375 +vt 0.53125 0.28645833333333337 +vt 0.3229166666666667 0.28645833333333337 +vt 0.8697916666666666 0.4375 +vt 1 0.4375 +vt 1 0.28645833333333337 +vt 0.8697916666666666 0.28645833333333337 +vt 0.6614583333333334 0.4375 +vt 0.8697916666666666 0.4375 +vt 0.8697916666666666 0.28645833333333337 +vt 0.6614583333333334 0.28645833333333337 +vt 0.6614583333333334 0.4375 +vt 0.53125 0.4375 +vt 0.53125 0.6458333333333333 +vt 0.6614583333333334 0.6458333333333333 +vt 0.7916666666666666 0.6458333333333333 +vt 0.6614583333333334 0.6458333333333333 +vt 0.6614583333333334 0.4375 +vt 0.7916666666666666 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o body +v 0.78125 0.5 1.25 +v 0.78125 0.5 -1.25 +v 0.78125 0.5 1.25 +v 0.78125 0.5 -1.25 +v -0.78125 0.5 -1.25 +v -0.78125 0.5 1.25 +v -0.78125 0.5 -1.25 +v -0.78125 0.5 1.25 +vt 0.6614583333333334 0.4375 +vt 0.7916666666666666 0.4375 +vt 0.7916666666666666 0.4375 +vt 0.6614583333333334 0.4375 +vt 0.453125 0.4375 +vt 0.6614583333333334 0.4375 +vt 0.6614583333333334 0.4375 +vt 0.453125 0.4375 +vt 1 0.4375 +vt 1.1302083333333333 0.4375 +vt 1.1302083333333333 0.4375 +vt 1 0.4375 +vt 0.7916666666666666 0.4375 +vt 1 0.4375 +vt 1 0.4375 +vt 0.7916666666666666 0.4375 +vt 0.7916666666666666 0.4375 +vt 0.6614583333333334 0.4375 +vt 0.6614583333333334 0.6458333333333333 +vt 0.7916666666666666 0.6458333333333333 +vt 0.921875 0.6458333333333333 +vt 0.7916666666666666 0.6458333333333333 +vt 0.7916666666666666 0.4375 +vt 0.921875 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.40625 1.3125 -1.24375 +v 0.40625 1.3125 -1.93125 +v 0.40625 0.1875 -1.24375 +v 0.40625 0.1875 -1.93125 +v -0.40625 1.3125 -1.93125 +v -0.40625 1.3125 -1.24375 +v -0.40625 0.1875 -1.93125 +v -0.40625 0.1875 -1.24375 +vt 0.09895833333333333 0.8645833333333334 +vt 0.16666666666666666 0.8645833333333334 +vt 0.16666666666666666 0.7708333333333334 +vt 0.09895833333333333 0.7708333333333334 +vt 0.041666666666666664 0.8645833333333334 +vt 0.09895833333333333 0.8645833333333334 +vt 0.09895833333333333 0.7708333333333334 +vt 0.041666666666666664 0.7708333333333334 +vt 0.22395833333333334 0.8645833333333334 +vt 0.2916666666666667 0.8645833333333334 +vt 0.2916666666666667 0.7708333333333334 +vt 0.22395833333333334 0.7708333333333334 +vt 0.16666666666666666 0.8645833333333334 +vt 0.22395833333333334 0.8645833333333334 +vt 0.22395833333333334 0.7708333333333334 +vt 0.16666666666666666 0.7708333333333334 +vt 0.16666666666666666 0.8645833333333334 +vt 0.09895833333333333 0.8645833333333334 +vt 0.09895833333333333 0.921875 +vt 0.16666666666666666 0.921875 +vt 0.234375 0.921875 +vt 0.16666666666666666 0.921875 +vt 0.16666666666666666 0.8645833333333334 +vt 0.234375 0.8645833333333334 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o head +v 0.40625 0.375 -1.24375 +v 0.40625 0.375 -1.93125 +v 0.40625 0.375 -1.24375 +v 0.40625 0.375 -1.93125 +v -0.40625 0.375 -1.93125 +v -0.40625 0.375 -1.24375 +v -0.40625 0.375 -1.93125 +v -0.40625 0.375 -1.24375 +vt 0.09895833333333333 0.921875 +vt 0.16666666666666666 0.921875 +vt 0.16666666666666666 0.921875 +vt 0.09895833333333333 0.921875 +vt 0.041666666666666664 0.921875 +vt 0.09895833333333333 0.921875 +vt 0.09895833333333333 0.921875 +vt 0.041666666666666664 0.921875 +vt 0.22395833333333334 0.921875 +vt 0.2916666666666667 0.921875 +vt 0.2916666666666667 0.921875 +vt 0.22395833333333334 0.921875 +vt 0.16666666666666666 0.921875 +vt 0.22395833333333334 0.921875 +vt 0.22395833333333334 0.921875 +vt 0.16666666666666666 0.921875 +vt 0.16666666666666666 0.921875 +vt 0.09895833333333333 0.921875 +vt 0.09895833333333333 0.9791666666666666 +vt 0.16666666666666666 0.9791666666666666 +vt 0.234375 0.9791666666666666 +vt 0.16666666666666666 0.9791666666666666 +vt 0.16666666666666666 0.921875 +vt 0.234375 0.921875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o left_ear +v -0.4 1.3125 -1.24375 +v -0.4 1.3125 -1.68125 +v -0.4 0.125 -1.24375 +v -0.4 0.125 -1.68125 +v -0.4625 1.3125 -1.68125 +v -0.4625 1.3125 -1.24375 +v -0.4625 0.125 -1.68125 +v -0.4625 0.125 -1.24375 +vt 0.046875 0.9635416666666666 +vt 0.052083333333333336 0.9635416666666666 +vt 0.052083333333333336 0.8645833333333334 +vt 0.046875 0.8645833333333334 +vt 0.010416666666666666 0.9635416666666666 +vt 0.046875 0.9635416666666666 +vt 0.046875 0.8645833333333334 +vt 0.010416666666666666 0.8645833333333334 +vt 0.08854166666666667 0.9635416666666666 +vt 0.09375 0.9635416666666666 +vt 0.09375 0.8645833333333334 +vt 0.08854166666666667 0.8645833333333334 +vt 0.052083333333333336 0.9635416666666666 +vt 0.08854166666666667 0.9635416666666666 +vt 0.08854166666666667 0.8645833333333334 +vt 0.052083333333333336 0.8645833333333334 +vt 0.052083333333333336 0.9635416666666666 +vt 0.046875 0.9635416666666666 +vt 0.046875 1 +vt 0.052083333333333336 1 +vt 0.057291666666666664 1 +vt 0.052083333333333336 1 +vt 0.052083333333333336 0.9635416666666666 +vt 0.057291666666666664 0.9635416666666666 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o right_ear +v 0.4625 1.3125 -1.24375 +v 0.4625 1.3125 -1.68125 +v 0.4625 0.125 -1.24375 +v 0.4625 0.125 -1.68125 +v 0.4 1.3125 -1.68125 +v 0.4 1.3125 -1.24375 +v 0.4 0.125 -1.68125 +v 0.4 0.125 -1.24375 +vt 0.2864583333333333 0.9635416666666666 +vt 0.2916666666666667 0.9635416666666666 +vt 0.2916666666666667 0.8645833333333334 +vt 0.2864583333333333 0.8645833333333334 +vt 0.25 0.9635416666666666 +vt 0.2864583333333333 0.9635416666666666 +vt 0.2864583333333333 0.8645833333333334 +vt 0.25 0.8645833333333334 +vt 0.328125 0.9635416666666666 +vt 0.3333333333333333 0.9635416666666666 +vt 0.3333333333333333 0.8645833333333334 +vt 0.328125 0.8645833333333334 +vt 0.2916666666666667 0.9635416666666666 +vt 0.328125 0.9635416666666666 +vt 0.328125 0.8645833333333334 +vt 0.2916666666666667 0.8645833333333334 +vt 0.2916666666666667 0.9635416666666666 +vt 0.2864583333333333 0.9635416666666666 +vt 0.2864583333333333 1 +vt 0.2916666666666667 1 +vt 0.296875 1 +vt 0.2916666666666667 1 +vt 0.2916666666666667 0.9635416666666666 +vt 0.296875 0.9635416666666666 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o nose +v 0.40625 1.25 -1.93125 +v 0.40625 1.25 -2.49375 +v 0.40625 1.125 -1.93125 +v 0.40625 1.125 -2.49375 +v -0.40625 1.25 -2.49375 +v -0.40625 1.25 -1.93125 +v -0.40625 1.125 -2.49375 +v -0.40625 1.125 -1.93125 +vt 0.09895833333333333 0.71875 +vt 0.16666666666666666 0.71875 +vt 0.16666666666666666 0.7083333333333333 +vt 0.09895833333333333 0.7083333333333333 +vt 0.052083333333333336 0.71875 +vt 0.09895833333333333 0.71875 +vt 0.09895833333333333 0.7083333333333333 +vt 0.052083333333333336 0.7083333333333333 +vt 0.21354166666666666 0.71875 +vt 0.28125 0.71875 +vt 0.28125 0.7083333333333333 +vt 0.21354166666666666 0.7083333333333333 +vt 0.16666666666666666 0.71875 +vt 0.21354166666666666 0.71875 +vt 0.21354166666666666 0.7083333333333333 +vt 0.16666666666666666 0.7083333333333333 +vt 0.16666666666666666 0.71875 +vt 0.09895833333333333 0.71875 +vt 0.09895833333333333 0.765625 +vt 0.16666666666666666 0.765625 +vt 0.234375 0.765625 +vt 0.16666666666666666 0.765625 +vt 0.16666666666666666 0.71875 +vt 0.234375 0.71875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o lower_beak +v 0.40625 1.125 -1.93125 +v 0.40625 1.125 -2.49375 +v 0.40625 0.375 -1.93125 +v 0.40625 0.375 -2.49375 +v -0.40625 1.125 -2.49375 +v -0.40625 1.125 -1.93125 +v -0.40625 0.375 -2.49375 +v -0.40625 0.375 -1.93125 +vt 0.09895833333333333 0.65625 +vt 0.16666666666666666 0.65625 +vt 0.16666666666666666 0.59375 +vt 0.09895833333333333 0.59375 +vt 0.052083333333333336 0.65625 +vt 0.09895833333333333 0.65625 +vt 0.09895833333333333 0.59375 +vt 0.052083333333333336 0.59375 +vt 0.21354166666666666 0.65625 +vt 0.28125 0.65625 +vt 0.28125 0.59375 +vt 0.21354166666666666 0.59375 +vt 0.16666666666666666 0.65625 +vt 0.21354166666666666 0.65625 +vt 0.21354166666666666 0.59375 +vt 0.16666666666666666 0.59375 +vt 0.16666666666666666 0.65625 +vt 0.09895833333333333 0.65625 +vt 0.09895833333333333 0.703125 +vt 0.16666666666666666 0.703125 +vt 0.234375 0.703125 +vt 0.16666666666666666 0.703125 +vt 0.16666666666666666 0.65625 +vt 0.234375 0.65625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o right_front_leg +v 0.6875 0.625 -0.6875 +v 0.6875 0.625 -1.1875 +v 0.6875 0 -0.6875 +v 0.6875 0 -1.1875 +v 0.25 0.625 -1.1875 +v 0.25 0.625 -0.6875 +v 0.25 0 -1.1875 +v 0.25 0 -0.6875 +vt 0.20833333333333334 0.5052083333333333 +vt 0.24479166666666666 0.5052083333333333 +vt 0.24479166666666666 0.453125 +vt 0.20833333333333334 0.453125 +vt 0.16666666666666666 0.5052083333333333 +vt 0.20833333333333334 0.5052083333333333 +vt 0.20833333333333334 0.453125 +vt 0.16666666666666666 0.453125 +vt 0.2864583333333333 0.5052083333333333 +vt 0.3229166666666667 0.5052083333333333 +vt 0.3229166666666667 0.453125 +vt 0.2864583333333333 0.453125 +vt 0.24479166666666666 0.5052083333333333 +vt 0.2864583333333333 0.5052083333333333 +vt 0.2864583333333333 0.453125 +vt 0.24479166666666666 0.453125 +vt 0.24479166666666666 0.5052083333333333 +vt 0.20833333333333334 0.5052083333333333 +vt 0.20833333333333334 0.546875 +vt 0.24479166666666666 0.546875 +vt 0.28125 0.546875 +vt 0.24479166666666666 0.546875 +vt 0.24479166666666666 0.5052083333333333 +vt 0.28125 0.5052083333333333 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o right_mid_leg +v 0.6875 0.625 0.25 +v 0.6875 0.625 -0.25 +v 0.6875 0 0.25 +v 0.6875 0 -0.25 +v 0.25 0.625 -0.25 +v 0.25 0.625 0.25 +v 0.25 0 -0.25 +v 0.25 0 0.25 +vt 0.20833333333333334 0.41145833333333337 +vt 0.24479166666666666 0.41145833333333337 +vt 0.24479166666666666 0.359375 +vt 0.20833333333333334 0.359375 +vt 0.16666666666666666 0.41145833333333337 +vt 0.20833333333333334 0.41145833333333337 +vt 0.20833333333333334 0.359375 +vt 0.16666666666666666 0.359375 +vt 0.2864583333333333 0.41145833333333337 +vt 0.3229166666666667 0.41145833333333337 +vt 0.3229166666666667 0.359375 +vt 0.2864583333333333 0.359375 +vt 0.24479166666666666 0.41145833333333337 +vt 0.2864583333333333 0.41145833333333337 +vt 0.2864583333333333 0.359375 +vt 0.24479166666666666 0.359375 +vt 0.24479166666666666 0.41145833333333337 +vt 0.20833333333333334 0.41145833333333337 +vt 0.20833333333333334 0.453125 +vt 0.24479166666666666 0.453125 +vt 0.28125 0.453125 +vt 0.24479166666666666 0.453125 +vt 0.24479166666666666 0.41145833333333337 +vt 0.28125 0.41145833333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o right_hind_leg +v 0.6875 0.625 1.1875 +v 0.6875 0.625 0.6875 +v 0.6875 0 1.1875 +v 0.6875 0 0.6875 +v 0.25 0.625 0.6875 +v 0.25 0.625 1.1875 +v 0.25 0 0.6875 +v 0.25 0 1.1875 +vt 0.20833333333333334 0.31770833333333337 +vt 0.24479166666666666 0.31770833333333337 +vt 0.24479166666666666 0.265625 +vt 0.20833333333333334 0.265625 +vt 0.16666666666666666 0.31770833333333337 +vt 0.20833333333333334 0.31770833333333337 +vt 0.20833333333333334 0.265625 +vt 0.16666666666666666 0.265625 +vt 0.2864583333333333 0.31770833333333337 +vt 0.3229166666666667 0.31770833333333337 +vt 0.3229166666666667 0.265625 +vt 0.2864583333333333 0.265625 +vt 0.24479166666666666 0.31770833333333337 +vt 0.2864583333333333 0.31770833333333337 +vt 0.2864583333333333 0.265625 +vt 0.24479166666666666 0.265625 +vt 0.24479166666666666 0.31770833333333337 +vt 0.20833333333333334 0.31770833333333337 +vt 0.20833333333333334 0.359375 +vt 0.24479166666666666 0.359375 +vt 0.28125 0.359375 +vt 0.24479166666666666 0.359375 +vt 0.24479166666666666 0.31770833333333337 +vt 0.28125 0.31770833333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o left_front_leg +v -0.25 0.625 -0.6875 +v -0.25 0.625 -1.1875 +v -0.25 0 -0.6875 +v -0.25 0 -1.1875 +v -0.6875 0.625 -1.1875 +v -0.6875 0.625 -0.6875 +v -0.6875 0 -1.1875 +v -0.6875 0 -0.6875 +vt 0.041666666666666664 0.5052083333333333 +vt 0.078125 0.5052083333333333 +vt 0.078125 0.453125 +vt 0.041666666666666664 0.453125 +vt 0 0.5052083333333333 +vt 0.041666666666666664 0.5052083333333333 +vt 0.041666666666666664 0.453125 +vt 0 0.453125 +vt 0.11979166666666667 0.5052083333333333 +vt 0.15625 0.5052083333333333 +vt 0.15625 0.453125 +vt 0.11979166666666667 0.453125 +vt 0.078125 0.5052083333333333 +vt 0.11979166666666667 0.5052083333333333 +vt 0.11979166666666667 0.453125 +vt 0.078125 0.453125 +vt 0.078125 0.5052083333333333 +vt 0.041666666666666664 0.5052083333333333 +vt 0.041666666666666664 0.546875 +vt 0.078125 0.546875 +vt 0.11458333333333333 0.546875 +vt 0.078125 0.546875 +vt 0.078125 0.5052083333333333 +vt 0.11458333333333333 0.5052083333333333 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o left_mid_leg +v -0.25 0.625 0.25 +v -0.25 0.625 -0.25 +v -0.25 0 0.25 +v -0.25 0 -0.25 +v -0.6875 0.625 -0.25 +v -0.6875 0.625 0.25 +v -0.6875 0 -0.25 +v -0.6875 0 0.25 +vt 0.041666666666666664 0.41145833333333337 +vt 0.078125 0.41145833333333337 +vt 0.078125 0.359375 +vt 0.041666666666666664 0.359375 +vt 0 0.41145833333333337 +vt 0.041666666666666664 0.41145833333333337 +vt 0.041666666666666664 0.359375 +vt 0 0.359375 +vt 0.11979166666666667 0.41145833333333337 +vt 0.15625 0.41145833333333337 +vt 0.15625 0.359375 +vt 0.11979166666666667 0.359375 +vt 0.078125 0.41145833333333337 +vt 0.11979166666666667 0.41145833333333337 +vt 0.11979166666666667 0.359375 +vt 0.078125 0.359375 +vt 0.078125 0.41145833333333337 +vt 0.041666666666666664 0.41145833333333337 +vt 0.041666666666666664 0.453125 +vt 0.078125 0.453125 +vt 0.11458333333333333 0.453125 +vt 0.078125 0.453125 +vt 0.078125 0.41145833333333337 +vt 0.11458333333333333 0.41145833333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 +o left_hind_leg +v -0.25 0.625 1.1875 +v -0.25 0.625 0.6875 +v -0.25 0 1.1875 +v -0.25 0 0.6875 +v -0.6875 0.625 0.6875 +v -0.6875 0.625 1.1875 +v -0.6875 0 0.6875 +v -0.6875 0 1.1875 +vt 0.041666666666666664 0.31770833333333337 +vt 0.078125 0.31770833333333337 +vt 0.078125 0.265625 +vt 0.041666666666666664 0.265625 +vt 0 0.31770833333333337 +vt 0.041666666666666664 0.31770833333333337 +vt 0.041666666666666664 0.265625 +vt 0 0.265625 +vt 0.11979166666666667 0.31770833333333337 +vt 0.15625 0.31770833333333337 +vt 0.15625 0.265625 +vt 0.11979166666666667 0.265625 +vt 0.078125 0.31770833333333337 +vt 0.11979166666666667 0.31770833333333337 +vt 0.11979166666666667 0.265625 +vt 0.078125 0.265625 +vt 0.078125 0.31770833333333337 +vt 0.041666666666666664 0.31770833333333337 +vt 0.041666666666666664 0.359375 +vt 0.078125 0.359375 +vt 0.11458333333333333 0.359375 +vt 0.078125 0.359375 +vt 0.078125 0.31770833333333337 +vt 0.11458333333333333 0.31770833333333337 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_583c9f26-fb84-68dc-a891-67c1661cee33 +f 116/340/85 119/339/85 117/338/85 114/337/85 +f 115/344/86 116/343/86 114/342/86 113/341/86 +f 120/348/87 115/347/87 113/346/87 118/345/87 +f 119/352/88 120/351/88 118/350/88 117/349/88 +f 118/356/89 113/355/89 114/354/89 117/353/89 +f 119/360/90 116/359/90 115/358/90 120/357/90 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/spider.obj b/renderer/viewer/three/entity/models/spider.obj new file mode 100644 index 00000000..eb636839 --- /dev/null +++ b/renderer/viewer/three/entity/models/spider.obj @@ -0,0 +1,509 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o head +v 0.25 0.8125 -0.1875 +v 0.25 0.8125 -0.6875 +v 0.25 0.3125 -0.1875 +v 0.25 0.3125 -0.6875 +v -0.25 0.8125 -0.6875 +v -0.25 0.8125 -0.1875 +v -0.25 0.3125 -0.6875 +v -0.25 0.3125 -0.1875 +vt 0.625 0.625 +vt 0.75 0.625 +vt 0.75 0.375 +vt 0.625 0.375 +vt 0.5 0.625 +vt 0.625 0.625 +vt 0.625 0.375 +vt 0.5 0.375 +vt 0.875 0.625 +vt 1 0.625 +vt 1 0.375 +vt 0.875 0.375 +vt 0.75 0.625 +vt 0.875 0.625 +vt 0.875 0.375 +vt 0.75 0.375 +vt 0.75 0.625 +vt 0.625 0.625 +vt 0.625 0.875 +vt 0.75 0.875 +vt 0.875 0.875 +vt 0.75 0.875 +vt 0.75 0.625 +vt 0.875 0.625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body0 +v 0.1875 0.75 0.1875 +v 0.1875 0.75 -0.1875 +v 0.1875 0.375 0.1875 +v 0.1875 0.375 -0.1875 +v -0.1875 0.75 -0.1875 +v -0.1875 0.75 0.1875 +v -0.1875 0.375 -0.1875 +v -0.1875 0.375 0.1875 +vt 0.09375 0.8125 +vt 0.1875 0.8125 +vt 0.1875 0.625 +vt 0.09375 0.625 +vt 0 0.8125 +vt 0.09375 0.8125 +vt 0.09375 0.625 +vt 0 0.625 +vt 0.28125 0.8125 +vt 0.375 0.8125 +vt 0.375 0.625 +vt 0.28125 0.625 +vt 0.1875 0.8125 +vt 0.28125 0.8125 +vt 0.28125 0.625 +vt 0.1875 0.625 +vt 0.1875 0.8125 +vt 0.09375 0.8125 +vt 0.09375 1 +vt 0.1875 1 +vt 0.28125 1 +vt 0.1875 1 +vt 0.1875 0.8125 +vt 0.28125 0.8125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o body1 +v 0.3125 0.8125 0.9375 +v 0.3125 0.8125 0.1875 +v 0.3125 0.3125 0.9375 +v 0.3125 0.3125 0.1875 +v -0.3125 0.8125 0.1875 +v -0.3125 0.8125 0.9375 +v -0.3125 0.3125 0.1875 +v -0.3125 0.3125 0.9375 +vt 0.1875 0.25 +vt 0.34375 0.25 +vt 0.34375 0 +vt 0.1875 0 +vt 0 0.25 +vt 0.1875 0.25 +vt 0.1875 0 +vt 0 0 +vt 0.53125 0.25 +vt 0.6875 0.25 +vt 0.6875 0 +vt 0.53125 0 +vt 0.34375 0.25 +vt 0.53125 0.25 +vt 0.53125 0 +vt 0.34375 0 +vt 0.34375 0.25 +vt 0.1875 0.25 +vt 0.1875 0.625 +vt 0.34375 0.625 +vt 0.5 0.625 +vt 0.34375 0.625 +vt 0.34375 0.25 +vt 0.5 0.25 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o leg0 +v 0.7316941738241591 0.16919417382415936 0.8321067811865475 +v 0.7941941738241591 0.10669417382415936 0.743718433538229 +v 0.6433058261758406 0.08080582617584087 0.8321067811865475 +v 0.7058058261758406 0.018305826175840867 0.743718433538229 +v 0.29419417382415913 0.6066941738241591 0.03661165235168151 +v 0.23169417382415913 0.6691941738241591 0.125 +v 0.20580582617584076 0.5183058261758409 0.03661165235168151 +v 0.14330582617584076 0.5808058261758409 0.125 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn 0.5 -0.5 -0.7071067811865476 +vn 0.5 -0.5 0.7071067811865477 +vn -0.5 0.5 0.7071067811865476 +vn -0.5 0.5 -0.7071067811865477 +vn 0.7071067811865477 0.7071067811865476 0 +vn -0.7071067811865477 -0.7071067811865476 0 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o leg1 +v -0.23169417382415913 0.6691941738241591 0.125 +v -0.29419417382415913 0.6066941738241591 0.03661165235168151 +v -0.14330582617584076 0.5808058261758409 0.125 +v -0.20580582617584076 0.5183058261758409 0.03661165235168151 +v -0.794194173824159 0.10669417382415936 0.743718433538229 +v -0.731694173824159 0.16919417382415936 0.8321067811865475 +v -0.7058058261758406 0.018305826175840867 0.743718433538229 +v -0.6433058261758406 0.08080582617584087 0.8321067811865475 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn -0.5 -0.5 -0.7071067811865476 +vn 0.5 0.5 -0.7071067811865477 +vn 0.5 0.5 0.7071067811865476 +vn -0.5 -0.5 0.7071067811865477 +vn -0.7071067811865477 0.7071067811865476 0 +vn 0.7071067811865477 -0.7071067811865476 0 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leg2 +v 1.0143853759373593 0.10357000946898909 0.36551321892668 +v 1.0408868946744412 0.08501344627527851 0.2447724906405464 +v 0.9426883213934785 0.0011760039328650995 0.36551321892668 +v 0.9691898401305603 -0.017380559260845474 0.2447724906405464 +v 0.24964677943821734 0.6390457394976019 -0.014046554461974337 +v 0.2231452607011355 0.6576023026913125 0.10669417382415924 +v 0.17794972489433658 0.5366517339614778 -0.014046554461974337 +v 0.15144820615725474 0.5552082971551884 0.10669417382415924 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn 0.21201214989665462 -0.1484525055496845 -0.9659258262890683 +vn 0.7912401152362238 -0.5540322932223234 0.25881904510252074 +vn -0.21201214989665462 0.1484525055496845 0.9659258262890683 +vn -0.7912401152362238 0.5540322932223234 -0.25881904510252074 +vn 0.5735764363510462 0.8191520442889919 1.387778780781446e-17 +vn -0.5735764363510462 -0.8191520442889919 -1.387778780781446e-17 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o leg3 +v -0.2231452607011355 0.6576023026913125 0.10669417382415924 +v -0.24964677943821734 0.6390457394976019 -0.014046554461974337 +v -0.15144820615725474 0.5552082971551884 0.10669417382415924 +v -0.17794972489433658 0.5366517339614778 -0.014046554461974337 +v -1.0408868946744412 0.08501344627527851 0.2447724906405464 +v -1.0143853759373593 0.10357000946898909 0.36551321892668 +v -0.9691898401305603 -0.017380559260845474 0.2447724906405464 +v -0.9426883213934785 0.0011760039328650995 0.36551321892668 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn -0.21201214989665462 -0.1484525055496845 -0.9659258262890683 +vn 0.7912401152362238 0.5540322932223234 -0.25881904510252074 +vn 0.21201214989665462 0.1484525055496845 0.9659258262890683 +vn -0.7912401152362238 -0.5540322932223234 0.25881904510252074 +vn -0.5735764363510462 0.8191520442889919 1.387778780781446e-17 +vn 0.5735764363510462 -0.8191520442889919 -1.387778780781446e-17 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o leg4 +v 1.0408868946744412 0.08501344627527851 -0.1822724906405464 +v 1.0143853759373593 0.10357000946898909 -0.30301321892668 +v 0.9691898401305603 -0.017380559260845474 -0.1822724906405464 +v 0.9426883213934785 0.0011760039328650995 -0.30301321892668 +v 0.2231452607011355 0.6576023026913125 -0.044194173824159244 +v 0.24964677943821734 0.6390457394976019 0.07654655446197434 +v 0.15144820615725474 0.5552082971551884 -0.044194173824159244 +v 0.17794972489433658 0.5366517339614778 0.07654655446197434 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn -0.21201214989665462 0.1484525055496845 -0.9659258262890683 +vn 0.7912401152362238 -0.5540322932223234 -0.25881904510252074 +vn 0.21201214989665462 -0.1484525055496845 0.9659258262890683 +vn -0.7912401152362238 0.5540322932223234 0.25881904510252074 +vn 0.5735764363510462 0.8191520442889919 -1.387778780781446e-17 +vn -0.5735764363510462 -0.8191520442889919 1.387778780781446e-17 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o leg5 +v -0.24964677943821734 0.6390457394976019 0.07654655446197434 +v -0.2231452607011355 0.6576023026913125 -0.044194173824159244 +v -0.17794972489433658 0.5366517339614778 0.07654655446197434 +v -0.15144820615725474 0.5552082971551884 -0.044194173824159244 +v -1.0143853759373593 0.10357000946898909 -0.30301321892668 +v -1.0408868946744412 0.08501344627527851 -0.1822724906405464 +v -0.9426883213934785 0.0011760039328650995 -0.30301321892668 +v -0.9691898401305603 -0.017380559260845474 -0.1822724906405464 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn 0.21201214989665462 0.1484525055496845 -0.9659258262890683 +vn 0.7912401152362238 0.5540322932223234 0.25881904510252074 +vn -0.21201214989665462 -0.1484525055496845 0.9659258262890683 +vn -0.7912401152362238 -0.5540322932223234 -0.25881904510252074 +vn -0.5735764363510462 0.8191520442889919 -1.387778780781446e-17 +vn 0.5735764363510462 -0.8191520442889919 1.387778780781446e-17 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o leg6 +v 0.7941941738241591 0.10669417382415936 -0.681218433538229 +v 0.7316941738241591 0.16919417382415936 -0.7696067811865475 +v 0.7058058261758406 0.018305826175840867 -0.681218433538229 +v 0.6433058261758406 0.08080582617584087 -0.7696067811865475 +v 0.23169417382415913 0.6691941738241591 -0.0625 +v 0.29419417382415913 0.6066941738241591 0.025888347648318488 +v 0.14330582617584076 0.5808058261758409 -0.0625 +v 0.20580582617584076 0.5183058261758409 0.025888347648318488 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn -0.5 0.5 -0.7071067811865476 +vn 0.5 -0.5 -0.7071067811865477 +vn 0.5 -0.5 0.7071067811865476 +vn -0.5 0.5 0.7071067811865477 +vn 0.7071067811865477 0.7071067811865476 0 +vn -0.7071067811865477 -0.7071067811865476 0 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o leg7 +v -0.29419417382415913 0.6066941738241591 0.025888347648318488 +v -0.23169417382415913 0.6691941738241591 -0.0625 +v -0.20580582617584076 0.5183058261758409 0.025888347648318488 +v -0.14330582617584076 0.5808058261758409 -0.0625 +v -0.731694173824159 0.16919417382415936 -0.7696067811865475 +v -0.794194173824159 0.10669417382415936 -0.681218433538229 +v -0.6433058261758406 0.08080582617584087 -0.7696067811865475 +v -0.7058058261758406 0.018305826175840867 -0.681218433538229 +vt 0.3125 0.9375 +vt 0.5625 0.9375 +vt 0.5625 0.875 +vt 0.3125 0.875 +vt 0.28125 0.9375 +vt 0.3125 0.9375 +vt 0.3125 0.875 +vt 0.28125 0.875 +vt 0.59375 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.875 +vt 0.59375 0.875 +vt 0.5625 0.9375 +vt 0.59375 0.9375 +vt 0.59375 0.875 +vt 0.5625 0.875 +vt 0.5625 0.9375 +vt 0.3125 0.9375 +vt 0.3125 1 +vt 0.5625 1 +vt 0.8125 1 +vt 0.5625 1 +vt 0.5625 0.9375 +vt 0.8125 0.9375 +vn 0.5 0.5 -0.7071067811865476 +vn 0.5 0.5 0.7071067811865477 +vn -0.5 -0.5 0.7071067811865476 +vn -0.5 -0.5 -0.7071067811865477 +vn -0.7071067811865477 0.7071067811865476 0 +vn 0.7071067811865477 -0.7071067811865476 0 +usemtl m_9855f90d-c537-3611-ecbb-abc7e6cc7b17 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/tadpole.obj b/renderer/viewer/three/entity/models/tadpole.obj new file mode 100644 index 00000000..b38c8a26 --- /dev/null +++ b/renderer/viewer/three/entity/models/tadpole.obj @@ -0,0 +1,95 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.09375 0.1875 0.03125 +v 0.09375 0.1875 -0.15625 +v 0.09375 0.0625 0.03125 +v 0.09375 0.0625 -0.15625 +v -0.09375 0.1875 -0.15625 +v -0.09375 0.1875 0.03125 +v -0.09375 0.0625 -0.15625 +v -0.09375 0.0625 0.03125 +vt 0.1875 0.8125 +vt 0.375 0.8125 +vt 0.375 0.6875 +vt 0.1875 0.6875 +vt 0 0.8125 +vt 0.1875 0.8125 +vt 0.1875 0.6875 +vt 0 0.6875 +vt 0.5625 0.8125 +vt 0.75 0.8125 +vt 0.75 0.6875 +vt 0.5625 0.6875 +vt 0.375 0.8125 +vt 0.5625 0.8125 +vt 0.5625 0.6875 +vt 0.375 0.6875 +vt 0.375 0.8125 +vt 0.1875 0.8125 +vt 0.1875 1 +vt 0.375 1 +vt 0.5625 1 +vt 0.375 1 +vt 0.375 0.8125 +vt 0.5625 0.8125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_71a3df64-a731-05a3-e848-ff24e21209ec +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o tail +v 0 0.1875 0.40625 +v 0 0.1875 -0.03125 +v 0 0.0625 0.40625 +v 0 0.0625 -0.03125 +v 0 0.1875 -0.03125 +v 0 0.1875 0.40625 +v 0 0.0625 -0.03125 +v 0 0.0625 0.40625 +vt 0.4375 0.5625 +vt 0.4375 0.5625 +vt 0.4375 0.4375 +vt 0.4375 0.4375 +vt 0 0.5625 +vt 0.4375 0.5625 +vt 0.4375 0.4375 +vt 0 0.4375 +vt 0.875 0.5625 +vt 0.875 0.5625 +vt 0.875 0.4375 +vt 0.875 0.4375 +vt 0.4375 0.5625 +vt 0.875 0.5625 +vt 0.875 0.4375 +vt 0.4375 0.4375 +vt 0.4375 0.5625 +vt 0.4375 0.5625 +vt 0.4375 1 +vt 0.4375 1 +vt 0.4375 1 +vt 0.4375 1 +vt 0.4375 0.5625 +vt 0.4375 0.5625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_71a3df64-a731-05a3-e848-ff24e21209ec +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/turtle.obj b/renderer/viewer/three/entity/models/turtle.obj new file mode 100644 index 00000000..ac0d41b9 --- /dev/null +++ b/renderer/viewer/three/entity/models/turtle.obj @@ -0,0 +1,371 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.59375 0.5625 -0.4375000000000001 +v 0.59375 0.1875 -0.4375000000000001 +v 0.59375 0.5624999999999996 0.8125 +v 0.59375 0.18749999999999956 0.8125 +v -0.59375 0.1875 -0.4375000000000001 +v -0.59375 0.5625 -0.4375000000000001 +v -0.59375 0.18749999999999956 0.8125 +v -0.59375 0.5624999999999996 0.8125 +vt 0.1015625 0.328125 +vt 0.25 0.328125 +vt 0.25 0.015625 +vt 0.1015625 0.015625 +vt 0.0546875 0.328125 +vt 0.1015625 0.328125 +vt 0.1015625 0.015625 +vt 0.0546875 0.015625 +vt 0.296875 0.328125 +vt 0.4453125 0.328125 +vt 0.4453125 0.015625 +vt 0.296875 0.015625 +vt 0.25 0.328125 +vt 0.296875 0.328125 +vt 0.296875 0.015625 +vt 0.25 0.015625 +vt 0.25 0.328125 +vt 0.1015625 0.328125 +vt 0.1015625 0.421875 +vt 0.25 0.421875 +vt 0.3984375 0.421875 +vt 0.25 0.421875 +vt 0.25 0.328125 +vt 0.3984375 0.328125 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0.34375 0.1875 -0.4375000000000001 +v 0.34375 0 -0.4375000000000002 +v 0.34375 0.18749999999999978 0.6874999999999998 +v 0.34375 -2.220446049250313e-16 0.6874999999999998 +v -0.34375 0 -0.4375000000000002 +v -0.34375 0.1875 -0.4375000000000001 +v -0.34375 -2.220446049250313e-16 0.6874999999999998 +v -0.34375 0.18749999999999978 0.6874999999999998 +vt 0.265625 0.9375 +vt 0.3515625 0.9375 +vt 0.3515625 0.65625 +vt 0.265625 0.65625 +vt 0.2421875 0.9375 +vt 0.265625 0.9375 +vt 0.265625 0.65625 +vt 0.2421875 0.65625 +vt 0.375 0.9375 +vt 0.4609375 0.9375 +vt 0.4609375 0.65625 +vt 0.375 0.65625 +vt 0.3515625 0.9375 +vt 0.375 0.9375 +vt 0.375 0.65625 +vt 0.3515625 0.65625 +vt 0.3515625 0.9375 +vt 0.265625 0.9375 +vt 0.265625 0.984375 +vt 0.3515625 0.984375 +vt 0.4375 0.984375 +vt 0.3515625 0.984375 +vt 0.3515625 0.9375 +vt 0.4375 0.9375 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o eggbelly +v 0.28125 0 -0.4375000000000002 +v 0.28125 -0.0625 -0.4375000000000002 +v 0.28125 -2.220446049250313e-16 0.6874999999999998 +v 0.28125 -0.06250000000000022 0.6874999999999998 +v -0.28125 -0.0625 -0.4375000000000002 +v -0.28125 0 -0.4375000000000002 +v -0.28125 -0.06250000000000022 0.6874999999999998 +v -0.28125 -2.220446049250313e-16 0.6874999999999998 +vt 0.5546875 0.46875 +vt 0.625 0.46875 +vt 0.625 0.1875 +vt 0.5546875 0.1875 +vt 0.546875 0.46875 +vt 0.5546875 0.46875 +vt 0.5546875 0.1875 +vt 0.546875 0.1875 +vt 0.6328125 0.46875 +vt 0.703125 0.46875 +vt 0.703125 0.1875 +vt 0.6328125 0.1875 +vt 0.625 0.46875 +vt 0.6328125 0.46875 +vt 0.6328125 0.1875 +vt 0.625 0.1875 +vt 0.625 0.46875 +vt 0.5546875 0.46875 +vt 0.5546875 0.484375 +vt 0.625 0.484375 +vt 0.6953125 0.484375 +vt 0.625 0.484375 +vt 0.625 0.46875 +vt 0.6953125 0.46875 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.1875 0.375 -0.4375 +v 0.1875 0.375 -0.8125 +v 0.1875 0.0625 -0.4375 +v 0.1875 0.0625 -0.8125 +v -0.1875 0.375 -0.8125 +v -0.1875 0.375 -0.4375 +v -0.1875 0.0625 -0.8125 +v -0.1875 0.0625 -0.4375 +vt 0.0703125 0.90625 +vt 0.1171875 0.90625 +vt 0.1171875 0.828125 +vt 0.0703125 0.828125 +vt 0.0234375 0.90625 +vt 0.0703125 0.90625 +vt 0.0703125 0.828125 +vt 0.0234375 0.828125 +vt 0.1640625 0.90625 +vt 0.2109375 0.90625 +vt 0.2109375 0.828125 +vt 0.1640625 0.828125 +vt 0.1171875 0.90625 +vt 0.1640625 0.90625 +vt 0.1640625 0.828125 +vt 0.1171875 0.828125 +vt 0.1171875 0.90625 +vt 0.0703125 0.90625 +vt 0.0703125 1 +vt 0.1171875 1 +vt 0.1640625 1 +vt 0.1171875 1 +vt 0.1171875 0.90625 +vt 0.1640625 0.90625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o leg0 +v 0.34375 0.125 1.3125 +v 0.34375 0.125 0.6875 +v 0.34375 0.0625 1.3125 +v 0.34375 0.0625 0.6875 +v 0.09375 0.125 0.6875 +v 0.09375 0.125 1.3125 +v 0.09375 0.0625 0.6875 +v 0.09375 0.0625 1.3125 +vt 0.0859375 0.484375 +vt 0.1171875 0.484375 +vt 0.1171875 0.46875 +vt 0.0859375 0.46875 +vt 0.0078125 0.484375 +vt 0.0859375 0.484375 +vt 0.0859375 0.46875 +vt 0.0078125 0.46875 +vt 0.1953125 0.484375 +vt 0.2265625 0.484375 +vt 0.2265625 0.46875 +vt 0.1953125 0.46875 +vt 0.1171875 0.484375 +vt 0.1953125 0.484375 +vt 0.1953125 0.46875 +vt 0.1171875 0.46875 +vt 0.1171875 0.484375 +vt 0.0859375 0.484375 +vt 0.0859375 0.640625 +vt 0.1171875 0.640625 +vt 0.1484375 0.640625 +vt 0.1171875 0.640625 +vt 0.1171875 0.484375 +vt 0.1484375 0.484375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leg1 +v -0.09375 0.125 1.3125 +v -0.09375 0.125 0.6875 +v -0.09375 0.0625 1.3125 +v -0.09375 0.0625 0.6875 +v -0.34375 0.125 0.6875 +v -0.34375 0.125 1.3125 +v -0.34375 0.0625 0.6875 +v -0.34375 0.0625 1.3125 +vt 0.0859375 0.65625 +vt 0.1171875 0.65625 +vt 0.1171875 0.640625 +vt 0.0859375 0.640625 +vt 0.0078125 0.65625 +vt 0.0859375 0.65625 +vt 0.0859375 0.640625 +vt 0.0078125 0.640625 +vt 0.1953125 0.65625 +vt 0.2265625 0.65625 +vt 0.2265625 0.640625 +vt 0.1953125 0.640625 +vt 0.1171875 0.65625 +vt 0.1953125 0.65625 +vt 0.1953125 0.640625 +vt 0.1171875 0.640625 +vt 0.1171875 0.65625 +vt 0.0859375 0.65625 +vt 0.0859375 0.8125 +vt 0.1171875 0.8125 +vt 0.1484375 0.8125 +vt 0.1171875 0.8125 +vt 0.1171875 0.65625 +vt 0.1484375 0.65625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o leg2 +v 1.0800972660098695 0.1875 0.07574059804416988 +v 1.1343623215307852 0.1875 -0.2320118247721451 +v 1.0800972660098695 0.125 0.07574059804416988 +v 1.1343623215307852 0.125 -0.2320118247721451 +v 0.33420602220836626 0.1875 -0.373100969126526 +v 0.2799409666874506 0.1875 -0.06534854631021103 +v 0.33420602220836626 0.125 -0.373100969126526 +v 0.2799409666874506 0.125 -0.06534854631021103 +vt 0.25 0.453125 +vt 0.3515625 0.453125 +vt 0.3515625 0.4375 +vt 0.25 0.4375 +vt 0.2109375 0.453125 +vt 0.25 0.453125 +vt 0.25 0.4375 +vt 0.2109375 0.4375 +vt 0.390625 0.453125 +vt 0.4921875 0.453125 +vt 0.4921875 0.4375 +vt 0.390625 0.4375 +vt 0.3515625 0.453125 +vt 0.390625 0.453125 +vt 0.390625 0.4375 +vt 0.3515625 0.4375 +vt 0.3515625 0.453125 +vt 0.25 0.453125 +vt 0.25 0.53125 +vt 0.3515625 0.53125 +vt 0.453125 0.53125 +vt 0.3515625 0.53125 +vt 0.3515625 0.453125 +vt 0.453125 0.453125 +vn 0.17364817766693033 0 -0.984807753012208 +vn 0.984807753012208 0 0.17364817766693033 +vn -0.17364817766693033 0 0.984807753012208 +vn -0.984807753012208 0 -0.17364817766693033 +vn 0 1 0 +vn 0 -1 0 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o leg3 +v -0.27994096668745055 0.1875 -0.06534854631021103 +v -0.3342060222083663 0.1875 -0.373100969126526 +v -0.27994096668745055 0.125 -0.06534854631021103 +v -0.3342060222083663 0.125 -0.373100969126526 +v -1.1343623215307852 0.1875 -0.2320118247721451 +v -1.0800972660098695 0.1875 0.07574059804416988 +v -1.1343623215307852 0.125 -0.2320118247721451 +v -1.0800972660098695 0.125 0.07574059804416988 +vt 0.25 0.546875 +vt 0.3515625 0.546875 +vt 0.3515625 0.53125 +vt 0.25 0.53125 +vt 0.2109375 0.546875 +vt 0.25 0.546875 +vt 0.25 0.53125 +vt 0.2109375 0.53125 +vt 0.390625 0.546875 +vt 0.4921875 0.546875 +vt 0.4921875 0.53125 +vt 0.390625 0.53125 +vt 0.3515625 0.546875 +vt 0.390625 0.546875 +vt 0.390625 0.53125 +vt 0.3515625 0.53125 +vt 0.3515625 0.546875 +vt 0.25 0.546875 +vt 0.25 0.625 +vt 0.3515625 0.625 +vt 0.453125 0.625 +vt 0.3515625 0.625 +vt 0.3515625 0.546875 +vt 0.453125 0.546875 +vn -0.17364817766693033 0 -0.984807753012208 +vn 0.984807753012208 0 -0.17364817766693033 +vn 0.17364817766693033 0 0.984807753012208 +vn -0.984807753012208 0 0.17364817766693033 +vn 0 1 0 +vn 0 -1 0 +usemtl m_d5e023f1-fe9e-4631-8a6b-282685c9cca4 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/vex.obj b/renderer/viewer/three/entity/models/vex.obj new file mode 100644 index 00000000..63d99f88 --- /dev/null +++ b/renderer/viewer/three/entity/models/vex.obj @@ -0,0 +1,325 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.09375 0.25 0.0625 +v 0.09375 0.25 -0.0625 +v 0.09375 0 0.0625 +v 0.09375 0 -0.0625 +v -0.09375 0.25 -0.0625 +v -0.09375 0.25 0.0625 +v -0.09375 0 -0.0625 +v -0.09375 0 0.0625 +vt 0.0625 0.625 +vt 0.15625 0.625 +vt 0.15625 0.5 +vt 0.0625 0.5 +vt 0 0.625 +vt 0.0625 0.625 +vt 0.0625 0.5 +vt 0 0.5 +vt 0.21875 0.625 +vt 0.3125 0.625 +vt 0.3125 0.5 +vt 0.21875 0.5 +vt 0.15625 0.625 +vt 0.21875 0.625 +vt 0.21875 0.5 +vt 0.15625 0.5 +vt 0.15625 0.625 +vt 0.0625 0.625 +vt 0.0625 0.6875 +vt 0.15625 0.6875 +vt 0.25 0.6875 +vt 0.15625 0.6875 +vt 0.15625 0.625 +vt 0.25 0.625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_f88b8145-cdbb-8011-03d2-81deb45b4e43 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0.08125000000000004 0.17500000000000004 0.050000000000000044 +v 0.08125000000000004 0.17500000000000004 -0.04999999999999999 +v 0.08125000000000004 -0.11249999999999999 0.050000000000000044 +v 0.08125000000000004 -0.11249999999999999 -0.04999999999999999 +v -0.08124999999999999 0.17500000000000004 -0.04999999999999999 +v -0.08124999999999999 0.17500000000000004 0.050000000000000044 +v -0.08124999999999999 -0.11249999999999999 -0.04999999999999999 +v -0.08124999999999999 -0.11249999999999999 0.050000000000000044 +vt 0.0625 0.4375 +vt 0.15625 0.4375 +vt 0.15625 0.28125 +vt 0.0625 0.28125 +vt 0 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.28125 +vt 0 0.28125 +vt 0.21875 0.4375 +vt 0.3125 0.4375 +vt 0.3125 0.28125 +vt 0.21875 0.28125 +vt 0.15625 0.4375 +vt 0.21875 0.4375 +vt 0.21875 0.28125 +vt 0.15625 0.28125 +vt 0.15625 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.5 +vt 0.15625 0.5 +vt 0.25 0.5 +vt 0.15625 0.5 +vt 0.15625 0.4375 +vt 0.25 0.4375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_f88b8145-cdbb-8011-03d2-81deb45b4e43 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.15625 0.5625 0.15625 +v 0.15625 0.5625 -0.15625 +v 0.15625 0.25 0.15625 +v 0.15625 0.25 -0.15625 +v -0.15625 0.5625 -0.15625 +v -0.15625 0.5625 0.15625 +v -0.15625 0.25 -0.15625 +v -0.15625 0.25 0.15625 +vt 0.15625 0.84375 +vt 0.3125 0.84375 +vt 0.3125 0.6875 +vt 0.15625 0.6875 +vt 0 0.84375 +vt 0.15625 0.84375 +vt 0.15625 0.6875 +vt 0 0.6875 +vt 0.46875 0.84375 +vt 0.625 0.84375 +vt 0.625 0.6875 +vt 0.46875 0.6875 +vt 0.3125 0.84375 +vt 0.46875 0.84375 +vt 0.46875 0.6875 +vt 0.3125 0.6875 +vt 0.3125 0.84375 +vt 0.15625 0.84375 +vt 0.15625 1 +vt 0.3125 1 +vt 0.46875 1 +vt 0.3125 1 +vt 0.3125 0.84375 +vt 0.46875 0.84375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_f88b8145-cdbb-8011-03d2-81deb45b4e43 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o rightArm +v 0.18125000000000002 0.259375 0.05625000000000002 +v 0.18125000000000002 0.259375 -0.05625000000000002 +v 0.18125000000000002 0.021874999999999978 0.05625000000000002 +v 0.18125000000000002 0.021874999999999978 -0.05625000000000002 +v 0.06874999999999998 0.259375 -0.05625000000000002 +v 0.06874999999999998 0.259375 0.05625000000000002 +v 0.06874999999999998 0.021874999999999978 -0.05625000000000002 +v 0.06874999999999998 0.021874999999999978 0.05625000000000002 +vt 0.78125 0.9375 +vt 0.84375 0.9375 +vt 0.84375 0.8125 +vt 0.78125 0.8125 +vt 0.71875 0.9375 +vt 0.78125 0.9375 +vt 0.78125 0.8125 +vt 0.71875 0.8125 +vt 0.90625 0.9375 +vt 0.96875 0.9375 +vt 0.96875 0.8125 +vt 0.90625 0.8125 +vt 0.84375 0.9375 +vt 0.90625 0.9375 +vt 0.90625 0.8125 +vt 0.84375 0.8125 +vt 0.84375 0.9375 +vt 0.78125 0.9375 +vt 0.78125 1 +vt 0.84375 1 +vt 0.90625 1 +vt 0.84375 1 +vt 0.84375 0.9375 +vt 0.90625 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_f88b8145-cdbb-8011-03d2-81deb45b4e43 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o leftArm +v -0.06874999999999998 0.259375 0.05625000000000002 +v -0.06874999999999998 0.259375 -0.05625000000000002 +v -0.06874999999999998 0.021874999999999978 0.05625000000000002 +v -0.06874999999999998 0.021874999999999978 -0.05625000000000002 +v -0.18125000000000002 0.259375 -0.05625000000000002 +v -0.18125000000000002 0.259375 0.05625000000000002 +v -0.18125000000000002 0.021874999999999978 -0.05625000000000002 +v -0.18125000000000002 0.021874999999999978 0.05625000000000002 +vt 0.78125 0.75 +vt 0.84375 0.75 +vt 0.84375 0.625 +vt 0.78125 0.625 +vt 0.71875 0.75 +vt 0.78125 0.75 +vt 0.78125 0.625 +vt 0.71875 0.625 +vt 0.90625 0.75 +vt 0.96875 0.75 +vt 0.96875 0.625 +vt 0.90625 0.625 +vt 0.84375 0.75 +vt 0.90625 0.75 +vt 0.90625 0.625 +vt 0.84375 0.625 +vt 0.84375 0.75 +vt 0.78125 0.75 +vt 0.78125 0.8125 +vt 0.84375 0.8125 +vt 0.90625 0.8125 +vt 0.84375 0.8125 +vt 0.84375 0.75 +vt 0.90625 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_f88b8145-cdbb-8011-03d2-81deb45b4e43 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o leftWing +v -0.03125 0.1875 0.0625 +v -0.03125 0.1875 0.0625 +v -0.03125 -0.125 0.0625 +v -0.03125 -0.125 0.0625 +v -0.53125 0.1875 0.0625 +v -0.53125 0.1875 0.0625 +v -0.53125 -0.125 0.0625 +v -0.53125 -0.125 0.0625 +vt 0.75 0.3125 +vt 0.5 0.3125 +vt 0.5 0.15625 +vt 0.75 0.15625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 0.75 0.15625 +vt 1 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 1 0.15625 +vt 0.5 0.3125 +vt 0.5 0.3125 +vt 0.5 0.15625 +vt 0.5 0.15625 +vt 0.5 0.3125 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 0.5 0.3125 +vt 0.75 0.3125 +vt 1 0.3125 +vt 1 0.3125 +vt 0.75 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_f88b8145-cdbb-8011-03d2-81deb45b4e43 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o rightWing +v 0.53125 0.1875 0.0625 +v 0.53125 0.1875 0.0625 +v 0.53125 -0.125 0.0625 +v 0.53125 -0.125 0.0625 +v 0.03125 0.1875 0.0625 +v 0.03125 0.1875 0.0625 +v 0.03125 -0.125 0.0625 +v 0.03125 -0.125 0.0625 +vt 0.5 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 0.5 0.15625 +vt 0.5 0.3125 +vt 0.5 0.3125 +vt 0.5 0.15625 +vt 0.5 0.15625 +vt 0.75 0.3125 +vt 1 0.3125 +vt 1 0.15625 +vt 0.75 0.15625 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 0.75 0.15625 +vt 0.75 0.15625 +vt 0.75 0.3125 +vt 0.5 0.3125 +vt 0.5 0.3125 +vt 0.75 0.3125 +vt 1 0.3125 +vt 0.75 0.3125 +vt 0.75 0.3125 +vt 1 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_f88b8145-cdbb-8011-03d2-81deb45b4e43 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/villager.obj b/renderer/viewer/three/entity/models/villager.obj new file mode 100644 index 00000000..73462472 --- /dev/null +++ b/renderer/viewer/three/entity/models/villager.obj @@ -0,0 +1,509 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.25 1.5 0.1875 +v 0.25 1.5 -0.1875 +v 0.25 0.75 0.1875 +v 0.25 0.75 -0.1875 +v -0.25 1.5 -0.1875 +v -0.25 1.5 0.1875 +v -0.25 0.75 -0.1875 +v -0.25 0.75 0.1875 +vt 0.34375 0.59375 +vt 0.46875 0.59375 +vt 0.46875 0.40625 +vt 0.34375 0.40625 +vt 0.25 0.59375 +vt 0.34375 0.59375 +vt 0.34375 0.40625 +vt 0.25 0.40625 +vt 0.5625 0.59375 +vt 0.6875 0.59375 +vt 0.6875 0.40625 +vt 0.5625 0.40625 +vt 0.46875 0.59375 +vt 0.5625 0.59375 +vt 0.5625 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.59375 +vt 0.34375 0.59375 +vt 0.34375 0.6875 +vt 0.46875 0.6875 +vt 0.59375 0.6875 +vt 0.46875 0.6875 +vt 0.46875 0.59375 +vt 0.59375 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o body +v 0.28125 1.53125 0.21875 +v 0.28125 1.53125 -0.21875 +v 0.28125 0.34375 0.21875 +v 0.28125 0.34375 -0.21875 +v -0.28125 1.53125 -0.21875 +v -0.28125 1.53125 0.21875 +v -0.28125 0.34375 -0.21875 +v -0.28125 0.34375 0.21875 +vt 0.09375 0.3125 +vt 0.21875 0.3125 +vt 0.21875 0.03125 +vt 0.09375 0.03125 +vt 0 0.3125 +vt 0.09375 0.3125 +vt 0.09375 0.03125 +vt 0 0.03125 +vt 0.3125 0.3125 +vt 0.4375 0.3125 +vt 0.4375 0.03125 +vt 0.3125 0.03125 +vt 0.21875 0.3125 +vt 0.3125 0.3125 +vt 0.3125 0.03125 +vt 0.21875 0.03125 +vt 0.21875 0.3125 +vt 0.09375 0.3125 +vt 0.09375 0.40625 +vt 0.21875 0.40625 +vt 0.34375 0.40625 +vt 0.21875 0.40625 +vt 0.21875 0.3125 +vt 0.34375 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0.25 2.125 0.25 +v 0.25 2.125 -0.25 +v 0.25 1.5 0.25 +v 0.25 1.5 -0.25 +v -0.25 2.125 -0.25 +v -0.25 2.125 0.25 +v -0.25 1.5 -0.25 +v -0.25 1.5 0.25 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.71875 +vt 0.125 0.71875 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.71875 +vt 0 0.71875 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.71875 +vt 0.375 0.71875 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.71875 +vt 0.25 0.71875 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o helmet +v 0.28125 2.15625 0.28125 +v 0.28125 2.15625 -0.28125 +v 0.28125 1.46875 0.28125 +v 0.28125 1.46875 -0.28125 +v -0.28125 2.15625 -0.28125 +v -0.28125 2.15625 0.28125 +v -0.28125 1.46875 -0.28125 +v -0.28125 1.46875 0.28125 +vt 0.625 0.875 +vt 0.75 0.875 +vt 0.75 0.71875 +vt 0.625 0.71875 +vt 0.5 0.875 +vt 0.625 0.875 +vt 0.625 0.71875 +vt 0.5 0.71875 +vt 0.875 0.875 +vt 1 0.875 +vt 1 0.71875 +vt 0.875 0.71875 +vt 0.75 0.875 +vt 0.875 0.875 +vt 0.875 0.71875 +vt 0.75 0.71875 +vt 0.75 0.875 +vt 0.625 0.875 +vt 0.625 1 +vt 0.75 1 +vt 0.875 1 +vt 0.75 1 +vt 0.75 0.875 +vt 0.875 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o brim +v 0.5062500000000001 1.80625 0.5062500000000001 +v 0.5062500000000001 1.88125 0.5062500000000001 +v 0.5062500000000001 1.80625 -0.5062500000000001 +v 0.5062500000000001 1.8812499999999996 -0.5062500000000001 +v -0.50625 1.88125 0.5062500000000001 +v -0.50625 1.80625 0.5062500000000001 +v -0.50625 1.8812499999999996 -0.5062500000000001 +v -0.50625 1.80625 -0.5062500000000001 +vt 0.484375 0.25 +vt 0.734375 0.25 +vt 0.734375 0 +vt 0.484375 0 +vt 0.46875 0.25 +vt 0.484375 0.25 +vt 0.484375 0 +vt 0.46875 0 +vt 0.75 0.25 +vt 1 0.25 +vt 1 0 +vt 0.75 0 +vt 0.734375 0.25 +vt 0.75 0.25 +vt 0.75 0 +vt 0.734375 0 +vt 0.734375 0.25 +vt 0.484375 0.25 +vt 0.484375 0.265625 +vt 0.734375 0.265625 +vt 0.984375 0.265625 +vt 0.734375 0.265625 +vt 0.734375 0.25 +vt 0.984375 0.25 +vn 0 1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 -1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 1 +vn 0 -2.220446049250313e-16 -1 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o nose +v 0.0625 1.6875 -0.25 +v 0.0625 1.6875 -0.375 +v 0.0625 1.4375 -0.25 +v 0.0625 1.4375 -0.375 +v -0.0625 1.6875 -0.375 +v -0.0625 1.6875 -0.25 +v -0.0625 1.4375 -0.375 +v -0.0625 1.4375 -0.25 +vt 0.40625 0.96875 +vt 0.4375 0.96875 +vt 0.4375 0.90625 +vt 0.40625 0.90625 +vt 0.375 0.96875 +vt 0.40625 0.96875 +vt 0.40625 0.90625 +vt 0.375 0.90625 +vt 0.46875 0.96875 +vt 0.5 0.96875 +vt 0.5 0.90625 +vt 0.46875 0.90625 +vt 0.4375 0.96875 +vt 0.46875 0.96875 +vt 0.46875 0.90625 +vt 0.4375 0.90625 +vt 0.4375 0.96875 +vt 0.40625 0.96875 +vt 0.40625 1 +vt 0.4375 1 +vt 0.46875 1 +vt 0.4375 1 +vt 0.4375 0.96875 +vt 0.46875 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o arms +v 0.25 1.198223304703363 0 +v 0.25 1.375 -0.17677669529663698 +v 0.25 1.0214466094067263 -0.17677669529663698 +v 0.25 1.1982233047033632 -0.35355339059327373 +v -0.25 1.375 -0.17677669529663698 +v -0.25 1.198223304703363 0 +v -0.25 1.1982233047033632 -0.35355339059327373 +v -0.25 1.0214466094067263 -0.17677669529663698 +vt 0.6875 0.34375 +vt 0.8125 0.34375 +vt 0.8125 0.28125 +vt 0.6875 0.28125 +vt 0.625 0.34375 +vt 0.6875 0.34375 +vt 0.6875 0.28125 +vt 0.625 0.28125 +vt 0.875 0.34375 +vt 1 0.34375 +vt 1 0.28125 +vt 0.875 0.28125 +vt 0.8125 0.34375 +vt 0.875 0.34375 +vt 0.875 0.28125 +vt 0.8125 0.28125 +vt 0.8125 0.34375 +vt 0.6875 0.34375 +vt 0.6875 0.40625 +vt 0.8125 0.40625 +vt 0.9375 0.40625 +vt 0.8125 0.40625 +vt 0.8125 0.34375 +vt 0.9375 0.34375 +vn 0 0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 0.7071067811865476 +vn 0 -0.7071067811865475 -0.7071067811865476 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o arms +v 0.5 1.375 0.17677669529663698 +v 0.5 1.551776695296637 0 +v 0.5 1.0214466094067263 -0.17677669529663698 +v 0.5 1.1982233047033632 -0.35355339059327373 +v 0.25 1.551776695296637 0 +v 0.25 1.375 0.17677669529663698 +v 0.25 1.1982233047033632 -0.35355339059327373 +v 0.25 1.0214466094067263 -0.17677669529663698 +vt 0.75 0.59375 +vt 0.8125 0.59375 +vt 0.8125 0.46875 +vt 0.75 0.46875 +vt 0.6875 0.59375 +vt 0.75 0.59375 +vt 0.75 0.46875 +vt 0.6875 0.46875 +vt 0.875 0.59375 +vt 0.9375 0.59375 +vt 0.9375 0.46875 +vt 0.875 0.46875 +vt 0.8125 0.59375 +vt 0.875 0.59375 +vt 0.875 0.46875 +vt 0.8125 0.46875 +vt 0.8125 0.59375 +vt 0.75 0.59375 +vt 0.75 0.65625 +vt 0.8125 0.65625 +vt 0.875 0.65625 +vt 0.8125 0.65625 +vt 0.8125 0.59375 +vt 0.875 0.59375 +vn 0 0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 0.7071067811865476 +vn 0 -0.7071067811865475 -0.7071067811865476 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o arms +v -0.25 1.375 0.17677669529663698 +v -0.25 1.551776695296637 0 +v -0.25 1.0214466094067263 -0.17677669529663698 +v -0.25 1.1982233047033632 -0.35355339059327373 +v -0.5 1.551776695296637 0 +v -0.5 1.375 0.17677669529663698 +v -0.5 1.1982233047033632 -0.35355339059327373 +v -0.5 1.0214466094067263 -0.17677669529663698 +vt 0.8125 0.59375 +vt 0.75 0.59375 +vt 0.75 0.46875 +vt 0.8125 0.46875 +vt 0.875 0.59375 +vt 0.8125 0.59375 +vt 0.8125 0.46875 +vt 0.875 0.46875 +vt 0.9375 0.59375 +vt 0.875 0.59375 +vt 0.875 0.46875 +vt 0.9375 0.46875 +vt 0.75 0.59375 +vt 0.6875 0.59375 +vt 0.6875 0.46875 +vt 0.75 0.46875 +vt 0.75 0.59375 +vt 0.8125 0.59375 +vt 0.8125 0.65625 +vt 0.75 0.65625 +vt 0.8125 0.65625 +vt 0.875 0.65625 +vt 0.875 0.59375 +vt 0.8125 0.59375 +vn 0 0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 0.7071067811865476 +vn 0 -0.7071067811865475 -0.7071067811865476 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o leg0 +v 0.25 0.75 0.125 +v 0.25 0.75 -0.125 +v 0.25 0 0.125 +v 0.25 0 -0.125 +v 0 0.75 -0.125 +v 0 0.75 0.125 +v 0 0 -0.125 +v 0 0 0.125 +vt 0.0625 0.59375 +vt 0.125 0.59375 +vt 0.125 0.40625 +vt 0.0625 0.40625 +vt 0 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.40625 +vt 0 0.40625 +vt 0.1875 0.59375 +vt 0.25 0.59375 +vt 0.25 0.40625 +vt 0.1875 0.40625 +vt 0.125 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.40625 +vt 0.125 0.40625 +vt 0.125 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.65625 +vt 0.125 0.65625 +vt 0.1875 0.65625 +vt 0.125 0.65625 +vt 0.125 0.59375 +vt 0.1875 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o leg1 +v 0 0.75 0.125 +v 0 0.75 -0.125 +v 0 0 0.125 +v 0 0 -0.125 +v -0.25 0.75 -0.125 +v -0.25 0.75 0.125 +v -0.25 0 -0.125 +v -0.25 0 0.125 +vt 0.125 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.40625 +vt 0.125 0.40625 +vt 0.1875 0.59375 +vt 0.125 0.59375 +vt 0.125 0.40625 +vt 0.1875 0.40625 +vt 0.25 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.40625 +vt 0.25 0.40625 +vt 0.0625 0.59375 +vt 0 0.59375 +vt 0 0.40625 +vt 0.0625 0.40625 +vt 0.0625 0.59375 +vt 0.125 0.59375 +vt 0.125 0.65625 +vt 0.0625 0.65625 +vt 0.125 0.65625 +vt 0.1875 0.65625 +vt 0.1875 0.59375 +vt 0.125 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b4465c9b-59e0-9882-a652-f0428980cb6e +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/warden.obj b/renderer/viewer/three/entity/models/warden.obj new file mode 100644 index 00000000..da0b2656 --- /dev/null +++ b/renderer/viewer/three/entity/models/warden.obj @@ -0,0 +1,463 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o body +v 0.5625 2.125 0.4375 +v 0.5625 2.125 -0.25 +v 0.5625 0.8125 0.4375 +v 0.5625 0.8125 -0.25 +v -0.5625 2.125 -0.25 +v -0.5625 2.125 0.4375 +v -0.5625 0.8125 -0.25 +v -0.5625 0.8125 0.4375 +vt 0.0859375 0.9140625 +vt 0.2265625 0.9140625 +vt 0.2265625 0.75 +vt 0.0859375 0.75 +vt 0 0.9140625 +vt 0.0859375 0.9140625 +vt 0.0859375 0.75 +vt 0 0.75 +vt 0.3125 0.9140625 +vt 0.453125 0.9140625 +vt 0.453125 0.75 +vt 0.3125 0.75 +vt 0.2265625 0.9140625 +vt 0.3125 0.9140625 +vt 0.3125 0.75 +vt 0.2265625 0.75 +vt 0.2265625 0.9140625 +vt 0.0859375 0.9140625 +vt 0.0859375 1 +vt 0.2265625 1 +vt 0.3671875 1 +vt 0.2265625 1 +vt 0.2265625 0.9140625 +vt 0.3671875 0.9140625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o right_ribcage +v 0.5625 2.125 -0.25625 +v 0.5625 2.125 -0.25625 +v 0.5625 0.8125 -0.25625 +v 0.5625 0.8125 -0.25625 +v 0 2.125 -0.25625 +v 0 2.125 -0.25625 +v 0 0.8125 -0.25625 +v 0 0.8125 -0.25625 +vt 0.703125 0.9140625 +vt 0.7734375 0.9140625 +vt 0.7734375 0.75 +vt 0.703125 0.75 +vt 0.703125 0.9140625 +vt 0.703125 0.9140625 +vt 0.703125 0.75 +vt 0.703125 0.75 +vt 0.7734375 0.9140625 +vt 0.84375 0.9140625 +vt 0.84375 0.75 +vt 0.7734375 0.75 +vt 0.7734375 0.9140625 +vt 0.7734375 0.9140625 +vt 0.7734375 0.75 +vt 0.7734375 0.75 +vt 0.7734375 0.9140625 +vt 0.703125 0.9140625 +vt 0.703125 0.9140625 +vt 0.7734375 0.9140625 +vt 0.84375 0.9140625 +vt 0.7734375 0.9140625 +vt 0.7734375 0.9140625 +vt 0.84375 0.9140625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o left_ribcage +v 0 2.125 -0.25625 +v 0 2.125 -0.25625 +v 0 0.8125 -0.25625 +v 0 0.8125 -0.25625 +v -0.5625 2.125 -0.25625 +v -0.5625 2.125 -0.25625 +v -0.5625 0.8125 -0.25625 +v -0.5625 0.8125 -0.25625 +vt 0.7734375 0.9140625 +vt 0.703125 0.9140625 +vt 0.703125 0.75 +vt 0.7734375 0.75 +vt 0.7734375 0.9140625 +vt 0.7734375 0.9140625 +vt 0.7734375 0.75 +vt 0.7734375 0.75 +vt 0.84375 0.9140625 +vt 0.7734375 0.9140625 +vt 0.7734375 0.75 +vt 0.84375 0.75 +vt 0.703125 0.9140625 +vt 0.703125 0.9140625 +vt 0.703125 0.75 +vt 0.703125 0.75 +vt 0.703125 0.9140625 +vt 0.7734375 0.9140625 +vt 0.7734375 0.9140625 +vt 0.703125 0.9140625 +vt 0.7734375 0.9140625 +vt 0.84375 0.9140625 +vt 0.84375 0.9140625 +vt 0.7734375 0.9140625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.5 3.125 0.3125 +v 0.5 3.125 -0.3125 +v 0.5 2.125 0.3125 +v 0.5 2.125 -0.3125 +v -0.5 3.125 -0.3125 +v -0.5 3.125 0.3125 +v -0.5 2.125 -0.3125 +v -0.5 2.125 0.3125 +vt 0.078125 0.671875 +vt 0.203125 0.671875 +vt 0.203125 0.546875 +vt 0.078125 0.546875 +vt 0 0.671875 +vt 0.078125 0.671875 +vt 0.078125 0.546875 +vt 0 0.546875 +vt 0.28125 0.671875 +vt 0.40625 0.671875 +vt 0.40625 0.546875 +vt 0.28125 0.546875 +vt 0.203125 0.671875 +vt 0.28125 0.671875 +vt 0.28125 0.546875 +vt 0.203125 0.546875 +vt 0.203125 0.671875 +vt 0.078125 0.671875 +vt 0.078125 0.75 +vt 0.203125 0.75 +vt 0.328125 0.75 +vt 0.203125 0.75 +vt 0.203125 0.671875 +vt 0.328125 0.671875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o right_tendril +v 1.5 3.6875 0 +v 1.5 3.6875 0 +v 1.5 2.6875 0 +v 1.5 2.6875 0 +v 0.5 3.6875 0 +v 0.5 3.6875 0 +v 0.5 2.6875 0 +v 0.5 2.6875 0 +vt 0.40625 0.75 +vt 0.53125 0.75 +vt 0.53125 0.625 +vt 0.40625 0.625 +vt 0.40625 0.75 +vt 0.40625 0.75 +vt 0.40625 0.625 +vt 0.40625 0.625 +vt 0.53125 0.75 +vt 0.65625 0.75 +vt 0.65625 0.625 +vt 0.53125 0.625 +vt 0.53125 0.75 +vt 0.53125 0.75 +vt 0.53125 0.625 +vt 0.53125 0.625 +vt 0.53125 0.75 +vt 0.40625 0.75 +vt 0.40625 0.75 +vt 0.53125 0.75 +vt 0.65625 0.75 +vt 0.53125 0.75 +vt 0.53125 0.75 +vt 0.65625 0.75 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o left_tendril +v -0.5 3.6875 0 +v -0.5 3.6875 0 +v -0.5 2.6875 0 +v -0.5 2.6875 0 +v -1.5 3.6875 0 +v -1.5 3.6875 0 +v -1.5 2.6875 0 +v -1.5 2.6875 0 +vt 0.453125 1 +vt 0.578125 1 +vt 0.578125 0.875 +vt 0.453125 0.875 +vt 0.453125 1 +vt 0.453125 1 +vt 0.453125 0.875 +vt 0.453125 0.875 +vt 0.578125 1 +vt 0.703125 1 +vt 0.703125 0.875 +vt 0.578125 0.875 +vt 0.578125 1 +vt 0.578125 1 +vt 0.578125 0.875 +vt 0.578125 0.875 +vt 0.578125 1 +vt 0.453125 1 +vt 0.453125 1 +vt 0.578125 1 +vt 0.703125 1 +vt 0.578125 1 +vt 0.578125 1 +vt 0.703125 1 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o right_arm +v 1.0625 2.125 0.3125 +v 1.0625 2.125 -0.1875 +v 1.0625 0.375 0.3125 +v 1.0625 0.375 -0.1875 +v 0.5625 2.125 -0.1875 +v 0.5625 2.125 0.3125 +v 0.5625 0.375 -0.1875 +v 0.5625 0.375 0.3125 +vt 0.40625 0.546875 +vt 0.46875 0.546875 +vt 0.46875 0.328125 +vt 0.40625 0.328125 +vt 0.34375 0.546875 +vt 0.40625 0.546875 +vt 0.40625 0.328125 +vt 0.34375 0.328125 +vt 0.53125 0.546875 +vt 0.59375 0.546875 +vt 0.59375 0.328125 +vt 0.53125 0.328125 +vt 0.46875 0.546875 +vt 0.53125 0.546875 +vt 0.53125 0.328125 +vt 0.46875 0.328125 +vt 0.46875 0.546875 +vt 0.40625 0.546875 +vt 0.40625 0.609375 +vt 0.46875 0.609375 +vt 0.53125 0.609375 +vt 0.46875 0.609375 +vt 0.46875 0.546875 +vt 0.53125 0.546875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o left_arm +v -0.5625 2.125 0.3125 +v -0.5625 2.125 -0.1875 +v -0.5625 0.375 0.3125 +v -0.5625 0.375 -0.1875 +v -1.0625 2.125 -0.1875 +v -1.0625 2.125 0.3125 +v -1.0625 0.375 -0.1875 +v -1.0625 0.375 0.3125 +vt 0.0625 0.484375 +vt 0.125 0.484375 +vt 0.125 0.265625 +vt 0.0625 0.265625 +vt 0 0.484375 +vt 0.0625 0.484375 +vt 0.0625 0.265625 +vt 0 0.265625 +vt 0.1875 0.484375 +vt 0.25 0.484375 +vt 0.25 0.265625 +vt 0.1875 0.265625 +vt 0.125 0.484375 +vt 0.1875 0.484375 +vt 0.1875 0.265625 +vt 0.125 0.265625 +vt 0.125 0.484375 +vt 0.0625 0.484375 +vt 0.0625 0.546875 +vt 0.125 0.546875 +vt 0.1875 0.546875 +vt 0.125 0.546875 +vt 0.125 0.484375 +vt 0.1875 0.484375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o right_leg +v 0.5625 0.8125 0.1875 +v 0.5625 0.8125 -0.1875 +v 0.5625 0 0.1875 +v 0.5625 0 -0.1875 +v 0.1875 0.8125 -0.1875 +v 0.1875 0.8125 0.1875 +v 0.1875 0 -0.1875 +v 0.1875 0 0.1875 +vt 0.640625 0.578125 +vt 0.6875 0.578125 +vt 0.6875 0.4765625 +vt 0.640625 0.4765625 +vt 0.59375 0.578125 +vt 0.640625 0.578125 +vt 0.640625 0.4765625 +vt 0.59375 0.4765625 +vt 0.734375 0.578125 +vt 0.78125 0.578125 +vt 0.78125 0.4765625 +vt 0.734375 0.4765625 +vt 0.6875 0.578125 +vt 0.734375 0.578125 +vt 0.734375 0.4765625 +vt 0.6875 0.4765625 +vt 0.6875 0.578125 +vt 0.640625 0.578125 +vt 0.640625 0.625 +vt 0.6875 0.625 +vt 0.734375 0.625 +vt 0.6875 0.625 +vt 0.6875 0.578125 +vt 0.734375 0.578125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o left_leg +v -0.1875 0.8125 0.1875 +v -0.1875 0.8125 -0.1875 +v -0.1875 0 0.1875 +v -0.1875 0 -0.1875 +v -0.5625 0.8125 -0.1875 +v -0.5625 0.8125 0.1875 +v -0.5625 0 -0.1875 +v -0.5625 0 0.1875 +vt 0.640625 0.359375 +vt 0.6875 0.359375 +vt 0.6875 0.2578125 +vt 0.640625 0.2578125 +vt 0.59375 0.359375 +vt 0.640625 0.359375 +vt 0.640625 0.2578125 +vt 0.59375 0.2578125 +vt 0.734375 0.359375 +vt 0.78125 0.359375 +vt 0.78125 0.2578125 +vt 0.734375 0.2578125 +vt 0.6875 0.359375 +vt 0.734375 0.359375 +vt 0.734375 0.2578125 +vt 0.6875 0.2578125 +vt 0.6875 0.359375 +vt 0.640625 0.359375 +vt 0.640625 0.40625 +vt 0.6875 0.40625 +vt 0.734375 0.40625 +vt 0.6875 0.40625 +vt 0.6875 0.359375 +vt 0.734375 0.359375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_b8aa60f9-5a7d-baf1-aee9-852f731e91b8 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/witch.obj b/renderer/viewer/three/entity/models/witch.obj new file mode 100644 index 00000000..275da643 --- /dev/null +++ b/renderer/viewer/three/entity/models/witch.obj @@ -0,0 +1,647 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o head +v 0.25 2.125 0.25 +v 0.25 2.125 -0.25 +v 0.25 1.5 0.25 +v 0.25 1.5 -0.25 +v -0.25 2.125 -0.25 +v -0.25 2.125 0.25 +v -0.25 1.5 -0.25 +v -0.25 1.5 0.25 +vt 0.125 0.9375 +vt 0.25 0.9375 +vt 0.25 0.859375 +vt 0.125 0.859375 +vt 0 0.9375 +vt 0.125 0.9375 +vt 0.125 0.859375 +vt 0 0.859375 +vt 0.375 0.9375 +vt 0.5 0.9375 +vt 0.5 0.859375 +vt 0.375 0.859375 +vt 0.25 0.9375 +vt 0.375 0.9375 +vt 0.375 0.859375 +vt 0.25 0.859375 +vt 0.25 0.9375 +vt 0.125 0.9375 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.9375 +vt 0.375 0.9375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o nose +v 0.0625 1.6875 -0.25 +v 0.0625 1.6875 -0.375 +v 0.0625 1.4375 -0.25 +v 0.0625 1.4375 -0.375 +v -0.0625 1.6875 -0.375 +v -0.0625 1.6875 -0.25 +v -0.0625 1.4375 -0.375 +v -0.0625 1.4375 -0.25 +vt 0.40625 0.984375 +vt 0.4375 0.984375 +vt 0.4375 0.953125 +vt 0.40625 0.953125 +vt 0.375 0.984375 +vt 0.40625 0.984375 +vt 0.40625 0.953125 +vt 0.375 0.953125 +vt 0.46875 0.984375 +vt 0.5 0.984375 +vt 0.5 0.953125 +vt 0.46875 0.953125 +vt 0.4375 0.984375 +vt 0.46875 0.984375 +vt 0.46875 0.953125 +vt 0.4375 0.953125 +vt 0.4375 0.984375 +vt 0.40625 0.984375 +vt 0.40625 1 +vt 0.4375 1 +vt 0.46875 1 +vt 0.4375 1 +vt 0.4375 0.984375 +vt 0.46875 0.984375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o nose +v -0.015625 1.609375 -0.375 +v -0.015625 1.609375 -0.40625 +v -0.015625 1.578125 -0.375 +v -0.015625 1.578125 -0.40625 +v -0.046875 1.609375 -0.40625 +v -0.046875 1.609375 -0.375 +v -0.046875 1.578125 -0.40625 +v -0.046875 1.578125 -0.375 +vt 0.015625 0.9921875 +vt 0.03125 0.9921875 +vt 0.03125 0.984375 +vt 0.015625 0.984375 +vt 0 0.9921875 +vt 0.015625 0.9921875 +vt 0.015625 0.984375 +vt 0 0.984375 +vt 0.046875 0.9921875 +vt 0.0625 0.9921875 +vt 0.0625 0.984375 +vt 0.046875 0.984375 +vt 0.03125 0.9921875 +vt 0.046875 0.9921875 +vt 0.046875 0.984375 +vt 0.03125 0.984375 +vt 0.03125 0.9921875 +vt 0.015625 0.9921875 +vt 0.015625 1 +vt 0.03125 1 +vt 0.046875 1 +vt 0.03125 1 +vt 0.03125 0.9921875 +vt 0.046875 0.9921875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o hat +v 0.3125 2.128125 0.3125 +v 0.3125 2.128125 -0.3125 +v 0.3125 2.003125 0.3125 +v 0.3125 2.003125 -0.3125 +v -0.3125 2.128125 -0.3125 +v -0.3125 2.128125 0.3125 +v -0.3125 2.003125 -0.3125 +v -0.3125 2.003125 0.3125 +vt 0.15625 0.421875 +vt 0.3125 0.421875 +vt 0.3125 0.40625 +vt 0.15625 0.40625 +vt 0 0.421875 +vt 0.15625 0.421875 +vt 0.15625 0.40625 +vt 0 0.40625 +vt 0.46875 0.421875 +vt 0.625 0.421875 +vt 0.625 0.40625 +vt 0.46875 0.40625 +vt 0.3125 0.421875 +vt 0.46875 0.421875 +vt 0.46875 0.40625 +vt 0.3125 0.40625 +vt 0.3125 0.421875 +vt 0.15625 0.421875 +vt 0.15625 0.5 +vt 0.3125 0.5 +vt 0.46875 0.5 +vt 0.3125 0.5 +vt 0.3125 0.421875 +vt 0.46875 0.421875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o hat2 +v 0.19420316941970583 2.3448018130595334 0.26781917680283374 +v 0.19360379633542446 2.367690947692347 -0.16908124465229235 +v 0.20073843784720224 2.0952299807209473 0.2547351877420978 +v 0.20013906476292087 2.118119115353761 -0.18216523371302834 +v -0.24374628334138193 2.3562385328076525 -0.16908124465229235 +v -0.24314691025710045 2.333349398174839 0.26781917680283374 +v -0.2372110149138854 2.1066667004690665 -0.18216523371302834 +v -0.23661164182960404 2.083777565836253 0.2547351877420978 +vt 0.109375 0.3515625 +vt 0.21875 0.3515625 +vt 0.21875 0.3203125 +vt 0.109375 0.3203125 +vt 0 0.3515625 +vt 0.109375 0.3515625 +vt 0.109375 0.3203125 +vt 0 0.3203125 +vt 0.328125 0.3515625 +vt 0.4375 0.3515625 +vt 0.4375 0.3203125 +vt 0.328125 0.3203125 +vt 0.21875 0.3515625 +vt 0.328125 0.3515625 +vt 0.328125 0.3203125 +vt 0.21875 0.3203125 +vt 0.21875 0.3515625 +vt 0.109375 0.3515625 +vt 0.109375 0.40625 +vt 0.21875 0.40625 +vt 0.328125 0.40625 +vt 0.21875 0.40625 +vt 0.21875 0.3515625 +vt 0.328125 0.3515625 +vn -0.0013699956212146517 0.052318022017859046 -0.998629534754574 +vn 0.9996573249755573 0.026176948307873146 -2.168404344971009e-19 +vn 0.0013699956212146517 -0.052318022017859046 0.998629534754574 +vn -0.9996573249755573 -0.026176948307873146 2.168404344971009e-19 +vn -0.02614107370998589 0.9982873293543426 0.05233595624294382 +vn 0.02614107370998589 -0.9982873293543426 -0.05233595624294382 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o hat3 +v 0.06205916642018039 2.5318108508382715 0.25085017875105275 +v 0.059669177777630145 2.5708345128476795 0.003926219286475963 +v 0.08152178038959057 2.2856541582304613 0.21175939541454591 +v 0.07913179174704033 2.3246778202398692 -0.03516456405003088 +v -0.1895606250384982 2.5512376639234398 0.0032414562075101516 +v -0.187170636395948 2.5122140019140318 0.25016541567208694 +v -0.17009801106908795 2.3050809713156295 -0.03584932712899669 +v -0.1677080224265377 2.2660573093062215 0.2110746323355801 +vt 0.0625 0.2890625 +vt 0.125 0.2890625 +vt 0.125 0.2578125 +vt 0.0625 0.2578125 +vt 0 0.2890625 +vt 0.0625 0.2890625 +vt 0.0625 0.2578125 +vt 0 0.2578125 +vt 0.1875 0.2890625 +vt 0.25 0.2890625 +vt 0.25 0.2578125 +vt 0.1875 0.2578125 +vt 0.125 0.2890625 +vt 0.1875 0.2890625 +vt 0.1875 0.2578125 +vt 0.125 0.2578125 +vt 0.125 0.2890625 +vt 0.0625 0.2890625 +vt 0.0625 0.3203125 +vt 0.125 0.3203125 +vt 0.1875 0.3203125 +vt 0.125 0.3203125 +vt 0.125 0.2890625 +vt 0.1875 0.2890625 +vn -0.009559954570200835 0.156094648037632 -0.9876958378583074 +vn 0.9969192112645133 0.07838739569696003 0.002739052315863333 +vn 0.009559954570200835 -0.156094648037632 0.9876958378583074 +vn -0.9969192112645133 -0.07838739569696003 -0.002739052315863333 +vn -0.07785045587764094 0.9846267704312412 0.1563631333460272 +vn 0.07785045587764094 -0.9846267704312412 -0.1563631333460272 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o hat4 +v -0.06724991963009147 2.6297151428282426 0.2756843667494786 +v -0.07166686964939262 2.6629564553960905 0.18813684713130974 +v -0.03980089941132947 2.486376747492985 0.21987470619018534 +v -0.04421784943063062 2.519618060060833 0.1323271865720166 +v -0.16385315668047867 2.645999001844819 0.18634918036183534 +v -0.15943620666117758 2.6127576892769713 0.2738966999800041 +v -0.13640413646171662 2.502660606509562 0.1305395198025422 +v -0.13198718644241553 2.469419293941714 0.21808703942071106 +vt 0.015625 0.25 +vt 0.03125 0.25 +vt 0.03125 0.234375 +vt 0.015625 0.234375 +vt 0 0.25 +vt 0.015625 0.25 +vt 0.015625 0.234375 +vt 0 0.234375 +vt 0.046875 0.25 +vt 0.0625 0.25 +vt 0.0625 0.234375 +vt 0.046875 0.234375 +vt 0.03125 0.25 +vt 0.046875 0.25 +vt 0.046875 0.234375 +vt 0.03125 0.234375 +vt 0.03125 0.25 +vt 0.015625 0.25 +vt 0.015625 0.2578125 +vt 0.03125 0.2578125 +vt 0.046875 0.2578125 +vt 0.03125 0.2578125 +vt 0.03125 0.25 +vt 0.046875 0.25 +vn -0.04711413353921201 0.3545740007237079 -0.9338402092604674 +vn 0.9833203949982517 0.18087950454689375 0.019068445541060658 +vn 0.04711413353921201 -0.3545740007237079 0.9338402092604674 +vn -0.9833203949982517 -0.18087950454689375 -0.019068445541060658 +vn -0.17567372940007692 0.9173657301456462 0.3571818275794757 +vn 0.17567372940007692 -0.9173657301456462 -0.3571818275794757 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o body +v 0.25 1.5 0.1875 +v 0.25 1.5 -0.1875 +v 0.25 0.75 0.1875 +v 0.25 0.75 -0.1875 +v -0.25 1.5 -0.1875 +v -0.25 1.5 0.1875 +v -0.25 0.75 -0.1875 +v -0.25 0.75 0.1875 +vt 0.34375 0.796875 +vt 0.46875 0.796875 +vt 0.46875 0.703125 +vt 0.34375 0.703125 +vt 0.25 0.796875 +vt 0.34375 0.796875 +vt 0.34375 0.703125 +vt 0.25 0.703125 +vt 0.5625 0.796875 +vt 0.6875 0.796875 +vt 0.6875 0.703125 +vt 0.5625 0.703125 +vt 0.46875 0.796875 +vt 0.5625 0.796875 +vt 0.5625 0.703125 +vt 0.46875 0.703125 +vt 0.46875 0.796875 +vt 0.34375 0.796875 +vt 0.34375 0.84375 +vt 0.46875 0.84375 +vt 0.59375 0.84375 +vt 0.46875 0.84375 +vt 0.46875 0.796875 +vt 0.59375 0.796875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o body +v 0.28125 1.53125 0.21875 +v 0.28125 1.53125 -0.21875 +v 0.28125 0.34375 0.21875 +v 0.28125 0.34375 -0.21875 +v -0.28125 1.53125 -0.21875 +v -0.28125 1.53125 0.21875 +v -0.28125 0.34375 -0.21875 +v -0.28125 0.34375 0.21875 +vt 0.09375 0.65625 +vt 0.21875 0.65625 +vt 0.21875 0.515625 +vt 0.09375 0.515625 +vt 0 0.65625 +vt 0.09375 0.65625 +vt 0.09375 0.515625 +vt 0 0.515625 +vt 0.3125 0.65625 +vt 0.4375 0.65625 +vt 0.4375 0.515625 +vt 0.3125 0.515625 +vt 0.21875 0.65625 +vt 0.3125 0.65625 +vt 0.3125 0.515625 +vt 0.21875 0.515625 +vt 0.21875 0.65625 +vt 0.09375 0.65625 +vt 0.09375 0.703125 +vt 0.21875 0.703125 +vt 0.34375 0.703125 +vt 0.21875 0.703125 +vt 0.21875 0.65625 +vt 0.34375 0.65625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o arms +v 0.25 1.198223304703363 0 +v 0.25 1.375 -0.17677669529663698 +v 0.25 1.0214466094067263 -0.17677669529663698 +v 0.25 1.1982233047033632 -0.35355339059327373 +v -0.25 1.375 -0.17677669529663698 +v -0.25 1.198223304703363 0 +v -0.25 1.1982233047033632 -0.35355339059327373 +v -0.25 1.0214466094067263 -0.17677669529663698 +vt 0.6875 0.671875 +vt 0.8125 0.671875 +vt 0.8125 0.640625 +vt 0.6875 0.640625 +vt 0.625 0.671875 +vt 0.6875 0.671875 +vt 0.6875 0.640625 +vt 0.625 0.640625 +vt 0.875 0.671875 +vt 1 0.671875 +vt 1 0.640625 +vt 0.875 0.640625 +vt 0.8125 0.671875 +vt 0.875 0.671875 +vt 0.875 0.640625 +vt 0.8125 0.640625 +vt 0.8125 0.671875 +vt 0.6875 0.671875 +vt 0.6875 0.703125 +vt 0.8125 0.703125 +vt 0.9375 0.703125 +vt 0.8125 0.703125 +vt 0.8125 0.671875 +vt 0.9375 0.671875 +vn 0 0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 0.7071067811865476 +vn 0 -0.7071067811865475 -0.7071067811865476 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o arms +v 0.5 1.375 0.17677669529663698 +v 0.5 1.551776695296637 0 +v 0.5 1.0214466094067263 -0.17677669529663698 +v 0.5 1.1982233047033632 -0.35355339059327373 +v 0.25 1.551776695296637 0 +v 0.25 1.375 0.17677669529663698 +v 0.25 1.1982233047033632 -0.35355339059327373 +v 0.25 1.0214466094067263 -0.17677669529663698 +vt 0.75 0.796875 +vt 0.8125 0.796875 +vt 0.8125 0.734375 +vt 0.75 0.734375 +vt 0.6875 0.796875 +vt 0.75 0.796875 +vt 0.75 0.734375 +vt 0.6875 0.734375 +vt 0.875 0.796875 +vt 0.9375 0.796875 +vt 0.9375 0.734375 +vt 0.875 0.734375 +vt 0.8125 0.796875 +vt 0.875 0.796875 +vt 0.875 0.734375 +vt 0.8125 0.734375 +vt 0.8125 0.796875 +vt 0.75 0.796875 +vt 0.75 0.828125 +vt 0.8125 0.828125 +vt 0.875 0.828125 +vt 0.8125 0.828125 +vt 0.8125 0.796875 +vt 0.875 0.796875 +vn 0 0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 0.7071067811865476 +vn 0 -0.7071067811865475 -0.7071067811865476 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 +o arms +v -0.25 1.375 0.17677669529663698 +v -0.25 1.551776695296637 0 +v -0.25 1.0214466094067263 -0.17677669529663698 +v -0.25 1.1982233047033632 -0.35355339059327373 +v -0.5 1.551776695296637 0 +v -0.5 1.375 0.17677669529663698 +v -0.5 1.1982233047033632 -0.35355339059327373 +v -0.5 1.0214466094067263 -0.17677669529663698 +vt 0.75 0.796875 +vt 0.8125 0.796875 +vt 0.8125 0.734375 +vt 0.75 0.734375 +vt 0.6875 0.796875 +vt 0.75 0.796875 +vt 0.75 0.734375 +vt 0.6875 0.734375 +vt 0.875 0.796875 +vt 0.9375 0.796875 +vt 0.9375 0.734375 +vt 0.875 0.734375 +vt 0.8125 0.796875 +vt 0.875 0.796875 +vt 0.875 0.734375 +vt 0.8125 0.734375 +vt 0.8125 0.796875 +vt 0.75 0.796875 +vt 0.75 0.828125 +vt 0.8125 0.828125 +vt 0.875 0.828125 +vt 0.8125 0.828125 +vt 0.8125 0.796875 +vt 0.875 0.796875 +vn 0 0.7071067811865476 -0.7071067811865475 +vn 1 0 0 +vn 0 -0.7071067811865476 0.7071067811865475 +vn -1 0 0 +vn 0 0.7071067811865475 0.7071067811865476 +vn 0 -0.7071067811865475 -0.7071067811865476 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 92/268/67 95/267/67 93/266/67 90/265/67 +f 91/272/68 92/271/68 90/270/68 89/269/68 +f 96/276/69 91/275/69 89/274/69 94/273/69 +f 95/280/70 96/279/70 94/278/70 93/277/70 +f 94/284/71 89/283/71 90/282/71 93/281/71 +f 95/288/72 92/287/72 91/286/72 96/285/72 +o leg0 +v 0.25 0.75 0.125 +v 0.25 0.75 -0.125 +v 0.25 0 0.125 +v 0.25 0 -0.125 +v 0 0.75 -0.125 +v 0 0.75 0.125 +v 0 0 -0.125 +v 0 0 0.125 +vt 0.0625 0.796875 +vt 0.125 0.796875 +vt 0.125 0.703125 +vt 0.0625 0.703125 +vt 0 0.796875 +vt 0.0625 0.796875 +vt 0.0625 0.703125 +vt 0 0.703125 +vt 0.1875 0.796875 +vt 0.25 0.796875 +vt 0.25 0.703125 +vt 0.1875 0.703125 +vt 0.125 0.796875 +vt 0.1875 0.796875 +vt 0.1875 0.703125 +vt 0.125 0.703125 +vt 0.125 0.796875 +vt 0.0625 0.796875 +vt 0.0625 0.828125 +vt 0.125 0.828125 +vt 0.1875 0.828125 +vt 0.125 0.828125 +vt 0.125 0.796875 +vt 0.1875 0.796875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 100/292/73 103/291/73 101/290/73 98/289/73 +f 99/296/74 100/295/74 98/294/74 97/293/74 +f 104/300/75 99/299/75 97/298/75 102/297/75 +f 103/304/76 104/303/76 102/302/76 101/301/76 +f 102/308/77 97/307/77 98/306/77 101/305/77 +f 103/312/78 100/311/78 99/310/78 104/309/78 +o leg1 +v 0 0.75 0.125 +v 0 0.75 -0.125 +v 0 0 0.125 +v 0 0 -0.125 +v -0.25 0.75 -0.125 +v -0.25 0.75 0.125 +v -0.25 0 -0.125 +v -0.25 0 0.125 +vt 0.0625 0.796875 +vt 0.125 0.796875 +vt 0.125 0.703125 +vt 0.0625 0.703125 +vt 0 0.796875 +vt 0.0625 0.796875 +vt 0.0625 0.703125 +vt 0 0.703125 +vt 0.1875 0.796875 +vt 0.25 0.796875 +vt 0.25 0.703125 +vt 0.1875 0.703125 +vt 0.125 0.796875 +vt 0.1875 0.796875 +vt 0.1875 0.703125 +vt 0.125 0.703125 +vt 0.125 0.796875 +vt 0.0625 0.796875 +vt 0.0625 0.828125 +vt 0.125 0.828125 +vt 0.1875 0.828125 +vt 0.125 0.828125 +vt 0.125 0.796875 +vt 0.1875 0.796875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_5cc249a3-cb80-69af-8be3-aeafeadc66a1 +f 108/316/79 111/315/79 109/314/79 106/313/79 +f 107/320/80 108/319/80 106/318/80 105/317/80 +f 112/324/81 107/323/81 105/322/81 110/321/81 +f 111/328/82 112/327/82 110/326/82 109/325/82 +f 110/332/83 105/331/83 106/330/83 109/329/83 +f 111/336/84 108/335/84 107/334/84 112/333/84 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/wolf.obj b/renderer/viewer/three/entity/models/wolf.obj new file mode 100644 index 00000000..086cda39 --- /dev/null +++ b/renderer/viewer/three/entity/models/wolf.obj @@ -0,0 +1,509 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o head +v 0.25 0.84375 -0.3125 +v 0.25 0.84375 -0.5625 +v 0.25 0.46875 -0.3125 +v 0.25 0.46875 -0.5625 +v -0.125 0.84375 -0.5625 +v -0.125 0.84375 -0.3125 +v -0.125 0.46875 -0.5625 +v -0.125 0.46875 -0.3125 +vt 0.0625 0.875 +vt 0.15625 0.875 +vt 0.15625 0.6875 +vt 0.0625 0.6875 +vt 0 0.875 +vt 0.0625 0.875 +vt 0.0625 0.6875 +vt 0 0.6875 +vt 0.21875 0.875 +vt 0.3125 0.875 +vt 0.3125 0.6875 +vt 0.21875 0.6875 +vt 0.15625 0.875 +vt 0.21875 0.875 +vt 0.21875 0.6875 +vt 0.15625 0.6875 +vt 0.15625 0.875 +vt 0.0625 0.875 +vt 0.0625 1 +vt 0.15625 1 +vt 0.25 1 +vt 0.15625 1 +vt 0.15625 0.875 +vt 0.25 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o head +v 0.25 0.96875 -0.375 +v 0.25 0.96875 -0.4375 +v 0.25 0.84375 -0.375 +v 0.25 0.84375 -0.4375 +v 0.125 0.96875 -0.4375 +v 0.125 0.96875 -0.375 +v 0.125 0.84375 -0.4375 +v 0.125 0.84375 -0.375 +vt 0.265625 0.53125 +vt 0.296875 0.53125 +vt 0.296875 0.46875 +vt 0.265625 0.46875 +vt 0.25 0.53125 +vt 0.265625 0.53125 +vt 0.265625 0.46875 +vt 0.25 0.46875 +vt 0.3125 0.53125 +vt 0.34375 0.53125 +vt 0.34375 0.46875 +vt 0.3125 0.46875 +vt 0.296875 0.53125 +vt 0.3125 0.53125 +vt 0.3125 0.46875 +vt 0.296875 0.46875 +vt 0.296875 0.53125 +vt 0.265625 0.53125 +vt 0.265625 0.5625 +vt 0.296875 0.5625 +vt 0.328125 0.5625 +vt 0.296875 0.5625 +vt 0.296875 0.53125 +vt 0.328125 0.53125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o head +v 0 0.96875 -0.375 +v 0 0.96875 -0.4375 +v 0 0.84375 -0.375 +v 0 0.84375 -0.4375 +v -0.125 0.96875 -0.4375 +v -0.125 0.96875 -0.375 +v -0.125 0.84375 -0.4375 +v -0.125 0.84375 -0.375 +vt 0.265625 0.53125 +vt 0.296875 0.53125 +vt 0.296875 0.46875 +vt 0.265625 0.46875 +vt 0.25 0.53125 +vt 0.265625 0.53125 +vt 0.265625 0.46875 +vt 0.25 0.46875 +vt 0.3125 0.53125 +vt 0.34375 0.53125 +vt 0.34375 0.46875 +vt 0.3125 0.46875 +vt 0.296875 0.53125 +vt 0.3125 0.53125 +vt 0.3125 0.46875 +vt 0.296875 0.46875 +vt 0.296875 0.53125 +vt 0.265625 0.53125 +vt 0.265625 0.5625 +vt 0.296875 0.5625 +vt 0.328125 0.5625 +vt 0.296875 0.5625 +vt 0.296875 0.53125 +vt 0.328125 0.53125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o head +v 0.15625 0.6572268750000001 -0.5 +v 0.15625 0.6572268750000001 -0.75 +v 0.15625 0.469726875 -0.5 +v 0.15625 0.469726875 -0.75 +v -0.03125 0.6572268750000001 -0.75 +v -0.03125 0.6572268750000001 -0.5 +v -0.03125 0.469726875 -0.75 +v -0.03125 0.469726875 -0.5 +vt 0.0625 0.5625 +vt 0.109375 0.5625 +vt 0.109375 0.46875 +vt 0.0625 0.46875 +vt 0 0.5625 +vt 0.0625 0.5625 +vt 0.0625 0.46875 +vt 0 0.46875 +vt 0.171875 0.5625 +vt 0.21875 0.5625 +vt 0.21875 0.46875 +vt 0.171875 0.46875 +vt 0.109375 0.5625 +vt 0.171875 0.5625 +vt 0.171875 0.46875 +vt 0.109375 0.46875 +vt 0.109375 0.5625 +vt 0.0625 0.5625 +vt 0.0625 0.6875 +vt 0.109375 0.6875 +vt 0.15625 0.6875 +vt 0.109375 0.6875 +vt 0.109375 0.5625 +vt 0.15625 0.5625 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o body +v 0.25 0.8125 1.1102230246251565e-16 +v 0.25 0.4375 0 +v 0.25 0.8125 0.5625 +v 0.25 0.4375 0.5625 +v -0.125 0.4375 0 +v -0.125 0.8125 1.1102230246251565e-16 +v -0.125 0.4375 0.5625 +v -0.125 0.8125 0.5625 +vt 0.375 0.375 +vt 0.46875 0.375 +vt 0.46875 0.09375 +vt 0.375 0.09375 +vt 0.28125 0.375 +vt 0.375 0.375 +vt 0.375 0.09375 +vt 0.28125 0.09375 +vt 0.5625 0.375 +vt 0.65625 0.375 +vt 0.65625 0.09375 +vt 0.5625 0.09375 +vt 0.46875 0.375 +vt 0.5625 0.375 +vt 0.5625 0.09375 +vt 0.46875 0.09375 +vt 0.46875 0.375 +vt 0.375 0.375 +vt 0.375 0.5625 +vt 0.46875 0.5625 +vt 0.5625 0.5625 +vt 0.46875 0.5625 +vt 0.46875 0.375 +vt 0.5625 0.375 +vn 0 -1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 -1 +vn 0 -2.220446049250313e-16 1 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o upperBody +v 0.3125 0.4375 1.1102230246251565e-16 +v 0.3125 0.875 0 +v 0.3125 0.4374999999999999 -0.37499999999999994 +v 0.3125 0.875 -0.375 +v -0.1875 0.875 0 +v -0.1875 0.4375 1.1102230246251565e-16 +v -0.1875 0.875 -0.375 +v -0.1875 0.4374999999999999 -0.37499999999999994 +vt 0.4375 0.78125 +vt 0.5625 0.78125 +vt 0.5625 0.59375 +vt 0.4375 0.59375 +vt 0.328125 0.78125 +vt 0.4375 0.78125 +vt 0.4375 0.59375 +vt 0.328125 0.59375 +vt 0.671875 0.78125 +vt 0.796875 0.78125 +vt 0.796875 0.59375 +vt 0.671875 0.59375 +vt 0.5625 0.78125 +vt 0.671875 0.78125 +vt 0.671875 0.59375 +vt 0.5625 0.59375 +vt 0.5625 0.78125 +vt 0.4375 0.78125 +vt 0.4375 1 +vt 0.5625 1 +vt 0.6875 1 +vt 0.5625 1 +vt 0.5625 0.78125 +vt 0.6875 0.78125 +vn 0 1 -2.220446049250313e-16 +vn 1 0 0 +vn 0 -1 2.220446049250313e-16 +vn -1 0 0 +vn 0 2.220446049250313e-16 1 +vn 0 -2.220446049250313e-16 -1 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o leg0 +v 0.21875 0.5 0.5 +v 0.21875 0.5 0.375 +v 0.21875 0 0.5 +v 0.21875 0 0.375 +v 0.09375 0.5 0.375 +v 0.09375 0.5 0.5 +v 0.09375 0 0.375 +v 0.09375 0 0.5 +vt 0.03125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.125 +vt 0.03125 0.125 +vt 0 0.375 +vt 0.03125 0.375 +vt 0.03125 0.125 +vt 0 0.125 +vt 0.09375 0.375 +vt 0.125 0.375 +vt 0.125 0.125 +vt 0.09375 0.125 +vt 0.0625 0.375 +vt 0.09375 0.375 +vt 0.09375 0.125 +vt 0.0625 0.125 +vt 0.0625 0.375 +vt 0.03125 0.375 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.375 +vt 0.09375 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o leg1 +v 0.03125 0.5 0.5 +v 0.03125 0.5 0.375 +v 0.03125 0 0.5 +v 0.03125 0 0.375 +v -0.09375 0.5 0.375 +v -0.09375 0.5 0.5 +v -0.09375 0 0.375 +v -0.09375 0 0.5 +vt 0.03125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.125 +vt 0.03125 0.125 +vt 0 0.375 +vt 0.03125 0.375 +vt 0.03125 0.125 +vt 0 0.125 +vt 0.09375 0.375 +vt 0.125 0.375 +vt 0.125 0.125 +vt 0.09375 0.125 +vt 0.0625 0.375 +vt 0.09375 0.375 +vt 0.09375 0.125 +vt 0.0625 0.125 +vt 0.0625 0.375 +vt 0.03125 0.375 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.375 +vt 0.09375 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o leg2 +v 0.21875 0.5 -0.1875 +v 0.21875 0.5 -0.3125 +v 0.21875 0 -0.1875 +v 0.21875 0 -0.3125 +v 0.09375 0.5 -0.3125 +v 0.09375 0.5 -0.1875 +v 0.09375 0 -0.3125 +v 0.09375 0 -0.1875 +vt 0.03125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.125 +vt 0.03125 0.125 +vt 0 0.375 +vt 0.03125 0.375 +vt 0.03125 0.125 +vt 0 0.125 +vt 0.09375 0.375 +vt 0.125 0.375 +vt 0.125 0.125 +vt 0.09375 0.125 +vt 0.0625 0.375 +vt 0.09375 0.375 +vt 0.09375 0.125 +vt 0.0625 0.125 +vt 0.0625 0.375 +vt 0.03125 0.375 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.375 +vt 0.09375 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o leg3 +v 0.03125 0.5 -0.1875 +v 0.03125 0.5 -0.3125 +v 0.03125 0 -0.1875 +v 0.03125 0 -0.3125 +v -0.09375 0.5 -0.3125 +v -0.09375 0.5 -0.1875 +v -0.09375 0 -0.3125 +v -0.09375 0 -0.1875 +vt 0.03125 0.375 +vt 0.0625 0.375 +vt 0.0625 0.125 +vt 0.03125 0.125 +vt 0 0.375 +vt 0.03125 0.375 +vt 0.03125 0.125 +vt 0 0.125 +vt 0.09375 0.375 +vt 0.125 0.375 +vt 0.125 0.125 +vt 0.09375 0.125 +vt 0.0625 0.375 +vt 0.09375 0.375 +vt 0.09375 0.125 +vt 0.0625 0.125 +vt 0.0625 0.375 +vt 0.03125 0.375 +vt 0.03125 0.4375 +vt 0.0625 0.4375 +vt 0.09375 0.4375 +vt 0.0625 0.4375 +vt 0.0625 0.375 +vt 0.09375 0.375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 +o tail +v 0.125 0.8011970027680619 0.5358485272719404 +v 0.125 0.6988029972319381 0.46415147272805957 +v 0.125 0.5144087845925389 0.9454245494164362 +v 0.125 0.4120147790564149 0.8737274948725555 +v 0 0.6988029972319381 0.46415147272805957 +v 0 0.8011970027680619 0.5358485272719404 +v 0 0.4120147790564149 0.8737274948725555 +v 0 0.5144087845925389 0.9454245494164362 +vt 0.171875 0.375 +vt 0.203125 0.375 +vt 0.203125 0.125 +vt 0.171875 0.125 +vt 0.140625 0.375 +vt 0.171875 0.375 +vt 0.171875 0.125 +vt 0.140625 0.125 +vt 0.234375 0.375 +vt 0.265625 0.375 +vt 0.265625 0.125 +vt 0.234375 0.125 +vt 0.203125 0.375 +vt 0.234375 0.375 +vt 0.234375 0.125 +vt 0.203125 0.125 +vt 0.203125 0.375 +vt 0.171875 0.375 +vt 0.171875 0.4375 +vt 0.203125 0.4375 +vt 0.234375 0.4375 +vt 0.203125 0.4375 +vt 0.203125 0.375 +vt 0.234375 0.375 +vn 0 -0.8191520442889917 -0.5735764363510463 +vn 1 0 0 +vn 0 0.8191520442889917 0.5735764363510463 +vn -1 0 0 +vn 0 0.5735764363510463 -0.8191520442889917 +vn 0 -0.5735764363510463 0.8191520442889917 +usemtl m_94c40dbc-0261-544f-e827-6e5c4aaaa4dd +f 84/244/61 87/243/61 85/242/61 82/241/61 +f 83/248/62 84/247/62 82/246/62 81/245/62 +f 88/252/63 83/251/63 81/250/63 86/249/63 +f 87/256/64 88/255/64 86/254/64 85/253/64 +f 86/260/65 81/259/65 82/258/65 85/257/65 +f 87/264/66 84/263/66 83/262/66 88/261/66 \ No newline at end of file diff --git a/renderer/viewer/three/entity/models/zombie_villager.obj b/renderer/viewer/three/entity/models/zombie_villager.obj new file mode 100644 index 00000000..22282802 --- /dev/null +++ b/renderer/viewer/three/entity/models/zombie_villager.obj @@ -0,0 +1,463 @@ +# Made in Blockbench 4.9.4 +mtllib materials.mtl + +o Body +v 0.25 1.5 0.1875 +v 0.25 1.5 -0.1875 +v 0.25 0.75 0.1875 +v 0.25 0.75 -0.1875 +v -0.25 1.5 -0.1875 +v -0.25 1.5 0.1875 +v -0.25 0.75 -0.1875 +v -0.25 0.75 0.1875 +vt 0.34375 0.59375 +vt 0.46875 0.59375 +vt 0.46875 0.40625 +vt 0.34375 0.40625 +vt 0.25 0.59375 +vt 0.34375 0.59375 +vt 0.34375 0.40625 +vt 0.25 0.40625 +vt 0.5625 0.59375 +vt 0.6875 0.59375 +vt 0.6875 0.40625 +vt 0.5625 0.40625 +vt 0.46875 0.59375 +vt 0.5625 0.59375 +vt 0.5625 0.40625 +vt 0.46875 0.40625 +vt 0.46875 0.59375 +vt 0.34375 0.59375 +vt 0.34375 0.6875 +vt 0.46875 0.6875 +vt 0.59375 0.6875 +vt 0.46875 0.6875 +vt 0.46875 0.59375 +vt 0.59375 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 4/4/1 7/3/1 5/2/1 2/1/1 +f 3/8/2 4/7/2 2/6/2 1/5/2 +f 8/12/3 3/11/3 1/10/3 6/9/3 +f 7/16/4 8/15/4 6/14/4 5/13/4 +f 6/20/5 1/19/5 2/18/5 5/17/5 +f 7/24/6 4/23/6 3/22/6 8/21/6 +o Body +v 0.28125 1.53125 0.21875 +v 0.28125 1.53125 -0.21875 +v 0.28125 0.34375 0.21875 +v 0.28125 0.34375 -0.21875 +v -0.28125 1.53125 -0.21875 +v -0.28125 1.53125 0.21875 +v -0.28125 0.34375 -0.21875 +v -0.28125 0.34375 0.21875 +vt 0.09375 0.3125 +vt 0.21875 0.3125 +vt 0.21875 0.03125 +vt 0.09375 0.03125 +vt 0 0.3125 +vt 0.09375 0.3125 +vt 0.09375 0.03125 +vt 0 0.03125 +vt 0.3125 0.3125 +vt 0.4375 0.3125 +vt 0.4375 0.03125 +vt 0.3125 0.03125 +vt 0.21875 0.3125 +vt 0.3125 0.3125 +vt 0.3125 0.03125 +vt 0.21875 0.03125 +vt 0.21875 0.3125 +vt 0.09375 0.3125 +vt 0.09375 0.40625 +vt 0.21875 0.40625 +vt 0.34375 0.40625 +vt 0.21875 0.40625 +vt 0.21875 0.3125 +vt 0.34375 0.3125 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 12/28/7 15/27/7 13/26/7 10/25/7 +f 11/32/8 12/31/8 10/30/8 9/29/8 +f 16/36/9 11/35/9 9/34/9 14/33/9 +f 15/40/10 16/39/10 14/38/10 13/37/10 +f 14/44/11 9/43/11 10/42/11 13/41/11 +f 15/48/12 12/47/12 11/46/12 16/45/12 +o Head +v 0.265625 2.140625 0.265625 +v 0.265625 2.140625 -0.265625 +v 0.265625 1.484375 0.265625 +v 0.265625 1.484375 -0.265625 +v -0.265625 2.140625 -0.265625 +v -0.265625 2.140625 0.265625 +v -0.265625 1.484375 -0.265625 +v -0.265625 1.484375 0.265625 +vt 0.125 0.875 +vt 0.25 0.875 +vt 0.25 0.71875 +vt 0.125 0.71875 +vt 0 0.875 +vt 0.125 0.875 +vt 0.125 0.71875 +vt 0 0.71875 +vt 0.375 0.875 +vt 0.5 0.875 +vt 0.5 0.71875 +vt 0.375 0.71875 +vt 0.25 0.875 +vt 0.375 0.875 +vt 0.375 0.71875 +vt 0.25 0.71875 +vt 0.25 0.875 +vt 0.125 0.875 +vt 0.125 1 +vt 0.25 1 +vt 0.375 1 +vt 0.25 1 +vt 0.25 0.875 +vt 0.375 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 20/52/13 23/51/13 21/50/13 18/49/13 +f 19/56/14 20/55/14 18/54/14 17/53/14 +f 24/60/15 19/59/15 17/58/15 22/57/15 +f 23/64/16 24/63/16 22/62/16 21/61/16 +f 22/68/17 17/67/17 18/66/17 21/65/17 +f 23/72/18 20/71/18 19/70/18 24/69/18 +o Head +v 0.078125 1.703125 -0.234375 +v 0.078125 1.703125 -0.390625 +v 0.078125 1.421875 -0.234375 +v 0.078125 1.421875 -0.390625 +v -0.078125 1.703125 -0.390625 +v -0.078125 1.703125 -0.234375 +v -0.078125 1.421875 -0.390625 +v -0.078125 1.421875 -0.234375 +vt 0.40625 0.96875 +vt 0.4375 0.96875 +vt 0.4375 0.90625 +vt 0.40625 0.90625 +vt 0.375 0.96875 +vt 0.40625 0.96875 +vt 0.40625 0.90625 +vt 0.375 0.90625 +vt 0.46875 0.96875 +vt 0.5 0.96875 +vt 0.5 0.90625 +vt 0.46875 0.90625 +vt 0.4375 0.96875 +vt 0.46875 0.96875 +vt 0.46875 0.90625 +vt 0.4375 0.90625 +vt 0.4375 0.96875 +vt 0.40625 0.96875 +vt 0.40625 1 +vt 0.4375 1 +vt 0.46875 1 +vt 0.4375 1 +vt 0.4375 0.96875 +vt 0.46875 0.96875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 28/76/19 31/75/19 29/74/19 26/73/19 +f 27/80/20 28/79/20 26/78/20 25/77/20 +f 32/84/21 27/83/21 25/82/21 30/81/21 +f 31/88/22 32/87/22 30/86/22 29/85/22 +f 30/92/23 25/91/23 26/90/23 29/89/23 +f 31/96/24 28/95/24 27/94/24 32/93/24 +o Head Layer +v 0.28125 2.15625 0.28125 +v 0.28125 2.15625 -0.28125 +v 0.28125 1.46875 0.28125 +v 0.28125 1.46875 -0.28125 +v -0.28125 2.15625 -0.28125 +v -0.28125 2.15625 0.28125 +v -0.28125 1.46875 -0.28125 +v -0.28125 1.46875 0.28125 +vt 0.625 0.875 +vt 0.75 0.875 +vt 0.75 0.71875 +vt 0.625 0.71875 +vt 0.5 0.875 +vt 0.625 0.875 +vt 0.625 0.71875 +vt 0.5 0.71875 +vt 0.875 0.875 +vt 1 0.875 +vt 1 0.71875 +vt 0.875 0.71875 +vt 0.75 0.875 +vt 0.875 0.875 +vt 0.875 0.71875 +vt 0.75 0.71875 +vt 0.75 0.875 +vt 0.625 0.875 +vt 0.625 1 +vt 0.75 1 +vt 0.875 1 +vt 0.75 1 +vt 0.75 0.875 +vt 0.875 0.875 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 36/100/25 39/99/25 37/98/25 34/97/25 +f 35/104/26 36/103/26 34/102/26 33/101/26 +f 40/108/27 35/107/27 33/106/27 38/105/27 +f 39/112/28 40/111/28 38/110/28 37/109/28 +f 38/116/29 33/115/29 34/114/29 37/113/29 +f 39/120/30 36/119/30 35/118/30 40/117/30 +o brim +v 0.5062500000000001 2.00625 -0.30625 +v 0.5062500000000001 2.00625 -0.38125 +v 0.5062500000000001 0.9937499999999999 -0.30625 +v 0.5062500000000001 0.9937499999999999 -0.38125 +v -0.50625 2.00625 -0.38125 +v -0.50625 2.00625 -0.30625 +v -0.50625 0.9937499999999999 -0.38125 +v -0.50625 0.9937499999999999 -0.30625 +vt 0.484375 0.25 +vt 0.734375 0.25 +vt 0.734375 0 +vt 0.484375 0 +vt 0.46875 0.25 +vt 0.484375 0.25 +vt 0.484375 0 +vt 0.46875 0 +vt 0.75 0.25 +vt 1 0.25 +vt 1 0 +vt 0.75 0 +vt 0.734375 0.25 +vt 0.75 0.25 +vt 0.75 0 +vt 0.734375 0 +vt 0.734375 0.25 +vt 0.484375 0.25 +vt 0.484375 0.265625 +vt 0.734375 0.265625 +vt 0.984375 0.265625 +vt 0.734375 0.265625 +vt 0.734375 0.25 +vt 0.984375 0.25 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 44/124/31 47/123/31 45/122/31 42/121/31 +f 43/128/32 44/127/32 42/126/32 41/125/32 +f 48/132/33 43/131/33 41/130/33 46/129/33 +f 47/136/34 48/135/34 46/134/34 45/133/34 +f 46/140/35 41/139/35 42/138/35 45/137/35 +f 47/144/36 44/143/36 43/142/36 48/141/36 +o RightArm +v 0.5 1.5 0.125 +v 0.5 1.5 -0.125 +v 0.5 0.75 0.125 +v 0.5 0.75 -0.125 +v 0.25 1.5 -0.125 +v 0.25 1.5 0.125 +v 0.25 0.75 -0.125 +v 0.25 0.75 0.125 +vt 0.75 0.59375 +vt 0.8125 0.59375 +vt 0.8125 0.40625 +vt 0.75 0.40625 +vt 0.6875 0.59375 +vt 0.75 0.59375 +vt 0.75 0.40625 +vt 0.6875 0.40625 +vt 0.875 0.59375 +vt 0.9375 0.59375 +vt 0.9375 0.40625 +vt 0.875 0.40625 +vt 0.8125 0.59375 +vt 0.875 0.59375 +vt 0.875 0.40625 +vt 0.8125 0.40625 +vt 0.8125 0.59375 +vt 0.75 0.59375 +vt 0.75 0.65625 +vt 0.8125 0.65625 +vt 0.875 0.65625 +vt 0.8125 0.65625 +vt 0.8125 0.59375 +vt 0.875 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 52/148/37 55/147/37 53/146/37 50/145/37 +f 51/152/38 52/151/38 50/150/38 49/149/38 +f 56/156/39 51/155/39 49/154/39 54/153/39 +f 55/160/40 56/159/40 54/158/40 53/157/40 +f 54/164/41 49/163/41 50/162/41 53/161/41 +f 55/168/42 52/167/42 51/166/42 56/165/42 +o LeftArm +v -0.25 1.5 0.125 +v -0.25 1.5 -0.125 +v -0.25 0.75 0.125 +v -0.25 0.75 -0.125 +v -0.5 1.5 -0.125 +v -0.5 1.5 0.125 +v -0.5 0.75 -0.125 +v -0.5 0.75 0.125 +vt 0.8125 0.59375 +vt 0.75 0.59375 +vt 0.75 0.40625 +vt 0.8125 0.40625 +vt 0.875 0.59375 +vt 0.8125 0.59375 +vt 0.8125 0.40625 +vt 0.875 0.40625 +vt 0.9375 0.59375 +vt 0.875 0.59375 +vt 0.875 0.40625 +vt 0.9375 0.40625 +vt 0.75 0.59375 +vt 0.6875 0.59375 +vt 0.6875 0.40625 +vt 0.75 0.40625 +vt 0.75 0.59375 +vt 0.8125 0.59375 +vt 0.8125 0.65625 +vt 0.75 0.65625 +vt 0.8125 0.65625 +vt 0.875 0.65625 +vt 0.875 0.59375 +vt 0.8125 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 60/172/43 63/171/43 61/170/43 58/169/43 +f 59/176/44 60/175/44 58/174/44 57/173/44 +f 64/180/45 59/179/45 57/178/45 62/177/45 +f 63/184/46 64/183/46 62/182/46 61/181/46 +f 62/188/47 57/187/47 58/186/47 61/185/47 +f 63/192/48 60/191/48 59/190/48 64/189/48 +o RightLeg +v 0.25 0.75 0.125 +v 0.25 0.75 -0.125 +v 0.25 0 0.125 +v 0.25 0 -0.125 +v 0 0.75 -0.125 +v 0 0.75 0.125 +v 0 0 -0.125 +v 0 0 0.125 +vt 0.0625 0.59375 +vt 0.125 0.59375 +vt 0.125 0.40625 +vt 0.0625 0.40625 +vt 0 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.40625 +vt 0 0.40625 +vt 0.1875 0.59375 +vt 0.25 0.59375 +vt 0.25 0.40625 +vt 0.1875 0.40625 +vt 0.125 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.40625 +vt 0.125 0.40625 +vt 0.125 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.65625 +vt 0.125 0.65625 +vt 0.1875 0.65625 +vt 0.125 0.65625 +vt 0.125 0.59375 +vt 0.1875 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 68/196/49 71/195/49 69/194/49 66/193/49 +f 67/200/50 68/199/50 66/198/50 65/197/50 +f 72/204/51 67/203/51 65/202/51 70/201/51 +f 71/208/52 72/207/52 70/206/52 69/205/52 +f 70/212/53 65/211/53 66/210/53 69/209/53 +f 71/216/54 68/215/54 67/214/54 72/213/54 +o LeftLeg +v 0 0.75 0.125 +v 0 0.75 -0.125 +v 0 0 0.125 +v 0 0 -0.125 +v -0.25 0.75 -0.125 +v -0.25 0.75 0.125 +v -0.25 0 -0.125 +v -0.25 0 0.125 +vt 0.125 0.59375 +vt 0.0625 0.59375 +vt 0.0625 0.40625 +vt 0.125 0.40625 +vt 0.1875 0.59375 +vt 0.125 0.59375 +vt 0.125 0.40625 +vt 0.1875 0.40625 +vt 0.25 0.59375 +vt 0.1875 0.59375 +vt 0.1875 0.40625 +vt 0.25 0.40625 +vt 0.0625 0.59375 +vt 0 0.59375 +vt 0 0.40625 +vt 0.0625 0.40625 +vt 0.0625 0.59375 +vt 0.125 0.59375 +vt 0.125 0.65625 +vt 0.0625 0.65625 +vt 0.125 0.65625 +vt 0.1875 0.65625 +vt 0.1875 0.59375 +vt 0.125 0.59375 +vn 0 0 -1 +vn 1 0 0 +vn 0 0 1 +vn -1 0 0 +vn 0 1 0 +vn 0 -1 0 +usemtl m_dabf2b9e-3dd1-eda4-ab17-56ae6660288d +f 76/220/55 79/219/55 77/218/55 74/217/55 +f 75/224/56 76/223/56 74/222/56 73/221/56 +f 80/228/57 75/227/57 73/226/57 78/225/57 +f 79/232/58 80/231/58 78/230/58 77/229/58 +f 78/236/59 73/235/59 74/234/59 77/233/59 +f 79/240/60 76/239/60 75/238/60 80/237/60 \ No newline at end of file diff --git a/renderer/viewer/three/entity/objModels.js b/renderer/viewer/three/entity/objModels.js new file mode 100644 index 00000000..edff440b --- /dev/null +++ b/renderer/viewer/three/entity/objModels.js @@ -0,0 +1 @@ +export * as externalModels from './exportedModels' diff --git a/renderer/viewer/three/graphicsBackend.ts b/renderer/viewer/three/graphicsBackend.ts new file mode 100644 index 00000000..04cb00ca --- /dev/null +++ b/renderer/viewer/three/graphicsBackend.ts @@ -0,0 +1,166 @@ +import * as THREE from 'three' +import { Vec3 } from 'vec3' +import { GraphicsBackendLoader, GraphicsBackend, GraphicsInitOptions, DisplayWorldOptions } from '../../../src/appViewer' +import { ProgressReporter } from '../../../src/core/progressReporter' +import { showNotification } from '../../../src/react/NotificationProvider' +import { displayEntitiesDebugList } from '../../playground/allEntitiesDebug' +import supportedVersions from '../../../src/supportedVersions.mjs' +import { ResourcesManager } from '../../../src/resourcesManager' +import { WorldRendererThree } from './worldrendererThree' +import { DocumentRenderer } from './documentRenderer' +import { PanoramaRenderer } from './panorama' +import { initVR } from './world/vr' + +// https://discourse.threejs.org/t/updates-to-color-management-in-three-js-r152/50791 +THREE.ColorManagement.enabled = false +globalThis.THREE = THREE + +const getBackendMethods = (worldRenderer: WorldRendererThree) => { + return { + updateMap: worldRenderer.entities.updateMap.bind(worldRenderer.entities), + updateCustomBlock: worldRenderer.updateCustomBlock.bind(worldRenderer), + getBlockInfo: worldRenderer.getBlockInfo.bind(worldRenderer), + playEntityAnimation: worldRenderer.entities.playAnimation.bind(worldRenderer.entities), + damageEntity: worldRenderer.entities.handleDamageEvent.bind(worldRenderer.entities), + updatePlayerSkin: worldRenderer.entities.updatePlayerSkin.bind(worldRenderer.entities), + changeHandSwingingState: worldRenderer.changeHandSwingingState.bind(worldRenderer), + getHighestBlocks: worldRenderer.getHighestBlocks.bind(worldRenderer), + reloadWorld: worldRenderer.reloadWorld.bind(worldRenderer), + + addMedia: worldRenderer.media.addMedia.bind(worldRenderer.media), + destroyMedia: worldRenderer.media.destroyMedia.bind(worldRenderer.media), + setVideoPlaying: worldRenderer.media.setVideoPlaying.bind(worldRenderer.media), + setVideoSeeking: worldRenderer.media.setVideoSeeking.bind(worldRenderer.media), + setVideoVolume: worldRenderer.media.setVideoVolume.bind(worldRenderer.media), + setVideoSpeed: worldRenderer.media.setVideoSpeed.bind(worldRenderer.media), + + addSectionAnimation (id: string, animation: typeof worldRenderer.sectionsOffsetsAnimations[string]) { + worldRenderer.sectionsOffsetsAnimations[id] = animation + }, + removeSectionAnimation (id: string) { + delete worldRenderer.sectionsOffsetsAnimations[id] + }, + + shakeFromDamage: worldRenderer.cameraShake.shakeFromDamage.bind(worldRenderer.cameraShake), + onPageInteraction: worldRenderer.media.onPageInteraction.bind(worldRenderer.media), + downloadMesherLog: worldRenderer.downloadMesherLog.bind(worldRenderer), + + addWaypoint: worldRenderer.waypoints.addWaypoint.bind(worldRenderer.waypoints), + removeWaypoint: worldRenderer.waypoints.removeWaypoint.bind(worldRenderer.waypoints), + + // New method for updating skybox + setSkyboxImage: worldRenderer.skyboxRenderer.setSkyboxImage.bind(worldRenderer.skyboxRenderer) + } +} + +export type ThreeJsBackendMethods = ReturnType + +const createGraphicsBackend: GraphicsBackendLoader = (initOptions: GraphicsInitOptions) => { + // Private state + const documentRenderer = new DocumentRenderer(initOptions) + globalThis.renderer = documentRenderer.renderer + + let panoramaRenderer: PanoramaRenderer | null = null + let worldRenderer: WorldRendererThree | null = null + + const startPanorama = async () => { + if (!documentRenderer) throw new Error('Document renderer not initialized') + if (worldRenderer) return + const qs = new URLSearchParams(location.search) + if (qs.get('debugEntities')) { + const fullResourceManager = initOptions.resourcesManager as ResourcesManager + fullResourceManager.currentConfig = { version: qs.get('version') || supportedVersions.at(-1)!, noInventoryGui: true } + await fullResourceManager.updateAssetsData({ }) + + displayEntitiesDebugList(fullResourceManager.currentConfig.version) + return + } + + if (!panoramaRenderer) { + panoramaRenderer = new PanoramaRenderer(documentRenderer, initOptions, !!process.env.SINGLE_FILE_BUILD_MODE) + globalThis.panoramaRenderer = panoramaRenderer + callModsMethod('panoramaCreated', panoramaRenderer) + await panoramaRenderer.start() + callModsMethod('panoramaReady', panoramaRenderer) + } + } + + const startWorld = async (displayOptions: DisplayWorldOptions) => { + if (panoramaRenderer) { + panoramaRenderer.dispose() + panoramaRenderer = null + } + worldRenderer = new WorldRendererThree(documentRenderer.renderer, initOptions, displayOptions) + void initVR(worldRenderer, documentRenderer) + await worldRenderer.worldReadyPromise + documentRenderer.render = (sizeChanged: boolean) => { + worldRenderer?.render(sizeChanged) + } + documentRenderer.inWorldRenderingConfig = displayOptions.inWorldRenderingConfig + window.world = worldRenderer + callModsMethod('worldReady', worldRenderer) + } + + const disconnect = () => { + if (panoramaRenderer) { + panoramaRenderer.dispose() + panoramaRenderer = null + } + if (documentRenderer) { + documentRenderer.dispose() + } + if (worldRenderer) { + worldRenderer.destroy() + worldRenderer = null + } + } + + // Public interface + const backend: GraphicsBackend = { + id: 'threejs', + displayName: `three.js ${THREE.REVISION}`, + startPanorama, + startWorld, + disconnect, + setRendering (rendering) { + documentRenderer.setPaused(!rendering) + if (worldRenderer) worldRenderer.renderingActive = rendering + }, + getDebugOverlay: () => ({ + get entitiesString () { + return worldRenderer?.entities.getDebugString() + }, + }), + updateCamera (pos: Vec3 | null, yaw: number, pitch: number) { + worldRenderer?.setFirstPersonCamera(pos, yaw, pitch) + }, + get soundSystem () { + return worldRenderer?.soundSystem + }, + get backendMethods () { + if (!worldRenderer) return undefined + return getBackendMethods(worldRenderer) + } + } + + globalThis.threeJsBackend = backend + globalThis.resourcesManager = initOptions.resourcesManager + callModsMethod('default', backend) + + return backend +} + +const callModsMethod = (method: string, ...args: any[]) => { + for (const mod of Object.values((window.loadedMods ?? {}) as Record)) { + try { + mod.threeJsBackendModule?.[method]?.(...args) + } catch (err) { + const errorMessage = `[mod three.js] Error calling ${method} on ${mod.name}: ${err}` + showNotification(errorMessage, 'error') + throw new Error(errorMessage) + } + } +} + +createGraphicsBackend.id = 'threejs' +export default createGraphicsBackend diff --git a/renderer/viewer/three/hand.ts b/renderer/viewer/three/hand.ts new file mode 100644 index 00000000..2bd3832b --- /dev/null +++ b/renderer/viewer/three/hand.ts @@ -0,0 +1,89 @@ +import * as THREE from 'three' +import { loadSkinFromUsername, loadSkinImage } from '../lib/utils/skins' +import { steveTexture } from './entities' + + +export const getMyHand = async (image?: string, userName?: string) => { + let newMap: THREE.Texture + if (!image && !userName) { + newMap = await steveTexture + } else { + if (!image) { + image = await loadSkinFromUsername(userName!, 'skin') + } + if (!image) { + return + } + const { canvas } = await loadSkinImage(image) + newMap = new THREE.CanvasTexture(canvas) + } + + newMap.magFilter = THREE.NearestFilter + newMap.minFilter = THREE.NearestFilter + // right arm + const box = new THREE.BoxGeometry() + const material = new THREE.MeshStandardMaterial() + const slim = false + const mesh = new THREE.Mesh(box, material) + mesh.scale.x = slim ? 3 : 4 + mesh.scale.y = 12 + mesh.scale.z = 4 + setSkinUVs(box, 40, 16, slim ? 3 : 4, 12, 4) + material.map = newMap + material.needsUpdate = true + const group = new THREE.Group() + group.add(mesh) + group.scale.set(0.1, 0.1, 0.1) + mesh.rotation.z = Math.PI + return group +} + +function setUVs ( + box: THREE.BoxGeometry, + u: number, + v: number, + width: number, + height: number, + depth: number, + textureWidth: number, + textureHeight: number +): void { + const toFaceVertices = (x1: number, y1: number, x2: number, y2: number) => [ + new THREE.Vector2(x1 / textureWidth, 1 - y2 / textureHeight), + new THREE.Vector2(x2 / textureWidth, 1 - y2 / textureHeight), + new THREE.Vector2(x2 / textureWidth, 1 - y1 / textureHeight), + new THREE.Vector2(x1 / textureWidth, 1 - y1 / textureHeight), + ] + + const top = toFaceVertices(u + depth, v, u + width + depth, v + depth) + const bottom = toFaceVertices(u + width + depth, v, u + width * 2 + depth, v + depth) + const left = toFaceVertices(u, v + depth, u + depth, v + depth + height) + const front = toFaceVertices(u + depth, v + depth, u + width + depth, v + depth + height) + const right = toFaceVertices(u + width + depth, v + depth, u + width + depth * 2, v + height + depth) + const back = toFaceVertices(u + width + depth * 2, v + depth, u + width * 2 + depth * 2, v + height + depth) + + const uvAttr = box.attributes.uv as THREE.BufferAttribute + const uvRight = [right[3], right[2], right[0], right[1]] + const uvLeft = [left[3], left[2], left[0], left[1]] + const uvTop = [top[3], top[2], top[0], top[1]] + const uvBottom = [bottom[0], bottom[1], bottom[3], bottom[2]] + const uvFront = [front[3], front[2], front[0], front[1]] + const uvBack = [back[3], back[2], back[0], back[1]] + + // Create a new array to hold the modified UV data + const newUVData = [] as number[] + + // Iterate over the arrays and copy the data to uvData + for (const uvArray of [uvRight, uvLeft, uvTop, uvBottom, uvFront, uvBack]) { + for (const uv of uvArray) { + newUVData.push(uv.x, uv.y) + } + } + + uvAttr.set(new Float32Array(newUVData)) + uvAttr.needsUpdate = true +} + +function setSkinUVs (box: THREE.BoxGeometry, u: number, v: number, width: number, height: number, depth: number): void { + setUVs(box, u, v, width, height, depth, 64, 64) +} diff --git a/renderer/viewer/three/holdingBlock.ts b/renderer/viewer/three/holdingBlock.ts new file mode 100644 index 00000000..f9d00f0e --- /dev/null +++ b/renderer/viewer/three/holdingBlock.ts @@ -0,0 +1,933 @@ +import * as THREE from 'three' +import * as tweenJs from '@tweenjs/tween.js' +import PrismarineItem from 'prismarine-item' +import worldBlockProvider, { WorldBlockProvider } from 'mc-assets/dist/worldBlockProvider' +import { BlockModel } from 'mc-assets' +import { getThreeBlockModelGroup, renderBlockThree, setBlockPosition } from '../lib/mesher/standaloneRenderer' +import { MovementState, PlayerStateRenderer } from '../lib/basePlayerState' +import { DebugGui } from '../lib/DebugGui' +import { SmoothSwitcher } from '../lib/smoothSwitcher' +import { watchProperty } from '../lib/utils/proxy' +import { WorldRendererConfig } from '../lib/worldrendererCommon' +import { getMyHand } from './hand' +import { WorldRendererThree } from './worldrendererThree' +import { disposeObject } from './threeJsUtils' + +export type HandItemBlock = { + name? + properties? + fullItem? + type: 'block' | 'item' | 'hand' + id?: number +} + +const rotationPositionData = { + itemRight: { + 'rotation': [ + 0, + -90, + 25 + ], + 'translation': [ + 1.13, + 3.2, + 1.13 + ], + 'scale': [ + 0.68, + 0.68, + 0.68 + ] + }, + itemLeft: { + 'rotation': [ + 0, + 90, + -25 + ], + 'translation': [ + 1.13, + 3.2, + 1.13 + ], + 'scale': [ + 0.68, + 0.68, + 0.68 + ] + }, + blockRight: { + 'rotation': [ + 0, + 45, + 0 + ], + 'translation': [ + 0, + 0, + 0 + ], + 'scale': [ + 0.4, + 0.4, + 0.4 + ] + }, + blockLeft: { + 'rotation': [ + 0, + 225, + 0 + ], + 'translation': [ + 0, + 0, + 0 + ], + 'scale': [ + 0.4, + 0.4, + 0.4 + ] + } +} + +export default class HoldingBlock { + // TODO refactor with the tree builder for better visual understanding + holdingBlock: THREE.Object3D | undefined = undefined + blockSwapAnimation: { + switcher: SmoothSwitcher + // hidden: boolean + } | undefined = undefined + cameraGroup = new THREE.Mesh() + objectOuterGroup = new THREE.Group() // 3 + objectInnerGroup = new THREE.Group() // 4 + holdingBlockInnerGroup = new THREE.Group() // 5 + camera = new THREE.PerspectiveCamera(75, 1, 0.1, 100) + stopUpdate = false + lastHeldItem: HandItemBlock | undefined + isSwinging = false + nextIterStopCallbacks: Array<() => void> | undefined + idleAnimator: HandIdleAnimator | undefined + ready = false + lastUpdate = 0 + playerHand: THREE.Object3D | undefined + offHandDisplay = false + offHandModeLegacy = false + + swingAnimator: HandSwingAnimator | undefined + config: WorldRendererConfig + + constructor (public worldRenderer: WorldRendererThree, public offHand = false) { + this.initCameraGroup() + this.worldRenderer.onReactivePlayerStateUpdated('heldItemMain', () => { + if (!this.offHand) { + this.updateItem() + } + }, false) + this.worldRenderer.onReactivePlayerStateUpdated('heldItemOff', () => { + if (this.offHand) { + this.updateItem() + } + }, false) + this.config = worldRenderer.displayOptions.inWorldRenderingConfig + + this.offHandDisplay = this.offHand + // this.offHandDisplay = true + if (!this.offHand) { + // load default hand + void getMyHand().then((hand) => { + this.playerHand = hand + // trigger update + this.updateItem() + }).then(() => { + // now watch over the player skin + watchProperty( + async () => { + return getMyHand(this.worldRenderer.playerStateReactive.playerSkin, this.worldRenderer.playerStateReactive.onlineMode ? this.worldRenderer.playerStateReactive.username : undefined) + }, + this.worldRenderer.playerStateReactive, + 'playerSkin', + (newHand) => { + if (newHand) { + this.playerHand = newHand + // trigger update + this.updateItem() + } + }, + (oldHand) => { + disposeObject(oldHand!, true) + } + ) + }) + } + } + + updateItem () { + if (!this.ready) return + const item = this.offHand ? this.worldRenderer.playerStateReactive.heldItemOff : this.worldRenderer.playerStateReactive.heldItemMain + if (item) { + void this.setNewItem(item) + } else if (this.offHand) { + void this.setNewItem() + } else { + void this.setNewItem({ + type: 'hand', + }) + } + } + + initCameraGroup () { + this.cameraGroup = new THREE.Mesh() + } + + startSwing () { + this.swingAnimator?.startSwing() + } + + stopSwing () { + this.swingAnimator?.stopSwing() + } + + render (originalCamera: THREE.PerspectiveCamera, renderer: THREE.WebGLRenderer, ambientLight: THREE.AmbientLight, directionalLight: THREE.DirectionalLight) { + if (!this.lastHeldItem) return + const now = performance.now() + if (this.lastUpdate && now - this.lastUpdate > 50) { // one tick + void this.replaceItemModel(this.lastHeldItem) + } + + // Only update idle animation if not swinging + if (this.swingAnimator?.isCurrentlySwinging() || this.swingAnimator?.debugParams.animationStage) { + this.swingAnimator?.update() + } else { + this.idleAnimator?.update() + } + + this.blockSwapAnimation?.switcher.update() + + const scene = new THREE.Scene() + scene.add(this.cameraGroup) + // if (this.camera.aspect !== originalCamera.aspect) { + // this.camera.aspect = originalCamera.aspect + // this.camera.updateProjectionMatrix() + // } + this.updateCameraGroup() + scene.add(ambientLight.clone()) + scene.add(directionalLight.clone()) + + const viewerSize = renderer.getSize(new THREE.Vector2()) + const minSize = Math.min(viewerSize.width, viewerSize.height) + const x = viewerSize.width - minSize + + // Mirror the scene for offhand by scaling + const { offHandDisplay } = this + if (offHandDisplay) { + this.cameraGroup.scale.x = -1 + } + + renderer.autoClear = false + renderer.clearDepth() + if (this.offHandDisplay) { + renderer.setViewport(0, 0, minSize, minSize) + } else { + const x = viewerSize.width - minSize + // if (x) x -= x / 4 + renderer.setViewport(x, 0, minSize, minSize) + } + renderer.render(scene, this.camera) + renderer.setViewport(0, 0, viewerSize.width, viewerSize.height) + + // Reset the mirroring after rendering + if (offHandDisplay) { + this.cameraGroup.scale.x = 1 + } + } + + // worldTest () { + // const mesh = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1), new THREE.MeshPhongMaterial({ color: 0x00_00_ff, transparent: true, opacity: 0.5 })) + // mesh.position.set(0.5, 0.5, 0.5) + // const group = new THREE.Group() + // group.add(mesh) + // group.position.set(-0.5, -0.5, -0.5) + // const outerGroup = new THREE.Group() + // outerGroup.add(group) + // outerGroup.position.set(this.camera.position.x, this.camera.position.y, this.camera.position.z) + // this.scene.add(outerGroup) + + // new tweenJs.Tween(group.rotation).to({ z: THREE.MathUtils.degToRad(90) }, 1000).yoyo(true).repeat(Infinity).start() + // } + + async playBlockSwapAnimation (forceState: 'appeared' | 'disappeared') { + this.blockSwapAnimation ??= { + switcher: new SmoothSwitcher( + () => ({ + y: this.objectInnerGroup.position.y + }), + (property, value) => { + if (property === 'y') this.objectInnerGroup.position.y = value + }, + { + y: 16 // units per second + } + ) + } + + const newState = forceState + // if (forceState && newState !== forceState) { + // throw new Error(`forceState does not match current state ${forceState} !== ${newState}`) + // } + + const targetY = this.objectInnerGroup.position.y + (this.objectInnerGroup.scale.y * 1.5 * (newState === 'appeared' ? 1 : -1)) + + // if (newState === this.blockSwapAnimation.switcher.transitioningToStateName) { + // return false + // } + + let cancelled = false + return new Promise((resolve) => { + this.blockSwapAnimation!.switcher.transitionTo( + { y: targetY }, + newState, + () => { + if (!cancelled) { + resolve(true) + } + }, + () => { + cancelled = true + resolve(false) + } + ) + }) + } + + isDifferentItem (block: HandItemBlock | undefined) { + const Item = PrismarineItem(this.worldRenderer.version) + if (!this.lastHeldItem) { + return true + } + if (this.lastHeldItem.name !== block?.name) { + return true + } + // eslint-disable-next-line sonarjs/prefer-single-boolean-return + if (!Item.equal(this.lastHeldItem.fullItem, block?.fullItem ?? {}) || JSON.stringify(this.lastHeldItem.fullItem.components) !== JSON.stringify(block?.fullItem?.components)) { + return true + } + + return false + } + + updateCameraGroup () { + if (this.stopUpdate) return + const { camera } = this + this.cameraGroup.position.copy(camera.position) + this.cameraGroup.rotation.copy(camera.rotation) + + // const viewerSize = viewer.renderer.getSize(new THREE.Vector2()) + // const aspect = viewerSize.width / viewerSize.height + const aspect = 1 + + + // Adjust the position based on the aspect ratio + const { position, scale: scaleData } = this.getHandHeld3d() + const distance = -position.z + const side = this.offHandModeLegacy ? -1 : 1 + this.objectOuterGroup.position.set( + distance * position.x * aspect * side, + distance * position.y, + -distance + ) + + // const scale = Math.min(0.8, Math.max(1, 1 * aspect)) + const scale = scaleData * 2.22 * 0.2 + this.objectOuterGroup.scale.set(scale, scale, scale) + } + + lastItemModelName: string | undefined + private async createItemModel (handItem: HandItemBlock): Promise<{ model: THREE.Object3D; type: 'hand' | 'block' | 'item' } | undefined> { + this.lastUpdate = performance.now() + if (!handItem || (handItem.type === 'hand' && !this.playerHand)) return undefined + + let blockInner: THREE.Object3D | undefined + if (handItem.type === 'item' || handItem.type === 'block') { + const result = this.worldRenderer.entities.getItemMesh({ + ...handItem.fullItem, + itemId: handItem.id, + }, { + 'minecraft:display_context': 'firstperson', + 'minecraft:use_duration': this.worldRenderer.playerStateReactive.itemUsageTicks, + 'minecraft:using_item': !!this.worldRenderer.playerStateReactive.itemUsageTicks, + }, false, this.lastItemModelName) + if (result) { + const { mesh: itemMesh, isBlock, modelName } = result + if (isBlock) { + blockInner = itemMesh + handItem.type = 'block' + } else { + itemMesh.position.set(0.5, 0.5, 0.5) + blockInner = itemMesh + handItem.type = 'item' + } + this.lastItemModelName = modelName + } + } else { + blockInner = this.playerHand! + } + if (!blockInner) return + blockInner.name = 'holdingBlock' + + const rotationDeg = this.getHandHeld3d().rotation + blockInner.rotation.x = THREE.MathUtils.degToRad(rotationDeg.x) + blockInner.rotation.y = THREE.MathUtils.degToRad(rotationDeg.y) + blockInner.rotation.z = THREE.MathUtils.degToRad(rotationDeg.z) + + return { model: blockInner, type: handItem.type } + } + + async replaceItemModel (handItem?: HandItemBlock): Promise { + // if switch animation is in progress, do not replace the item + if (this.blockSwapAnimation?.switcher.isTransitioning) return + + if (!handItem) { + this.holdingBlock?.removeFromParent() + this.holdingBlock = undefined + this.swingAnimator?.stopSwing() + this.swingAnimator = undefined + this.idleAnimator = undefined + return + } + + const result = await this.createItemModel(handItem) + if (!result) return + + // Update the model without changing the group structure + this.holdingBlock?.removeFromParent() + this.holdingBlock = result.model + this.holdingBlockInnerGroup.add(result.model) + + + } + + testUnknownBlockSwitch () { + void this.setNewItem({ + type: 'item', + name: 'minecraft:some-unknown-block', + id: 0, + fullItem: {} + }) + } + + switchRequest = 0 + async setNewItem (handItem?: HandItemBlock) { + if (!this.isDifferentItem(handItem)) return + this.lastItemModelName = undefined + const switchRequest = ++this.switchRequest + this.lastHeldItem = handItem + let playAppearAnimation = false + if (this.holdingBlock) { + // play disappear animation + playAppearAnimation = true + const result = await this.playBlockSwapAnimation('disappeared') + if (!result) return + this.holdingBlock?.removeFromParent() + this.holdingBlock = undefined + } + + if (!handItem) { + this.swingAnimator?.stopSwing() + this.swingAnimator = undefined + this.idleAnimator = undefined + this.blockSwapAnimation = undefined + return + } + + if (switchRequest !== this.switchRequest) return + const result = await this.createItemModel(handItem) + if (!result || switchRequest !== this.switchRequest) return + + const blockOuterGroup = new THREE.Group() + this.holdingBlockInnerGroup.removeFromParent() + this.holdingBlockInnerGroup = new THREE.Group() + this.holdingBlockInnerGroup.add(result.model) + blockOuterGroup.add(this.holdingBlockInnerGroup) + this.holdingBlock = result.model + this.objectInnerGroup = new THREE.Group() + this.objectInnerGroup.add(blockOuterGroup) + this.objectInnerGroup.position.set(-0.5, -0.5, -0.5) + if (playAppearAnimation) { + this.objectInnerGroup.position.y -= this.objectInnerGroup.scale.y * 1.5 + } + Object.assign(blockOuterGroup.position, { x: 0.5, y: 0.5, z: 0.5 }) + + this.objectOuterGroup = new THREE.Group() + this.objectOuterGroup.add(this.objectInnerGroup) + + this.cameraGroup.add(this.objectOuterGroup) + const rotationDeg = this.getHandHeld3d().rotation + this.objectOuterGroup.rotation.y = THREE.MathUtils.degToRad(rotationDeg.yOuter) + + if (playAppearAnimation) { + await this.playBlockSwapAnimation('appeared') + } + + this.swingAnimator = new HandSwingAnimator(this.holdingBlockInnerGroup) + this.swingAnimator.type = result.type + if (this.config.viewBobbing) { + this.idleAnimator = new HandIdleAnimator(this.holdingBlockInnerGroup, this.worldRenderer.playerStateReactive) + } + } + + getHandHeld3d () { + const type = this.lastHeldItem?.type ?? 'hand' + const side = this.offHandModeLegacy ? 'Left' : 'Right' + + let scale = 0.8 * 1.15 // default scale for hand + let position = { + x: 0.4, + y: -0.7, + z: -0.45 + } + let rotation = { + x: -32.4, + y: 42.8, + z: -41.3, + yOuter: 0 + } + + if (type === 'item') { + const itemData = rotationPositionData[`item${side}`] + position = { + x: -0.05, + y: -0.7, + z: -0.45 + } + rotation = { + x: itemData.rotation[0], + y: itemData.rotation[1], + z: itemData.rotation[2], + yOuter: 0 + } + scale = itemData.scale[0] * 1.15 + } else if (type === 'block') { + const blockData = rotationPositionData[`block${side}`] + position = { + x: 0.4, + y: -0.7, + z: -0.45 + } + rotation = { + x: blockData.rotation[0], + y: blockData.rotation[1], + z: blockData.rotation[2], + yOuter: 0 + } + scale = blockData.scale[0] * 1.15 + } + + return { + rotation, + position, + scale + } + } +} + +class HandIdleAnimator { + globalTime = 0 + lastTime = 0 + currentState: MovementState + targetState: MovementState + defaultPosition: { x: number; y: number; z: number; rotationX: number; rotationY: number; rotationZ: number } + private readonly idleOffset = { y: 0, rotationZ: 0 } + private readonly tween = new tweenJs.Group() + private idleTween: tweenJs.Tween<{ y: number; rotationZ: number }> | null = null + private readonly stateSwitcher: SmoothSwitcher + + // Debug parameters + private readonly debugParams = { + // Transition durations for different state changes + walkingSpeed: 8, + sprintingSpeed: 16, + walkingAmplitude: { x: 1 / 30, y: 1 / 10, rotationZ: 0.25 }, + sprintingAmplitude: { x: 1 / 30, y: 1 / 10, rotationZ: 0.4 } + } + + private readonly debugGui: DebugGui + + constructor (public handMesh: THREE.Object3D, public playerState: PlayerStateRenderer) { + this.handMesh = handMesh + this.globalTime = 0 + this.currentState = 'NOT_MOVING' + this.targetState = 'NOT_MOVING' + + this.defaultPosition = { + x: handMesh.position.x, + y: handMesh.position.y, + z: handMesh.position.z, + rotationX: handMesh.rotation.x, + rotationY: handMesh.rotation.y, + rotationZ: handMesh.rotation.z + } + + // Initialize state switcher with appropriate speeds + this.stateSwitcher = new SmoothSwitcher( + () => { + return { + x: this.handMesh.position.x, + y: this.handMesh.position.y, + z: this.handMesh.position.z, + rotationX: this.handMesh.rotation.x, + rotationY: this.handMesh.rotation.y, + rotationZ: this.handMesh.rotation.z + } + }, + (property, value) => { + switch (property) { + case 'x': this.handMesh.position.x = value; break + case 'y': this.handMesh.position.y = value; break + case 'z': this.handMesh.position.z = value; break + case 'rotationX': this.handMesh.rotation.x = value; break + case 'rotationY': this.handMesh.rotation.y = value; break + case 'rotationZ': this.handMesh.rotation.z = value; break + } + }, + { + x: 2, // units per second + y: 2, + z: 2, + rotation: Math.PI // radians per second + } + ) + + // Initialize debug GUI + this.debugGui = new DebugGui('idle_animator', this.debugParams) + // this.debugGui.activate() + } + + private startIdleAnimation () { + if (this.idleTween) { + this.idleTween.stop() + } + + // Start from current position for smooth transition + this.idleOffset.y = this.handMesh.position.y - this.defaultPosition.y + this.idleOffset.rotationZ = this.handMesh.rotation.z - this.defaultPosition.rotationZ + + this.idleTween = new tweenJs.Tween(this.idleOffset, this.tween) + .to({ + y: 0.05, + rotationZ: 0.05 + }, 3000) + .easing(tweenJs.Easing.Sinusoidal.InOut) + .yoyo(true) + .repeat(Infinity) + .start() + } + + private stopIdleAnimation () { + if (this.idleTween) { + this.idleTween.stop() + this.idleOffset.y = 0 + this.idleOffset.rotationZ = 0 + } + } + + private getStateTransform (state: MovementState, time: number) { + switch (state) { + case 'NOT_MOVING': + case 'SNEAKING': + return { + x: this.defaultPosition.x, + y: this.defaultPosition.y, + z: this.defaultPosition.z, + rotationX: this.defaultPosition.rotationX, + rotationY: this.defaultPosition.rotationY, + rotationZ: this.defaultPosition.rotationZ + } + case 'WALKING': + case 'SPRINTING': { + const speed = state === 'SPRINTING' ? this.debugParams.sprintingSpeed : this.debugParams.walkingSpeed + const amplitude = state === 'SPRINTING' ? this.debugParams.sprintingAmplitude : this.debugParams.walkingAmplitude + + return { + x: this.defaultPosition.x + Math.sin(time * speed) * amplitude.x, + y: this.defaultPosition.y - Math.abs(Math.cos(time * speed)) * amplitude.y, + z: this.defaultPosition.z, + rotationX: this.defaultPosition.rotationX, + rotationY: this.defaultPosition.rotationY, + // rotationZ: this.defaultPosition.rotationZ + Math.sin(time * speed) * amplitude.rotationZ + rotationZ: this.defaultPosition.rotationZ + } + } + } + } + + setState (newState: MovementState) { + if (newState === this.targetState) return + + this.targetState = newState + const noTransition = false + if (this.currentState !== newState) { + // Stop idle animation during state transitions + this.stopIdleAnimation() + + // Calculate new state transform + if (!noTransition) { + // this.globalTime = 0 + const stateTransform = this.getStateTransform(newState, this.globalTime) + + // Start transition to new state + this.stateSwitcher.transitionTo(stateTransform, newState) + // this.updated = false + } + this.currentState = newState + } + } + + updated = false + update () { + this.stateSwitcher.update() + + const now = performance.now() + const deltaTime = (now - this.lastTime) / 1000 + this.lastTime = now + + // Update global time based on current state + if (!this.stateSwitcher.isTransitioning) { + switch (this.currentState) { + case 'NOT_MOVING': + case 'SNEAKING': + this.globalTime = Math.PI / 4 + break + case 'SPRINTING': + case 'WALKING': + this.globalTime += deltaTime + break + } + } + + // Check for state changes from player state + if (this.playerState) { + const newState = this.playerState.movementState + if (newState !== this.targetState) { + this.setState(newState) + } + } + + // If we're not transitioning between states and in a stable state that should have idle animation + if (!this.stateSwitcher.isTransitioning && + (this.currentState === 'NOT_MOVING' || this.currentState === 'SNEAKING')) { + // Start idle animation if not already running + if (!this.idleTween?.isPlaying()) { + this.startIdleAnimation() + } + // Update idle animation + this.tween.update() + + // Apply idle offsets + this.handMesh.position.y = this.defaultPosition.y + this.idleOffset.y + this.handMesh.rotation.z = this.defaultPosition.rotationZ + this.idleOffset.rotationZ + } + + // If we're in a movement state and not transitioning, update the movement animation + if (!this.stateSwitcher.isTransitioning && + (this.currentState === 'WALKING' || this.currentState === 'SPRINTING')) { + const stateTransform = this.getStateTransform(this.currentState, this.globalTime) + Object.assign(this.handMesh.position, stateTransform) + Object.assign(this.handMesh.rotation, { + x: stateTransform.rotationX, + y: stateTransform.rotationY, + z: stateTransform.rotationZ + }) + // this.stateSwitcher.transitionTo(stateTransform, this.currentState) + } + } + + getCurrentState () { + return this.currentState + } + + destroy () { + this.stopIdleAnimation() + this.stateSwitcher.forceFinish() + } +} + +class HandSwingAnimator { + private readonly PI = Math.PI + private animationTimer = 0 + private lastTime = 0 + private isAnimating = false + private stopRequested = false + private readonly originalRotation: THREE.Euler + private readonly originalPosition: THREE.Vector3 + private readonly originalScale: THREE.Vector3 + + readonly debugParams = { + // Animation timing + animationTime: 250, + animationStage: 0, + useClassicSwing: true, + + // Item/Block animation parameters + itemSwingXPosScale: -0.8, + itemSwingYPosScale: 0.2, + itemSwingZPosScale: -0.2, + itemHeightScale: -0.6, + itemPreswingRotY: 45, + itemSwingXRotAmount: -30, + itemSwingYRotAmount: -35, + itemSwingZRotAmount: -5, + + // Hand/Arm animation parameters + armSwingXPosScale: -0.3, + armSwingYPosScale: 0.4, + armSwingZPosScale: -0.4, + armSwingYRotAmount: 70, + armSwingZRotAmount: -20, + armHeightScale: -0.6 + } + + private readonly debugGui: DebugGui + + public type: 'hand' | 'block' | 'item' = 'hand' + + constructor (public handMesh: THREE.Object3D) { + this.handMesh = handMesh + // Store initial transforms + this.originalRotation = handMesh.rotation.clone() + this.originalPosition = handMesh.position.clone() + this.originalScale = handMesh.scale.clone() + + // Initialize debug GUI + this.debugGui = new DebugGui('hand_animator', this.debugParams, undefined, { + animationStage: { + min: 0, + max: 1, + step: 0.01 + }, + // Add ranges for all animation parameters + itemSwingXPosScale: { min: -2, max: 2, step: 0.1 }, + itemSwingYPosScale: { min: -2, max: 2, step: 0.1 }, + itemSwingZPosScale: { min: -2, max: 2, step: 0.1 }, + itemHeightScale: { min: -2, max: 2, step: 0.1 }, + itemPreswingRotY: { min: -180, max: 180, step: 5 }, + itemSwingXRotAmount: { min: -180, max: 180, step: 5 }, + itemSwingYRotAmount: { min: -180, max: 180, step: 5 }, + itemSwingZRotAmount: { min: -180, max: 180, step: 5 }, + armSwingXPosScale: { min: -2, max: 2, step: 0.1 }, + armSwingYPosScale: { min: -2, max: 2, step: 0.1 }, + armSwingZPosScale: { min: -2, max: 2, step: 0.1 }, + armSwingYRotAmount: { min: -180, max: 180, step: 5 }, + armSwingZRotAmount: { min: -180, max: 180, step: 5 }, + armHeightScale: { min: -2, max: 2, step: 0.1 } + }) + // this.debugGui.activate() + } + + update () { + if (!this.isAnimating && !this.debugParams.animationStage) { + // If not animating, ensure we're at original position + this.handMesh.rotation.copy(this.originalRotation) + this.handMesh.position.copy(this.originalPosition) + this.handMesh.scale.copy(this.originalScale) + return + } + + const now = performance.now() + const deltaTime = (now - this.lastTime) / 1000 + this.lastTime = now + + // Update animation progress + this.animationTimer += deltaTime * 1000 // Convert to ms + + // Calculate animation stage (0 to 1) + const stage = this.debugParams.animationStage || Math.min(this.animationTimer / this.debugParams.animationTime, 1) + + if (stage >= 1) { + // Animation complete + if (this.stopRequested) { + // If stop was requested, actually stop now that we've completed a swing + this.isAnimating = false + this.stopRequested = false + this.animationTimer = 0 + this.handMesh.rotation.copy(this.originalRotation) + this.handMesh.position.copy(this.originalPosition) + this.handMesh.scale.copy(this.originalScale) + return + } + // Otherwise reset timer and continue + this.animationTimer = 0 + return + } + + // Start from original transforms + this.handMesh.rotation.copy(this.originalRotation) + this.handMesh.position.copy(this.originalPosition) + this.handMesh.scale.copy(this.originalScale) + + // Calculate swing progress + const swingProgress = stage + const sqrtProgress = Math.sqrt(swingProgress) + const sinProgress = Math.sin(swingProgress * this.PI) + const sinSqrtProgress = Math.sin(sqrtProgress * this.PI) + + if (this.type === 'hand') { + // Hand animation + const xOffset = this.debugParams.armSwingXPosScale * sinSqrtProgress + const yOffset = this.debugParams.armSwingYPosScale * Math.sin(sqrtProgress * this.PI * 2) + const zOffset = this.debugParams.armSwingZPosScale * sinProgress + + this.handMesh.position.x += xOffset + this.handMesh.position.y += yOffset + this.debugParams.armHeightScale * swingProgress + this.handMesh.position.z += zOffset + + // Rotations + this.handMesh.rotation.y += THREE.MathUtils.degToRad(this.debugParams.armSwingYRotAmount * sinSqrtProgress) + this.handMesh.rotation.z += THREE.MathUtils.degToRad(this.debugParams.armSwingZRotAmount * sinProgress) + } else { + // Item/Block animation + const xOffset = this.debugParams.itemSwingXPosScale * sinSqrtProgress + const yOffset = this.debugParams.itemSwingYPosScale * Math.sin(sqrtProgress * this.PI * 2) + const zOffset = this.debugParams.itemSwingZPosScale * sinProgress + + this.handMesh.position.x += xOffset + this.handMesh.position.y += yOffset + this.debugParams.itemHeightScale * swingProgress + this.handMesh.position.z += zOffset + + // Pre-swing rotation + this.handMesh.rotation.y += THREE.MathUtils.degToRad(this.debugParams.itemPreswingRotY) + + // Swing rotations + this.handMesh.rotation.x += THREE.MathUtils.degToRad(this.debugParams.itemSwingXRotAmount * sinProgress) + this.handMesh.rotation.y += THREE.MathUtils.degToRad(this.debugParams.itemSwingYRotAmount * sinSqrtProgress) + this.handMesh.rotation.z += THREE.MathUtils.degToRad(this.debugParams.itemSwingZRotAmount * sinProgress) + } + } + + startSwing () { + this.stopRequested = false + if (this.isAnimating) return + + this.isAnimating = true + this.animationTimer = 0 + this.lastTime = performance.now() + } + + stopSwing () { + if (!this.isAnimating) return + this.stopRequested = true + } + + isCurrentlySwinging () { + return this.isAnimating + } +} + +export const getBlockMeshFromModel = (material: THREE.Material, model: BlockModel, name: string, blockProvider: WorldBlockProvider) => { + const worldRenderModel = blockProvider.transformModel(model, { + name, + properties: {} + }) as any + return getThreeBlockModelGroup(material, [[worldRenderModel]], undefined, 'plains', loadedData) +} diff --git a/renderer/viewer/three/itemMesh.ts b/renderer/viewer/three/itemMesh.ts new file mode 100644 index 00000000..3fa069b9 --- /dev/null +++ b/renderer/viewer/three/itemMesh.ts @@ -0,0 +1,427 @@ +import * as THREE from 'three' + +export interface Create3DItemMeshOptions { + depth: number + pixelSize?: number +} + +export interface Create3DItemMeshResult { + geometry: THREE.BufferGeometry + totalVertices: number + totalTriangles: number +} + +/** + * Creates a 3D item geometry with front/back faces and connecting edges + * from a canvas containing the item texture + */ +export function create3DItemMesh ( + canvas: HTMLCanvasElement, + options: Create3DItemMeshOptions +): Create3DItemMeshResult { + const { depth, pixelSize } = options + + // Validate canvas dimensions + if (canvas.width <= 0 || canvas.height <= 0) { + throw new Error(`Invalid canvas dimensions: ${canvas.width}x${canvas.height}`) + } + + const ctx = canvas.getContext('2d')! + const imageData = ctx.getImageData(0, 0, canvas.width, canvas.height) + const { data } = imageData + + const w = canvas.width + const h = canvas.height + const halfDepth = depth / 2 + const actualPixelSize = pixelSize ?? (1 / Math.max(w, h)) + + // Find opaque pixels + const isOpaque = (x: number, y: number) => { + if (x < 0 || y < 0 || x >= w || y >= h) return false + const i = (y * w + x) * 4 + return data[i + 3] > 128 // alpha > 128 + } + + const vertices: number[] = [] + const indices: number[] = [] + const uvs: number[] = [] + const normals: number[] = [] + + let vertexIndex = 0 + + // Helper to add a vertex + const addVertex = (x: number, y: number, z: number, u: number, v: number, nx: number, ny: number, nz: number) => { + vertices.push(x, y, z) + uvs.push(u, v) + normals.push(nx, ny, nz) + return vertexIndex++ + } + + // Helper to add a quad (two triangles) + const addQuad = (v0: number, v1: number, v2: number, v3: number) => { + indices.push(v0, v1, v2, v0, v2, v3) + } + + // Convert pixel coordinates to world coordinates + const pixelToWorld = (px: number, py: number) => { + const x = (px / w - 0.5) * actualPixelSize * w + const y = -(py / h - 0.5) * actualPixelSize * h + return { x, y } + } + + // Create a grid of vertices for front and back faces + const frontVertices: Array> = Array.from({ length: h + 1 }, () => Array.from({ length: w + 1 }, () => null)) + const backVertices: Array> = Array.from({ length: h + 1 }, () => Array.from({ length: w + 1 }, () => null)) + + // Create vertices at pixel corners + for (let py = 0; py <= h; py++) { + for (let px = 0; px <= w; px++) { + const { x, y } = pixelToWorld(px - 0.5, py - 0.5) + + // UV coordinates should map to the texture space of the extracted tile + const u = px / w + const v = py / h + + // Check if this vertex is needed for any face or edge + let needVertex = false + + // Check all 4 adjacent pixels to see if any are opaque + const adjacentPixels = [ + [px - 1, py - 1], // top-left pixel + [px, py - 1], // top-right pixel + [px - 1, py], // bottom-left pixel + [px, py] // bottom-right pixel + ] + + for (const [adjX, adjY] of adjacentPixels) { + if (isOpaque(adjX, adjY)) { + needVertex = true + break + } + } + + if (needVertex) { + frontVertices[py][px] = addVertex(x, y, halfDepth, u, v, 0, 0, 1) + backVertices[py][px] = addVertex(x, y, -halfDepth, u, v, 0, 0, -1) + } + } + } + + // Create front and back faces + for (let py = 0; py < h; py++) { + for (let px = 0; px < w; px++) { + if (!isOpaque(px, py)) continue + + const v00 = frontVertices[py][px] + const v10 = frontVertices[py][px + 1] + const v11 = frontVertices[py + 1][px + 1] + const v01 = frontVertices[py + 1][px] + + const b00 = backVertices[py][px] + const b10 = backVertices[py][px + 1] + const b11 = backVertices[py + 1][px + 1] + const b01 = backVertices[py + 1][px] + + if (v00 !== null && v10 !== null && v11 !== null && v01 !== null) { + // Front face + addQuad(v00, v10, v11, v01) + } + + if (b00 !== null && b10 !== null && b11 !== null && b01 !== null) { + // Back face (reversed winding) + addQuad(b10, b00, b01, b11) + } + } + } + + // Create edge faces for each side of the pixel with proper UVs + for (let py = 0; py < h; py++) { + for (let px = 0; px < w; px++) { + if (!isOpaque(px, py)) continue + + const pixelU = (px + 0.5) / w // Center of current pixel + const pixelV = (py + 0.5) / h + + // Left edge (x = px) + if (!isOpaque(px - 1, py)) { + const f0 = frontVertices[py][px] + const f1 = frontVertices[py + 1][px] + const b0 = backVertices[py][px] + const b1 = backVertices[py + 1][px] + + if (f0 !== null && f1 !== null && b0 !== null && b1 !== null) { + // Create new vertices for edge with current pixel's UV + const ef0 = addVertex(vertices[f0 * 3], vertices[f0 * 3 + 1], vertices[f0 * 3 + 2], pixelU, pixelV, -1, 0, 0) + const ef1 = addVertex(vertices[f1 * 3], vertices[f1 * 3 + 1], vertices[f1 * 3 + 2], pixelU, pixelV, -1, 0, 0) + const eb1 = addVertex(vertices[b1 * 3], vertices[b1 * 3 + 1], vertices[b1 * 3 + 2], pixelU, pixelV, -1, 0, 0) + const eb0 = addVertex(vertices[b0 * 3], vertices[b0 * 3 + 1], vertices[b0 * 3 + 2], pixelU, pixelV, -1, 0, 0) + addQuad(ef0, ef1, eb1, eb0) + } + } + + // Right edge (x = px + 1) + if (!isOpaque(px + 1, py)) { + const f0 = frontVertices[py + 1][px + 1] + const f1 = frontVertices[py][px + 1] + const b0 = backVertices[py + 1][px + 1] + const b1 = backVertices[py][px + 1] + + if (f0 !== null && f1 !== null && b0 !== null && b1 !== null) { + const ef0 = addVertex(vertices[f0 * 3], vertices[f0 * 3 + 1], vertices[f0 * 3 + 2], pixelU, pixelV, 1, 0, 0) + const ef1 = addVertex(vertices[f1 * 3], vertices[f1 * 3 + 1], vertices[f1 * 3 + 2], pixelU, pixelV, 1, 0, 0) + const eb1 = addVertex(vertices[b1 * 3], vertices[b1 * 3 + 1], vertices[b1 * 3 + 2], pixelU, pixelV, 1, 0, 0) + const eb0 = addVertex(vertices[b0 * 3], vertices[b0 * 3 + 1], vertices[b0 * 3 + 2], pixelU, pixelV, 1, 0, 0) + addQuad(ef0, ef1, eb1, eb0) + } + } + + // Top edge (y = py) + if (!isOpaque(px, py - 1)) { + const f0 = frontVertices[py][px] + const f1 = frontVertices[py][px + 1] + const b0 = backVertices[py][px] + const b1 = backVertices[py][px + 1] + + if (f0 !== null && f1 !== null && b0 !== null && b1 !== null) { + const ef0 = addVertex(vertices[f0 * 3], vertices[f0 * 3 + 1], vertices[f0 * 3 + 2], pixelU, pixelV, 0, -1, 0) + const ef1 = addVertex(vertices[f1 * 3], vertices[f1 * 3 + 1], vertices[f1 * 3 + 2], pixelU, pixelV, 0, -1, 0) + const eb1 = addVertex(vertices[b1 * 3], vertices[b1 * 3 + 1], vertices[b1 * 3 + 2], pixelU, pixelV, 0, -1, 0) + const eb0 = addVertex(vertices[b0 * 3], vertices[b0 * 3 + 1], vertices[b0 * 3 + 2], pixelU, pixelV, 0, -1, 0) + addQuad(ef0, ef1, eb1, eb0) + } + } + + // Bottom edge (y = py + 1) + if (!isOpaque(px, py + 1)) { + const f0 = frontVertices[py + 1][px + 1] + const f1 = frontVertices[py + 1][px] + const b0 = backVertices[py + 1][px + 1] + const b1 = backVertices[py + 1][px] + + if (f0 !== null && f1 !== null && b0 !== null && b1 !== null) { + const ef0 = addVertex(vertices[f0 * 3], vertices[f0 * 3 + 1], vertices[f0 * 3 + 2], pixelU, pixelV, 0, 1, 0) + const ef1 = addVertex(vertices[f1 * 3], vertices[f1 * 3 + 1], vertices[f1 * 3 + 2], pixelU, pixelV, 0, 1, 0) + const eb1 = addVertex(vertices[b1 * 3], vertices[b1 * 3 + 1], vertices[b1 * 3 + 2], pixelU, pixelV, 0, 1, 0) + const eb0 = addVertex(vertices[b0 * 3], vertices[b0 * 3 + 1], vertices[b0 * 3 + 2], pixelU, pixelV, 0, 1, 0) + addQuad(ef0, ef1, eb1, eb0) + } + } + } + } + + const geometry = new THREE.BufferGeometry() + geometry.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3)) + geometry.setAttribute('uv', new THREE.Float32BufferAttribute(uvs, 2)) + geometry.setAttribute('normal', new THREE.Float32BufferAttribute(normals, 3)) + geometry.setIndex(indices) + + // Compute normals properly + geometry.computeVertexNormals() + + return { + geometry, + totalVertices: vertexIndex, + totalTriangles: indices.length / 3 + } +} + +export interface ItemTextureInfo { + u: number + v: number + sizeX: number + sizeY: number +} + +export interface ItemMeshResult { + mesh: THREE.Object3D + itemsTexture?: THREE.Texture + itemsTextureFlipped?: THREE.Texture + cleanup?: () => void +} + +/** + * Extracts item texture region to a canvas + */ +export function extractItemTextureToCanvas ( + sourceTexture: THREE.Texture, + textureInfo: ItemTextureInfo +): HTMLCanvasElement { + const { u, v, sizeX, sizeY } = textureInfo + + // Calculate canvas size - fix the calculation + const canvasWidth = Math.max(1, Math.floor(sizeX * sourceTexture.image.width)) + const canvasHeight = Math.max(1, Math.floor(sizeY * sourceTexture.image.height)) + + const canvas = document.createElement('canvas') + canvas.width = canvasWidth + canvas.height = canvasHeight + + const ctx = canvas.getContext('2d')! + ctx.imageSmoothingEnabled = false + + // Draw the item texture region to canvas + ctx.drawImage( + sourceTexture.image, + u * sourceTexture.image.width, + v * sourceTexture.image.height, + sizeX * sourceTexture.image.width, + sizeY * sourceTexture.image.height, + 0, + 0, + canvas.width, + canvas.height + ) + + return canvas +} + +/** + * Creates either a 2D or 3D item mesh based on parameters + */ +export function createItemMesh ( + sourceTexture: THREE.Texture, + textureInfo: ItemTextureInfo, + options: { + faceCamera?: boolean + use3D?: boolean + depth?: number + } = {} +): ItemMeshResult { + const { faceCamera = false, use3D = true, depth = 0.04 } = options + const { u, v, sizeX, sizeY } = textureInfo + + if (faceCamera) { + // Create sprite for camera-facing items + const itemsTexture = sourceTexture.clone() + itemsTexture.flipY = true + itemsTexture.offset.set(u, 1 - v - sizeY) + itemsTexture.repeat.set(sizeX, sizeY) + itemsTexture.needsUpdate = true + itemsTexture.magFilter = THREE.NearestFilter + itemsTexture.minFilter = THREE.NearestFilter + + const spriteMat = new THREE.SpriteMaterial({ + map: itemsTexture, + transparent: true, + alphaTest: 0.1, + }) + const mesh = new THREE.Sprite(spriteMat) + + return { + mesh, + itemsTexture, + cleanup () { + itemsTexture.dispose() + } + } + } + + if (use3D) { + // Try to create 3D mesh + try { + const canvas = extractItemTextureToCanvas(sourceTexture, textureInfo) + const { geometry } = create3DItemMesh(canvas, { depth }) + + // Create texture from canvas for the 3D mesh + const itemsTexture = new THREE.CanvasTexture(canvas) + itemsTexture.magFilter = THREE.NearestFilter + itemsTexture.minFilter = THREE.NearestFilter + itemsTexture.wrapS = itemsTexture.wrapT = THREE.ClampToEdgeWrapping + itemsTexture.flipY = false + itemsTexture.needsUpdate = true + + const material = new THREE.MeshStandardMaterial({ + map: itemsTexture, + side: THREE.DoubleSide, + transparent: true, + alphaTest: 0.1, + }) + + const mesh = new THREE.Mesh(geometry, material) + + return { + mesh, + itemsTexture, + cleanup () { + itemsTexture.dispose() + geometry.dispose() + if (material.map) material.map.dispose() + material.dispose() + } + } + } catch (error) { + console.warn('Failed to create 3D item mesh, falling back to 2D:', error) + // Fall through to 2D rendering + } + } + + // Fallback to 2D flat rendering + const itemsTexture = sourceTexture.clone() + itemsTexture.flipY = true + itemsTexture.offset.set(u, 1 - v - sizeY) + itemsTexture.repeat.set(sizeX, sizeY) + itemsTexture.needsUpdate = true + itemsTexture.magFilter = THREE.NearestFilter + itemsTexture.minFilter = THREE.NearestFilter + + const itemsTextureFlipped = itemsTexture.clone() + itemsTextureFlipped.repeat.x *= -1 + itemsTextureFlipped.needsUpdate = true + itemsTextureFlipped.offset.set(u + sizeX, 1 - v - sizeY) + + const material = new THREE.MeshStandardMaterial({ + map: itemsTexture, + transparent: true, + alphaTest: 0.1, + }) + const materialFlipped = new THREE.MeshStandardMaterial({ + map: itemsTextureFlipped, + transparent: true, + alphaTest: 0.1, + }) + const mesh = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 0), [ + new THREE.MeshBasicMaterial({ color: 0x00_00_00 }), new THREE.MeshBasicMaterial({ color: 0x00_00_00 }), + new THREE.MeshBasicMaterial({ color: 0x00_00_00 }), new THREE.MeshBasicMaterial({ color: 0x00_00_00 }), + material, materialFlipped, + ]) + + return { + mesh, + itemsTexture, + itemsTextureFlipped, + cleanup () { + itemsTexture.dispose() + itemsTextureFlipped.dispose() + material.dispose() + materialFlipped.dispose() + } + } +} + +/** + * Creates a complete 3D item mesh from a canvas texture + */ +export function createItemMeshFromCanvas ( + canvas: HTMLCanvasElement, + options: Create3DItemMeshOptions +): THREE.Mesh { + const { geometry } = create3DItemMesh(canvas, options) + + // Base color texture for the item + const colorTexture = new THREE.CanvasTexture(canvas) + colorTexture.magFilter = THREE.NearestFilter + colorTexture.minFilter = THREE.NearestFilter + colorTexture.wrapS = colorTexture.wrapT = THREE.ClampToEdgeWrapping + colorTexture.flipY = false // Important for canvas textures + colorTexture.needsUpdate = true + + // Material - no transparency, no alpha test needed for edges + const material = new THREE.MeshBasicMaterial({ + map: colorTexture, + side: THREE.DoubleSide, + transparent: true, + alphaTest: 0.1 + }) + + return new THREE.Mesh(geometry, material) +} diff --git a/renderer/viewer/three/panorama.ts b/renderer/viewer/three/panorama.ts new file mode 100644 index 00000000..254b980c --- /dev/null +++ b/renderer/viewer/three/panorama.ts @@ -0,0 +1,302 @@ +import { join } from 'path' +import * as THREE from 'three' +import { getSyncWorld } from 'renderer/playground/shared' +import { Vec3 } from 'vec3' +import * as tweenJs from '@tweenjs/tween.js' +import type { GraphicsInitOptions } from '../../../src/appViewer' +import { WorldDataEmitter } from '../lib/worldDataEmitter' +import { defaultWorldRendererConfig, WorldRendererCommon } from '../lib/worldrendererCommon' +import { getDefaultRendererState } from '../baseGraphicsBackend' +import { ResourcesManager } from '../../../src/resourcesManager' +import { getInitialPlayerStateRenderer } from '../lib/basePlayerState' +import { loadThreeJsTextureFromUrl, loadThreeJsTextureFromUrlSync } from './threeJsUtils' +import { WorldRendererThree } from './worldrendererThree' +import { EntityMesh } from './entity/EntityMesh' +import { DocumentRenderer } from './documentRenderer' +import { PANORAMA_VERSION } from './panoramaShared' + +const panoramaFiles = [ + 'panorama_3.png', // right (+x) + 'panorama_1.png', // left (-x) + 'panorama_4.png', // top (+y) + 'panorama_5.png', // bottom (-y) + 'panorama_0.png', // front (+z) + 'panorama_2.png', // back (-z) +] + +export class PanoramaRenderer { + private readonly camera: THREE.PerspectiveCamera + private scene: THREE.Scene + private readonly ambientLight: THREE.AmbientLight + private readonly directionalLight: THREE.DirectionalLight + private panoramaGroup: THREE.Object3D | null = null + private time = 0 + private readonly abortController = new AbortController() + private worldRenderer: WorldRendererCommon | WorldRendererThree | undefined + public WorldRendererClass = WorldRendererThree + public startTimes = new Map() + + constructor (private readonly documentRenderer: DocumentRenderer, private readonly options: GraphicsInitOptions, private readonly doWorldBlocksPanorama = false) { + this.scene = new THREE.Scene() + // #324568 + this.scene.background = new THREE.Color(0x32_45_68) + + // Add ambient light + this.ambientLight = new THREE.AmbientLight(0xcc_cc_cc) + this.scene.add(this.ambientLight) + + // Add directional light + this.directionalLight = new THREE.DirectionalLight(0xff_ff_ff, 0.5) + this.directionalLight.position.set(1, 1, 0.5).normalize() + this.directionalLight.castShadow = true + this.scene.add(this.directionalLight) + + this.camera = new THREE.PerspectiveCamera(85, this.documentRenderer.canvas.width / this.documentRenderer.canvas.height, 0.05, 1000) + this.camera.position.set(0, 0, 0) + this.camera.rotation.set(0, 0, 0) + } + + async start () { + if (this.doWorldBlocksPanorama) { + await this.worldBlocksPanorama() + } else { + this.addClassicPanorama() + } + + + this.documentRenderer.render = (sizeChanged = false) => { + if (sizeChanged) { + this.camera.aspect = this.documentRenderer.canvas.width / this.documentRenderer.canvas.height + this.camera.updateProjectionMatrix() + } + this.documentRenderer.renderer.render(this.scene, this.camera) + } + } + + async debugImageInFrontOfCamera () { + const image = await loadThreeJsTextureFromUrl(join('background', 'panorama_0.png')) + const mesh = new THREE.Mesh(new THREE.PlaneGeometry(1000, 1000), new THREE.MeshBasicMaterial({ map: image })) + mesh.position.set(0, 0, -500) + mesh.rotation.set(0, 0, 0) + this.scene.add(mesh) + } + + addClassicPanorama () { + const panorGeo = new THREE.BoxGeometry(1000, 1000, 1000) + const panorMaterials = [] as THREE.MeshBasicMaterial[] + const fadeInDuration = 200 + + // void this.debugImageInFrontOfCamera() + + for (const file of panoramaFiles) { + const load = async () => { + const { texture } = loadThreeJsTextureFromUrlSync(join('background', file)) + + // Instead of using repeat/offset to flip, we'll use the texture matrix + texture.matrixAutoUpdate = false + texture.matrix.set( + -1, 0, 1, 0, 1, 0, 0, 0, 1 + ) + + texture.wrapS = THREE.ClampToEdgeWrapping + texture.wrapT = THREE.ClampToEdgeWrapping + texture.minFilter = THREE.LinearFilter + texture.magFilter = THREE.LinearFilter + + const material = new THREE.MeshBasicMaterial({ + map: texture, + transparent: true, + side: THREE.DoubleSide, + depthWrite: false, + opacity: 0 // Start with 0 opacity + }) + + // Start fade-in when texture is loaded + this.startTimes.set(material, Date.now()) + panorMaterials.push(material) + } + + void load() + } + + const panoramaBox = new THREE.Mesh(panorGeo, panorMaterials) + panoramaBox.onBeforeRender = () => { + this.time += 0.01 + panoramaBox.rotation.y = Math.PI + this.time * 0.01 + panoramaBox.rotation.z = Math.sin(-this.time * 0.001) * 0.001 + + // Time-based fade in animation for each material + for (const material of panorMaterials) { + const startTime = this.startTimes.get(material) + if (startTime) { + const elapsed = Date.now() - startTime + const progress = Math.min(1, elapsed / fadeInDuration) + material.opacity = progress + } + } + } + + const group = new THREE.Object3D() + group.add(panoramaBox) + + // Add squids + for (let i = 0; i < 20; i++) { + const m = new EntityMesh('1.16.4', 'squid').mesh + m.position.set(Math.random() * 30 - 15, Math.random() * 20 - 10, Math.random() * 10 - 17) + m.rotation.set(0, Math.PI + Math.random(), -Math.PI / 4, 'ZYX') + const v = Math.random() * 0.01 + m.children[0].onBeforeRender = () => { + m.rotation.y += v + m.rotation.z = Math.cos(panoramaBox.rotation.y * 3) * Math.PI / 4 - Math.PI / 2 + } + group.add(m) + } + + this.scene.add(group) + this.panoramaGroup = group + } + + async worldBlocksPanorama () { + const version = PANORAMA_VERSION + const fullResourceManager = this.options.resourcesManager as ResourcesManager + fullResourceManager.currentConfig = { version, noInventoryGui: true, } + await fullResourceManager.updateAssetsData({ }) + if (this.abortController.signal.aborted) return + console.time('load panorama scene') + const world = getSyncWorld(version) + const PrismarineBlock = require('prismarine-block') + const Block = PrismarineBlock(version) + const fullBlocks = loadedData.blocksArray.filter(block => { + // if (block.name.includes('leaves')) return false + if (/* !block.name.includes('wool') && */!block.name.includes('stained_glass')/* && !block.name.includes('terracotta') */) return false + const b = Block.fromStateId(block.defaultState, 0) + if (b.shapes?.length !== 1) return false + const shape = b.shapes[0] + return shape[0] === 0 && shape[1] === 0 && shape[2] === 0 && shape[3] === 1 && shape[4] === 1 && shape[5] === 1 + }) + const Z = -15 + const sizeX = 100 + const sizeY = 100 + for (let x = -sizeX; x < sizeX; x++) { + for (let y = -sizeY; y < sizeY; y++) { + const block = fullBlocks[Math.floor(Math.random() * fullBlocks.length)] + world.setBlockStateId(new Vec3(x, y, Z), block.defaultState) + } + } + this.camera.updateProjectionMatrix() + this.camera.position.set(0.5, sizeY / 2 + 0.5, 0.5) + this.camera.rotation.set(0, 0, 0) + const initPos = new Vec3(...this.camera.position.toArray()) + const worldView = new WorldDataEmitter(world, 2, initPos) + // worldView.addWaitTime = 0 + if (this.abortController.signal.aborted) return + + this.worldRenderer = new this.WorldRendererClass( + this.documentRenderer.renderer, + this.options, + { + version, + worldView, + inWorldRenderingConfig: defaultWorldRendererConfig, + playerStateReactive: getInitialPlayerStateRenderer().reactive, + rendererState: getDefaultRendererState().reactive, + nonReactiveState: getDefaultRendererState().nonReactive + } + ) + if (this.worldRenderer instanceof WorldRendererThree) { + this.scene = this.worldRenderer.scene + } + void worldView.init(initPos) + + await this.worldRenderer.waitForChunksToRender() + if (this.abortController.signal.aborted) return + // add small camera rotation to side on mouse move depending on absolute position of the cursor + const { camera } = this + const initX = camera.position.x + const initY = camera.position.y + let prevTwin: tweenJs.Tween | undefined + document.body.addEventListener('pointermove', (e) => { + if (e.pointerType !== 'mouse') return + const pos = new THREE.Vector2(e.clientX, e.clientY) + const SCALE = 0.2 + /* -0.5 - 0.5 */ + const xRel = pos.x / window.innerWidth - 0.5 + const yRel = -(pos.y / window.innerHeight - 0.5) + prevTwin?.stop() + const to = { + x: initX + (xRel * SCALE), + y: initY + (yRel * SCALE) + } + prevTwin = new tweenJs.Tween(camera.position).to(to, 0) // todo use the number depending on diff // todo use the number depending on diff + // prevTwin.easing(tweenJs.Easing.Exponential.InOut) + prevTwin.start() + camera.updateProjectionMatrix() + }, { + signal: this.abortController.signal + }) + + console.timeEnd('load panorama scene') + } + + dispose () { + this.scene.clear() + this.worldRenderer?.destroy() + this.abortController.abort() + } +} + +// export class ClassicPanoramaRenderer { +// panoramaGroup: THREE.Object3D + +// constructor (private readonly backgroundFiles: string[], onRender: Array<(sizeChanged: boolean) => void>, addSquids = true) { +// const panorGeo = new THREE.BoxGeometry(1000, 1000, 1000) +// const loader = new THREE.TextureLoader() +// const panorMaterials = [] as THREE.MeshBasicMaterial[] + +// for (const file of this.backgroundFiles) { +// const texture = loader.load(file) + +// // Instead of using repeat/offset to flip, we'll use the texture matrix +// texture.matrixAutoUpdate = false +// texture.matrix.set( +// -1, 0, 1, 0, 1, 0, 0, 0, 1 +// ) + +// texture.wrapS = THREE.ClampToEdgeWrapping // Changed from RepeatWrapping +// texture.wrapT = THREE.ClampToEdgeWrapping // Changed from RepeatWrapping +// texture.minFilter = THREE.LinearFilter +// texture.magFilter = THREE.LinearFilter + +// panorMaterials.push(new THREE.MeshBasicMaterial({ +// map: texture, +// transparent: true, +// side: THREE.DoubleSide, +// depthWrite: false, +// })) +// } + +// const panoramaBox = new THREE.Mesh(panorGeo, panorMaterials) +// panoramaBox.onBeforeRender = () => { +// } + +// const group = new THREE.Object3D() +// group.add(panoramaBox) + +// if (addSquids) { +// // Add squids +// for (let i = 0; i < 20; i++) { +// const m = new EntityMesh('1.16.4', 'squid').mesh +// m.position.set(Math.random() * 30 - 15, Math.random() * 20 - 10, Math.random() * 10 - 17) +// m.rotation.set(0, Math.PI + Math.random(), -Math.PI / 4, 'ZYX') +// const v = Math.random() * 0.01 +// onRender.push(() => { +// m.rotation.y += v +// m.rotation.z = Math.cos(panoramaBox.rotation.y * 3) * Math.PI / 4 - Math.PI / 2 +// }) +// group.add(m) +// } +// } + +// this.panoramaGroup = group +// } +// } diff --git a/renderer/viewer/three/panoramaShared.ts b/renderer/viewer/three/panoramaShared.ts new file mode 100644 index 00000000..ad80367f --- /dev/null +++ b/renderer/viewer/three/panoramaShared.ts @@ -0,0 +1 @@ +export const PANORAMA_VERSION = '1.21.4' diff --git a/renderer/viewer/three/primitives.js b/renderer/viewer/three/primitives.js new file mode 100644 index 00000000..08c1c49e --- /dev/null +++ b/renderer/viewer/three/primitives.js @@ -0,0 +1,142 @@ +/* eslint-disable unicorn/no-abusive-eslint-disable */ +/* eslint-disable */ +const THREE = require('three') +const { MeshLine, MeshLineMaterial } = require('three.meshline') + +function getMesh(primitive, camera) { + if (primitive.type === 'line') { + const color = primitive.color ? primitive.color : 0xff0000 + const resolution = new THREE.Vector2(window.innerWidth / camera.zoom, window.innerHeight / camera.zoom) + const material = new MeshLineMaterial({ color, resolution, sizeAttenuation: false, lineWidth: 8 }) + + const points = [] + for (const p of primitive.points) { + points.push(p.x, p.y, p.z) + } + + const line = new MeshLine() + line.setPoints(points) + return new THREE.Mesh(line, material) + } else if (primitive.type === 'boxgrid') { + const color = primitive.color ? primitive.color : 'aqua' + + const sx = primitive.end.x - primitive.start.x + const sy = primitive.end.y - primitive.start.y + const sz = primitive.end.z - primitive.start.z + + const boxGeometry = new THREE.BoxBufferGeometry(sx, sy, sz, sx, sy, sz) + boxGeometry.attributes.positionStart = boxGeometry.attributes.position.clone() + + const gridGeometry = GridBoxGeometry(boxGeometry, false) + const grid = new THREE.LineSegments(gridGeometry, new THREE.LineBasicMaterial({ color })) + grid.position.x = primitive.start.x + sx / 2 + grid.position.y = primitive.start.y + sy / 2 + grid.position.z = primitive.start.z + sz / 2 + return grid + } else if (primitive.type === 'points') { + const color = primitive.color ? primitive.color : 'aqua' + const size = primitive.size ? primitive.size : 5 + const points = [] + for (const p of primitive.points) { + points.push(p.x, p.y, p.z) + } + const geometry = new THREE.BufferGeometry() + geometry.setAttribute('position', new THREE.Float32BufferAttribute(points, 3)) + const material = new THREE.PointsMaterial({ color, size, sizeAttenuation: false }) + return new THREE.Points(geometry, material) + } + return null +} + +class Primitives { + constructor(scene, camera) { + this.scene = scene + this.camera = camera + this.primitives = {} + } + + clear() { + for (const mesh of Object.values(this.primitives)) { + this.scene.remove(mesh) + disposeObject(mesh) + } + this.primitives = {} + } + + update(primitive) { + if (this.primitives[primitive.id]) { + this.scene.remove(this.primitives[primitive.id]) + disposeObject(this.primitives[primitive.id]) + delete this.primitives[primitive.id] + } + + const mesh = getMesh(primitive, this.camera) + if (!mesh) return + this.primitives[primitive.id] = mesh + this.scene.add(mesh) + } +} + +function GridBoxGeometry(geometry, independent) { + if (!(geometry instanceof THREE.BoxBufferGeometry)) { + console.log("GridBoxGeometry: the parameter 'geometry' has to be of the type THREE.BoxBufferGeometry") + return geometry + } + independent = independent !== undefined ? independent : false + + const newGeometry = new THREE.BoxBufferGeometry() + const position = geometry.attributes.position + newGeometry.attributes.position = independent === false ? position : position.clone() + + const segmentsX = geometry.parameters.widthSegments || 1 + const segmentsY = geometry.parameters.heightSegments || 1 + const segmentsZ = geometry.parameters.depthSegments || 1 + + let startIndex = 0 + const indexSide1 = indexSide(segmentsZ, segmentsY, startIndex) + startIndex += (segmentsZ + 1) * (segmentsY + 1) + const indexSide2 = indexSide(segmentsZ, segmentsY, startIndex) + startIndex += (segmentsZ + 1) * (segmentsY + 1) + const indexSide3 = indexSide(segmentsX, segmentsZ, startIndex) + startIndex += (segmentsX + 1) * (segmentsZ + 1) + const indexSide4 = indexSide(segmentsX, segmentsZ, startIndex) + startIndex += (segmentsX + 1) * (segmentsZ + 1) + const indexSide5 = indexSide(segmentsX, segmentsY, startIndex) + startIndex += (segmentsX + 1) * (segmentsY + 1) + const indexSide6 = indexSide(segmentsX, segmentsY, startIndex) + + let fullIndices = [] + fullIndices = fullIndices.concat(indexSide1) + fullIndices = fullIndices.concat(indexSide2) + fullIndices = fullIndices.concat(indexSide3) + fullIndices = fullIndices.concat(indexSide4) + fullIndices = fullIndices.concat(indexSide5) + fullIndices = fullIndices.concat(indexSide6) + + newGeometry.setIndex(fullIndices) + + function indexSide(x, y, shift) { + const indices = [] + for (let i = 0; i < y + 1; i++) { + let index11 = 0 + let index12 = 0 + for (let j = 0; j < x; j++) { + index11 = (x + 1) * i + j + index12 = index11 + 1 + const index21 = index11 + const index22 = index11 + (x + 1) + indices.push(shift + index11, shift + index12) + if (index22 < ((x + 1) * (y + 1) - 1)) { + indices.push(shift + index21, shift + index22) + } + } + if ((index12 + x + 1) <= ((x + 1) * (y + 1) - 1)) { + indices.push(shift + index12, shift + index12 + x + 1) + } + } + return indices + } + return newGeometry +} + +module.exports = { Primitives } diff --git a/renderer/viewer/three/renderSlot.ts b/renderer/viewer/three/renderSlot.ts new file mode 100644 index 00000000..321633eb --- /dev/null +++ b/renderer/viewer/three/renderSlot.ts @@ -0,0 +1,82 @@ +import { getRenamedData } from 'flying-squid/dist/blockRenames' +import { BlockModel } from 'mc-assets' +import { versionToNumber } from 'mc-assets/dist/utils' +import type { ResourcesManagerCommon } from '../../../src/resourcesManager' + +export type ResolvedItemModelRender = { + modelName: string, + originalItemName?: string +} + +export const renderSlot = (model: ResolvedItemModelRender, resourcesManager: ResourcesManagerCommon, debugIsQuickbar = false, fullBlockModelSupport = false): { + texture: string, + blockData: Record & { resolvedModel: BlockModel } | null, + scale: number | null, + slice: number[] | null, + modelName: string | null, +} => { + let itemModelName = model.modelName + const isItem = loadedData.itemsByName[itemModelName] + + // #region normalize item name + if (versionToNumber(bot.version) < versionToNumber('1.13')) itemModelName = getRenamedData(isItem ? 'items' : 'blocks', itemModelName, bot.version, '1.13.1') as string + // #endregion + + + let itemTexture + + if (!fullBlockModelSupport) { + const atlas = resourcesManager.currentResources?.guiAtlas?.json + // todo atlas holds all rendered blocks, not all possibly rendered item/block models, need to request this on demand instead (this is how vanilla works) + const tryGetAtlasTexture = (name?: string) => name && atlas?.textures[name.replace('minecraft:', '').replace('block/', '').replace('blocks/', '').replace('item/', '').replace('items/', '').replace('_inventory', '')] + const item = tryGetAtlasTexture(itemModelName) ?? tryGetAtlasTexture(model.originalItemName) + if (item) { + const x = item.u * atlas.width + const y = item.v * atlas.height + return { + texture: 'gui', + slice: [x, y, atlas.tileSize, atlas.tileSize], + scale: 0.25, + blockData: null, + modelName: null + } + } + } + + const blockToTopTexture = (r) => r.top ?? r + + try { + if (!appViewer.resourcesManager.currentResources?.itemsRenderer) throw new Error('Items renderer is not available') + itemTexture = + appViewer.resourcesManager.currentResources.itemsRenderer.getItemTexture(itemModelName, {}, false, fullBlockModelSupport) + ?? (model.originalItemName ? appViewer.resourcesManager.currentResources.itemsRenderer.getItemTexture(model.originalItemName, {}, false, fullBlockModelSupport) : undefined) + ?? appViewer.resourcesManager.currentResources.itemsRenderer.getItemTexture('item/missing_texture')! + } catch (err) { + // get resourcepack from resource manager + reportError?.(`Failed to render item ${itemModelName} (original: ${model.originalItemName}) on ${bot.version} (resourcepack: TODO!): ${err.stack}`) + itemTexture = blockToTopTexture(appViewer.resourcesManager.currentResources!.itemsRenderer.getItemTexture('errored')!) + } + + itemTexture ??= blockToTopTexture(appViewer.resourcesManager.currentResources!.itemsRenderer.getItemTexture('unknown')!) + + + if ('type' in itemTexture) { + // is item + return { + texture: itemTexture.type, + slice: itemTexture.slice, + modelName: itemModelName, + blockData: null, + scale: null + } + } else { + // is block + return { + texture: 'blocks', + blockData: itemTexture, + modelName: itemModelName, + slice: null, + scale: null + } + } +} diff --git a/renderer/viewer/three/skyboxRenderer.ts b/renderer/viewer/three/skyboxRenderer.ts new file mode 100644 index 00000000..fb9edae6 --- /dev/null +++ b/renderer/viewer/three/skyboxRenderer.ts @@ -0,0 +1,406 @@ +import * as THREE from 'three' +import { DebugGui } from '../lib/DebugGui' + +export const DEFAULT_TEMPERATURE = 0.75 + +export class SkyboxRenderer { + private texture: THREE.Texture | null = null + private mesh: THREE.Mesh | null = null + private skyMesh: THREE.Mesh | null = null + private voidMesh: THREE.Mesh | null = null + + // World state + private worldTime = 0 + private partialTicks = 0 + private viewDistance = 4 + private temperature = DEFAULT_TEMPERATURE + private inWater = false + private waterBreathing = false + private fogBrightness = 0 + private prevFogBrightness = 0 + private readonly fogOrangeness = 0 // Debug property to control sky color orangeness + private readonly distanceFactor = 2.7 + + private readonly brightnessAtPosition = 1 + debugGui: DebugGui + + constructor (private readonly scene: THREE.Scene, public defaultSkybox: boolean, public initialImage: string | null) { + this.debugGui = new DebugGui('skybox_renderer', this, [ + 'temperature', + 'worldTime', + 'inWater', + 'waterBreathing', + 'fogOrangeness', + 'brightnessAtPosition', + 'distanceFactor' + ], { + brightnessAtPosition: { min: 0, max: 1, step: 0.01 }, + temperature: { min: 0, max: 1, step: 0.01 }, + worldTime: { min: 0, max: 24_000, step: 1 }, + fogOrangeness: { min: -1, max: 1, step: 0.01 }, + distanceFactor: { min: 0, max: 5, step: 0.01 }, + }) + + if (!initialImage) { + this.createGradientSky() + } + // this.debugGui.activate() + } + + async init () { + if (this.initialImage) { + await this.setSkyboxImage(this.initialImage) + } + } + + async setSkyboxImage (imageUrl: string) { + // Dispose old textures if they exist + if (this.texture) { + this.texture.dispose() + } + + // Load the equirectangular texture + const textureLoader = new THREE.TextureLoader() + this.texture = await new Promise((resolve) => { + textureLoader.load( + imageUrl, + (texture) => { + texture.mapping = THREE.EquirectangularReflectionMapping + texture.encoding = THREE.sRGBEncoding + // Keep pixelated look + texture.minFilter = THREE.NearestFilter + texture.magFilter = THREE.NearestFilter + texture.needsUpdate = true + resolve(texture) + } + ) + }) + + // Create or update the skybox + if (this.mesh) { + // Just update the texture on the existing material + this.mesh.material.map = this.texture + this.mesh.material.needsUpdate = true + } else { + // Create a large sphere geometry for the skybox + const geometry = new THREE.SphereGeometry(500, 60, 40) + // Flip the geometry inside out + geometry.scale(-1, 1, 1) + + // Create material using the loaded texture + const material = new THREE.MeshBasicMaterial({ + map: this.texture, + side: THREE.FrontSide // Changed to FrontSide since we're flipping the geometry + }) + + // Create and add the skybox mesh + this.mesh = new THREE.Mesh(geometry, material) + this.scene.add(this.mesh) + } + } + + update (cameraPosition: THREE.Vector3, newViewDistance: number) { + if (newViewDistance !== this.viewDistance) { + this.viewDistance = newViewDistance + this.updateSkyColors() + } + + if (this.mesh) { + // Update skybox position + this.mesh.position.copy(cameraPosition) + } else if (this.skyMesh) { + // Update gradient sky position + this.skyMesh.position.copy(cameraPosition) + this.voidMesh?.position.copy(cameraPosition) + this.updateSkyColors() // Update colors based on time of day + } + } + + // Update world time + updateTime (timeOfDay: number, partialTicks = 0) { + if (this.debugGui.visible) return + this.worldTime = timeOfDay + this.partialTicks = partialTicks + this.updateSkyColors() + } + + // Update view distance + updateViewDistance (viewDistance: number) { + this.viewDistance = viewDistance + this.updateSkyColors() + } + + // Update temperature (for biome support) + updateTemperature (temperature: number) { + if (this.debugGui.visible) return + this.temperature = temperature + this.updateSkyColors() + } + + // Update water state + updateWaterState (inWater: boolean, waterBreathing: boolean) { + if (this.debugGui.visible) return + this.inWater = inWater + this.waterBreathing = waterBreathing + this.updateSkyColors() + } + + // Update default skybox setting + updateDefaultSkybox (defaultSkybox: boolean) { + if (this.debugGui.visible) return + this.defaultSkybox = defaultSkybox + this.updateSkyColors() + } + + private createGradientSky () { + const size = 64 + const scale = 256 / size + 2 + + { + const geometry = new THREE.PlaneGeometry(size * scale * 2, size * scale * 2) + geometry.rotateX(-Math.PI / 2) + geometry.translate(0, 16, 0) + + const material = new THREE.MeshBasicMaterial({ + color: 0xff_ff_ff, + side: THREE.DoubleSide, + depthTest: false + }) + + this.skyMesh = new THREE.Mesh(geometry, material) + this.scene.add(this.skyMesh) + } + + { + const geometry = new THREE.PlaneGeometry(size * scale * 2, size * scale * 2) + geometry.rotateX(-Math.PI / 2) + geometry.translate(0, -16, 0) + + const material = new THREE.MeshBasicMaterial({ + color: 0xff_ff_ff, + side: THREE.DoubleSide, + depthTest: false + }) + + this.voidMesh = new THREE.Mesh(geometry, material) + this.scene.add(this.voidMesh) + } + + this.updateSkyColors() + } + + private getFogColor (partialTicks = 0): THREE.Vector3 { + const angle = this.getCelestialAngle(partialTicks) + let rotation = Math.cos(angle * Math.PI * 2) * 2 + 0.5 + rotation = Math.max(0, Math.min(1, rotation)) + + let x = 0.752_941_2 + let y = 0.847_058_83 + let z = 1 + + x *= (rotation * 0.94 + 0.06) + y *= (rotation * 0.94 + 0.06) + z *= (rotation * 0.91 + 0.09) + + return new THREE.Vector3(x, y, z) + } + + private getSkyColor (x = 0, z = 0, partialTicks = 0): THREE.Vector3 { + const angle = this.getCelestialAngle(partialTicks) + let brightness = Math.cos(angle * 3.141_593 * 2) * 2 + 0.5 + + if (brightness < 0) brightness = 0 + if (brightness > 1) brightness = 1 + + const temperature = this.getTemperature(x, z) + const rgb = this.getSkyColorByTemp(temperature) + + const red = ((rgb >> 16) & 0xff) / 255 + const green = ((rgb >> 8) & 0xff) / 255 + const blue = (rgb & 0xff) / 255 + + return new THREE.Vector3( + red * brightness, + green * brightness, + blue * brightness + ) + } + + private calculateCelestialAngle (time: number, partialTicks: number): number { + const modTime = (time % 24_000) + let angle = (modTime + partialTicks) / 24_000 - 0.25 + + if (angle < 0) { + angle++ + } + if (angle > 1) { + angle-- + } + + angle = 1 - ((Math.cos(angle * Math.PI) + 1) / 2) + angle += (angle - angle) / 3 + + return angle + } + + private getCelestialAngle (partialTicks: number): number { + return this.calculateCelestialAngle(this.worldTime, partialTicks) + } + + private getTemperature (x: number, z: number): number { + return this.temperature + } + + private getSkyColorByTemp (temperature: number): number { + temperature /= 3 + if (temperature < -1) temperature = -1 + if (temperature > 1) temperature = 1 + + // Apply debug fog orangeness to hue - positive values make it more orange, negative make it less orange + const baseHue = 0.622_222_2 - temperature * 0.05 + // Orange is around hue 0.08-0.15, so we need to shift from blue-purple (0.62) toward orange + // Use a more dramatic shift and also increase saturation for more noticeable effect + const orangeHue = 0.12 // Orange hue value + const hue = this.fogOrangeness > 0 + ? baseHue + (orangeHue - baseHue) * this.fogOrangeness * 0.8 // Blend toward orange + : baseHue + this.fogOrangeness * 0.1 // Subtle shift for negative values + const saturation = 0.5 + temperature * 0.1 + Math.abs(this.fogOrangeness) * 0.3 // Increase saturation with orangeness + const brightness = 1 + + return this.hsbToRgb(hue, saturation, brightness) + } + + private hsbToRgb (hue: number, saturation: number, brightness: number): number { + let r = 0; let g = 0; let b = 0 + if (saturation === 0) { + r = g = b = Math.floor(brightness * 255 + 0.5) + } else { + const h = (hue - Math.floor(hue)) * 6 + const f = h - Math.floor(h) + const p = brightness * (1 - saturation) + const q = brightness * (1 - saturation * f) + const t = brightness * (1 - (saturation * (1 - f))) + switch (Math.floor(h)) { + case 0: + r = Math.floor(brightness * 255 + 0.5) + g = Math.floor(t * 255 + 0.5) + b = Math.floor(p * 255 + 0.5) + break + case 1: + r = Math.floor(q * 255 + 0.5) + g = Math.floor(brightness * 255 + 0.5) + b = Math.floor(p * 255 + 0.5) + break + case 2: + r = Math.floor(p * 255 + 0.5) + g = Math.floor(brightness * 255 + 0.5) + b = Math.floor(t * 255 + 0.5) + break + case 3: + r = Math.floor(p * 255 + 0.5) + g = Math.floor(q * 255 + 0.5) + b = Math.floor(brightness * 255 + 0.5) + break + case 4: + r = Math.floor(t * 255 + 0.5) + g = Math.floor(p * 255 + 0.5) + b = Math.floor(brightness * 255 + 0.5) + break + case 5: + r = Math.floor(brightness * 255 + 0.5) + g = Math.floor(p * 255 + 0.5) + b = Math.floor(q * 255 + 0.5) + break + } + } + return 0xff_00_00_00 | (r << 16) | (g << 8) | (Math.trunc(b)) + } + + private updateSkyColors () { + if (!this.skyMesh || !this.voidMesh) return + + // If default skybox is disabled, hide the skybox meshes + if (!this.defaultSkybox) { + this.skyMesh.visible = false + this.voidMesh.visible = false + if (this.mesh) { + this.mesh.visible = false + } + return + } + + // Show skybox meshes when default skybox is enabled + this.skyMesh.visible = true + this.voidMesh.visible = true + if (this.mesh) { + this.mesh.visible = true + } + + // Update fog brightness with smooth transition + this.prevFogBrightness = this.fogBrightness + const renderDistance = this.viewDistance / 32 + const targetBrightness = this.brightnessAtPosition * (1 - renderDistance) + renderDistance + this.fogBrightness += (targetBrightness - this.fogBrightness) * 0.1 + + // Handle water fog + if (this.inWater) { + const waterViewDistance = this.waterBreathing ? 100 : 5 + this.scene.fog = new THREE.Fog(new THREE.Color(0, 0, 1), 0.0025, waterViewDistance) + this.scene.background = new THREE.Color(0, 0, 1) + + // Update sky and void colors for underwater effect + ;(this.skyMesh.material as THREE.MeshBasicMaterial).color.set(new THREE.Color(0, 0, 1)) + ;(this.voidMesh.material as THREE.MeshBasicMaterial).color.set(new THREE.Color(0, 0, 0.6)) + return + } + + // Normal sky colors + const viewDistance = this.viewDistance * 16 + const viewFactor = 1 - (0.25 + 0.75 * this.viewDistance / 32) ** 0.25 + + const angle = this.getCelestialAngle(this.partialTicks) + const skyColor = this.getSkyColor(0, 0, this.partialTicks) + const fogColor = this.getFogColor(this.partialTicks) + + const brightness = Math.cos(angle * Math.PI * 2) * 2 + 0.5 + const clampedBrightness = Math.max(0, Math.min(1, brightness)) + + // Interpolate fog brightness + const interpolatedBrightness = this.prevFogBrightness + (this.fogBrightness - this.prevFogBrightness) * this.partialTicks + + const red = (fogColor.x + (skyColor.x - fogColor.x) * viewFactor) * clampedBrightness * interpolatedBrightness + const green = (fogColor.y + (skyColor.y - fogColor.y) * viewFactor) * clampedBrightness * interpolatedBrightness + const blue = (fogColor.z + (skyColor.z - fogColor.z) * viewFactor) * clampedBrightness * interpolatedBrightness + + this.scene.background = new THREE.Color(red, green, blue) + this.scene.fog = new THREE.Fog(new THREE.Color(red, green, blue), 0.0025, viewDistance * this.distanceFactor) + + ;(this.skyMesh.material as THREE.MeshBasicMaterial).color.set(new THREE.Color(skyColor.x, skyColor.y, skyColor.z)) + ;(this.voidMesh.material as THREE.MeshBasicMaterial).color.set(new THREE.Color( + skyColor.x * 0.2 + 0.04, + skyColor.y * 0.2 + 0.04, + skyColor.z * 0.6 + 0.1 + )) + } + + dispose () { + if (this.texture) { + this.texture.dispose() + } + if (this.mesh) { + this.mesh.geometry.dispose() + ;(this.mesh.material as THREE.Material).dispose() + this.scene.remove(this.mesh) + } + if (this.skyMesh) { + this.skyMesh.geometry.dispose() + ;(this.skyMesh.material as THREE.Material).dispose() + this.scene.remove(this.skyMesh) + } + if (this.voidMesh) { + this.voidMesh.geometry.dispose() + ;(this.voidMesh.material as THREE.Material).dispose() + this.scene.remove(this.voidMesh) + } + } +} diff --git a/renderer/viewer/three/threeJsMedia.ts b/renderer/viewer/three/threeJsMedia.ts new file mode 100644 index 00000000..582273d1 --- /dev/null +++ b/renderer/viewer/three/threeJsMedia.ts @@ -0,0 +1,599 @@ +import * as THREE from 'three' +import { sendVideoPlay, sendVideoStop } from '../../../src/customChannels' +import { WorldRendererThree } from './worldrendererThree' +import { ThreeJsSound } from './threeJsSound' + +interface MediaProperties { + position: { x: number, y: number, z: number } + size: { width: number, height: number } + src: string + rotation?: 0 | 1 | 2 | 3 // 0-3 for 0°, 90°, 180°, 270° + doubleSide?: boolean + background?: number // Hexadecimal color (e.g., 0x000000 for black) + opacity?: number // 0-1 value for transparency + uvMapping?: { startU: number, endU: number, startV: number, endV: number } + allowOrigins?: string[] | boolean + loop?: boolean + volume?: number + autoPlay?: boolean + + allowLighting?: boolean +} + +export class ThreeJsMedia { + customMedia = new Map void + positionalAudio?: THREE.PositionalAudio + hadAutoPlayError?: boolean + }>() + + constructor (private readonly worldRenderer: WorldRendererThree) { + this.worldRenderer.onWorldSwitched.push(() => { + this.onWorldGone() + }) + + this.worldRenderer.onRender.push(() => { + this.render() + }) + } + + onWorldGone () { + for (const [id, videoData] of this.customMedia.entries()) { + this.destroyMedia(id) + } + } + + onWorldStop () { + for (const [id, videoData] of this.customMedia.entries()) { + this.setVideoPlaying(id, false) + } + } + + private createErrorTexture (width: number, height: number, background = 0x00_00_00, error = 'Failed to load'): THREE.CanvasTexture { + const canvas = document.createElement('canvas') + const MAX_DIMENSION = 100 + + canvas.width = MAX_DIMENSION + canvas.height = MAX_DIMENSION + + const ctx = canvas.getContext('2d') + if (!ctx) return new THREE.CanvasTexture(canvas) + + // Clear with transparent background + ctx.clearRect(0, 0, canvas.width, canvas.height) + + // Add background color + ctx.fillStyle = `rgba(${background >> 16 & 255}, ${background >> 8 & 255}, ${background & 255}, 0.5)` + ctx.fillRect(0, 0, canvas.width, canvas.height) + + // Add red text with size relative to canvas dimensions + ctx.fillStyle = '#ff0000' + ctx.font = 'bold 10px sans-serif' + ctx.textAlign = 'center' + ctx.textBaseline = 'middle' + ctx.fillText(error, canvas.width / 2, canvas.height / 2, canvas.width) + + const texture = new THREE.CanvasTexture(canvas) + texture.minFilter = THREE.LinearFilter + texture.magFilter = THREE.LinearFilter + return texture + } + + private createBackgroundTexture (width: number, height: number, color = 0x00_00_00, opacity = 1): THREE.CanvasTexture { + const canvas = document.createElement('canvas') + canvas.width = 1 + canvas.height = 1 + + const ctx = canvas.getContext('2d') + if (!ctx) return new THREE.CanvasTexture(canvas) + + // Convert hex color to rgba + const r = (color >> 16) & 255 + const g = (color >> 8) & 255 + const b = color & 255 + + ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${opacity})` + ctx.fillRect(0, 0, 1, 1) + + const texture = new THREE.CanvasTexture(canvas) + texture.minFilter = THREE.NearestFilter + texture.magFilter = THREE.NearestFilter + return texture + } + + validateOrigin (src: string, allowOrigins: string[] | boolean) { + if (allowOrigins === true) return true + if (allowOrigins === false) return false + const url = new URL(src) + return allowOrigins.some(origin => url.origin.endsWith(origin)) + } + + onPageInteraction () { + for (const [id, videoData] of this.customMedia.entries()) { + if (videoData.hadAutoPlayError) { + videoData.hadAutoPlayError = false + void videoData.video?.play() + .catch(err => { + if (err.name === 'AbortError') return + console.error('Failed to play video:', err) + videoData.hadAutoPlayError = true + return true + }) + .then((fromCatch) => { + if (fromCatch) return + if (videoData.positionalAudio) { + // workaround: audio has to be recreated + this.addMedia(id, videoData.props) + } + }) + } + } + } + + addMedia (id: string, props: MediaProperties) { + const originalProps = structuredClone(props) + this.destroyMedia(id) + + const { scene } = this.worldRenderer + + const originSecurityError = props.allowOrigins !== undefined && !this.validateOrigin(props.src, props.allowOrigins) + if (originSecurityError) { + console.warn('Remote resource blocked due to security policy', props.src, 'allowed origins:', props.allowOrigins, 'you can control it with `remoteContentNotSameOrigin` option') + props.src = '' + } + + const isImage = props.src.endsWith('.png') || props.src.endsWith('.jpg') || props.src.endsWith('.jpeg') + + let video: HTMLVideoElement | undefined + let positionalAudio: THREE.PositionalAudio | undefined + if (!isImage) { + video = document.createElement('video') + video.src = props.src.endsWith('.gif') ? props.src.replace('.gif', '.mp4') : props.src + video.loop = props.loop ?? true + video.volume = props.volume ?? 1 + video.playsInline = true + video.crossOrigin = 'anonymous' + + // Create positional audio + const soundSystem = this.worldRenderer.soundSystem as ThreeJsSound + soundSystem.initAudioListener() + if (!soundSystem.audioListener) throw new Error('Audio listener not initialized') + positionalAudio = new THREE.PositionalAudio(soundSystem.audioListener) + positionalAudio.setRefDistance(6) + positionalAudio.setVolume(props.volume ?? 1) + scene.add(positionalAudio) + positionalAudio.position.set(props.position.x, props.position.y, props.position.z) + + // Connect video to positional audio + positionalAudio.setMediaElementSource(video) + positionalAudio.connect() + + video.addEventListener('pause', () => { + positionalAudio?.pause() + sendVideoStop(id, 'paused', video!.currentTime) + }) + video.addEventListener('play', () => { + positionalAudio?.play() + sendVideoPlay(id) + }) + video.addEventListener('seeked', () => { + if (positionalAudio && video) { + positionalAudio.offset = video.currentTime + } + }) + video.addEventListener('stalled', () => { + sendVideoStop(id, 'stalled', video!.currentTime) + }) + video.addEventListener('waiting', () => { + sendVideoStop(id, 'waiting', video!.currentTime) + }) + video.addEventListener('error', ({ error }) => { + sendVideoStop(id, `error: ${error}`, video!.currentTime) + }) + video.addEventListener('ended', () => { + sendVideoStop(id, 'ended', video!.currentTime) + }) + } + + + // Create background texture first + const backgroundTexture = this.createBackgroundTexture( + props.size.width, + props.size.height, + props.background, + // props.opacity ?? 1 + ) + + const handleError = (text?: string) => { + const errorTexture = this.createErrorTexture(props.size.width, props.size.height, props.background, text) + material.map = errorTexture + material.needsUpdate = true + } + + // Create a plane geometry with configurable UV mapping + const geometry = new THREE.PlaneGeometry(1, 1) + + // Create material with initial properties using background texture + const MaterialClass = props.allowLighting ? THREE.MeshLambertMaterial : THREE.MeshBasicMaterial + const material = new MaterialClass({ + map: backgroundTexture, + transparent: true, + side: props.doubleSide ? THREE.DoubleSide : THREE.FrontSide, + alphaTest: 0.1 + }) + + const texture = video + ? new THREE.VideoTexture(video) + : new THREE.TextureLoader().load(props.src, () => { + if (this.customMedia.get(id)?.texture === texture) { + material.map = texture + material.needsUpdate = true + } + }, undefined, () => handleError()) // todo cache + texture.minFilter = THREE.NearestFilter + texture.magFilter = THREE.NearestFilter + // texture.format = THREE.RGBAFormat + // texture.colorSpace = THREE.SRGBColorSpace + texture.generateMipmaps = false + + // Create inner mesh for offsets + const mesh = new THREE.Mesh(geometry, material) + + const { mesh: panel } = this.positionMeshExact(mesh, THREE.MathUtils.degToRad((props.rotation ?? 0) * 90), props.position, props.size.width, props.size.height) + + scene.add(panel) + + if (video) { + // Start playing the video + video.play().catch(err => { + if (err.name === 'AbortError') return + console.error('Failed to play video:', err) + videoData.hadAutoPlayError = true + handleError(err.name === 'NotAllowedError' ? 'Waiting for user interaction' : 'Failed to auto play') + }) + + // Update texture in animation loop + mesh.onBeforeRender = () => { + if (video.readyState === video.HAVE_ENOUGH_DATA && (!video.paused || !videoData?.hadAutoPlayError)) { + if (material.map !== texture) { + material.map = texture + material.needsUpdate = true + } + texture.needsUpdate = true + + // Sync audio position with video position + if (positionalAudio) { + positionalAudio.position.copy(panel.position) + positionalAudio.rotation.copy(panel.rotation) + } + } + } + } + + // UV mapping configuration + const updateUVMapping = (config: { startU: number, endU: number, startV: number, endV: number }) => { + const uvs = geometry.attributes.uv.array as Float32Array + uvs[0] = config.startU + uvs[1] = config.startV + uvs[2] = config.endU + uvs[3] = config.startV + uvs[4] = config.endU + uvs[5] = config.endV + uvs[6] = config.startU + uvs[7] = config.endV + geometry.attributes.uv.needsUpdate = true + } + + // Apply initial UV mapping if provided + if (props.uvMapping) { + updateUVMapping(props.uvMapping) + } + + const videoData = { + mesh: panel, + video, + texture, + updateUVMapping, + positionalAudio, + props: originalProps, + hadAutoPlayError: false + } + // Store video data + this.customMedia.set(id, videoData) + + return id + } + + render () { + for (const [id, videoData] of this.customMedia.entries()) { + const chunkX = Math.floor(videoData.props.position.x / 16) * 16 + const chunkZ = Math.floor(videoData.props.position.z / 16) * 16 + const sectionY = Math.floor(videoData.props.position.y / 16) * 16 + + const chunkKey = `${chunkX},${chunkZ}` + const sectionKey = `${chunkX},${sectionY},${chunkZ}` + videoData.mesh.visible = !!this.worldRenderer.sectionObjects[sectionKey] || !!this.worldRenderer.finishedChunks[chunkKey] + } + } + + setVideoPlaying (id: string, playing: boolean) { + const videoData = this.customMedia.get(id) + if (videoData?.video) { + if (playing) { + videoData.video.play().catch(console.error) + } else { + videoData.video.pause() + } + } + } + + setVideoSeeking (id: string, seconds: number) { + const videoData = this.customMedia.get(id) + if (videoData?.video) { + videoData.video.currentTime = seconds + } + } + + setVideoVolume (id: string, volume: number) { + const videoData = this.customMedia.get(id) + if (videoData?.video) { + videoData.video.volume = volume + } + } + + setVideoSpeed (id: string, speed: number) { + const videoData = this.customMedia.get(id) + if (videoData?.video) { + videoData.video.playbackRate = speed + } + } + + destroyMedia (id: string) { + const { scene } = this.worldRenderer + const mediaData = this.customMedia.get(id) + if (mediaData) { + if (mediaData.video) { + mediaData.video.pause() + mediaData.video.src = '' + mediaData.video.remove() + } + if (mediaData.positionalAudio) { + // mediaData.positionalAudio.stop() + // mediaData.positionalAudio.disconnect() + scene.remove(mediaData.positionalAudio) + } + scene.remove(mediaData.mesh) + mediaData.texture.dispose() + + // Get the inner mesh from the group + const mesh = mediaData.mesh.children[0] as THREE.Mesh + if (mesh) { + mesh.geometry.dispose() + if (mesh.material instanceof THREE.Material) { + mesh.material.dispose() + } + } + + this.customMedia.delete(id) + } + } + + /** + * Positions a mesh exactly at startPosition and extends it along the rotation direction + * with the specified width and height + * + * @param mesh The mesh to position + * @param rotation Rotation in radians (applied to Y axis) + * @param startPosition The exact starting position (corner) of the mesh + * @param width Width of the mesh + * @param height Height of the mesh + * @param depth Depth of the mesh (default: 1) + * @returns The positioned mesh for chaining + */ + positionMeshExact ( + mesh: THREE.Mesh, + rotation: number, + startPosition: { x: number, y: number, z: number }, + width: number, + height: number, + depth = 1 + ) { + // avoid z-fighting with the ground plane + if (rotation === 0) { + startPosition.z += 0.001 + } + if (rotation === Math.PI / 2) { + startPosition.x -= 0.001 + } + if (rotation === Math.PI) { + startPosition.z -= 0.001 + } + if (rotation === 3 * Math.PI / 2) { + startPosition.x += 0.001 + } + + // rotation normalize coordinates + if (rotation === 0) { + startPosition.z += 1 + } + if (rotation === Math.PI) { + startPosition.x += 1 + } + if (rotation === 3 * Math.PI / 2) { + startPosition.z += 1 + startPosition.x += 1 + } + + + // First, clean up any previous transformations + mesh.matrix.identity() + mesh.position.set(0, 0, 0) + mesh.rotation.set(0, 0, 0) + mesh.scale.set(1, 1, 1) + + // By default, PlaneGeometry creates a plane in the XY plane (facing +Z) + // We need to set up the proper orientation for our use case + // Rotate the plane to face the correct direction based on the rotation parameter + mesh.rotateY(rotation) + if (rotation === Math.PI / 2 || rotation === 3 * Math.PI / 2) { + mesh.rotateZ(-Math.PI) + mesh.rotateX(-Math.PI) + } + + // Scale it to the desired size + mesh.scale.set(width, height, depth) + + // For a PlaneGeometry, if we want the corner at the origin, we need to offset + // by half the dimensions after scaling + mesh.geometry.translate(0.5, 0.5, 0) + mesh.geometry.attributes.position.needsUpdate = true + + // Now place the mesh at the start position + mesh.position.set(startPosition.x, startPosition.y, startPosition.z) + + // Create a group to hold our mesh and markers + const debugGroup = new THREE.Group() + debugGroup.add(mesh) + + // Add a marker at the starting position (should be exactly at pos) + const startMarker = new THREE.Mesh( + new THREE.BoxGeometry(0.1, 0.1, 0.1), + new THREE.MeshBasicMaterial({ color: 0xff_00_00 }) + ) + startMarker.position.copy(new THREE.Vector3(startPosition.x, startPosition.y, startPosition.z)) + debugGroup.add(startMarker) + + // Add a marker at the end position (width units away in the rotated direction) + const endX = startPosition.x + Math.cos(rotation) * width + const endZ = startPosition.z + Math.sin(rotation) * width + const endYMarker = new THREE.Mesh( + new THREE.BoxGeometry(0.1, 0.1, 0.1), + new THREE.MeshBasicMaterial({ color: 0x00_00_ff }) + ) + endYMarker.position.set(startPosition.x, startPosition.y + height, startPosition.z) + debugGroup.add(endYMarker) + + // Add a marker at the width endpoint + const endWidthMarker = new THREE.Mesh( + new THREE.BoxGeometry(0.1, 0.1, 0.1), + new THREE.MeshBasicMaterial({ color: 0xff_ff_00 }) + ) + endWidthMarker.position.set(endX, startPosition.y, endZ) + debugGroup.add(endWidthMarker) + + // Add a marker at the corner diagonal endpoint (both width and height) + const endCornerMarker = new THREE.Mesh( + new THREE.BoxGeometry(0.1, 0.1, 0.1), + new THREE.MeshBasicMaterial({ color: 0xff_00_ff }) + ) + endCornerMarker.position.set(endX, startPosition.y + height, endZ) + debugGroup.add(endCornerMarker) + + // Also add a visual helper to show the rotation direction + const directionHelper = new THREE.ArrowHelper( + new THREE.Vector3(Math.cos(rotation), 0, Math.sin(rotation)), + new THREE.Vector3(startPosition.x, startPosition.y, startPosition.z), + 1, + 0xff_00_00 + ) + debugGroup.add(directionHelper) + + return { + mesh, + debugGroup + } + } + + createTestCanvasTexture () { + const canvas = document.createElement('canvas') + canvas.width = 100 + canvas.height = 100 + const ctx = canvas.getContext('2d') + if (!ctx) return null + ctx.font = '10px Arial' + ctx.fillStyle = 'red' + ctx.fillText('Hello World', 0, 10) // at + return new THREE.CanvasTexture(canvas) + } + + /** + * Creates a test mesh that demonstrates the exact positioning + */ + addTestMeshExact (rotationNum: number) { + const pos = window.cursorBlockRel().position + console.log('Creating exact positioned test mesh at:', pos) + + // Create a plane mesh with a wireframe to visualize boundaries + const plane = new THREE.Mesh( + new THREE.PlaneGeometry(1, 1), + new THREE.MeshBasicMaterial({ + // side: THREE.DoubleSide, + map: this.createTestCanvasTexture() + }) + ) + + const width = 2 + const height = 1 + const rotation = THREE.MathUtils.degToRad(rotationNum * 90) // 90 degrees in radians + + // Position the mesh exactly where we want it + const { debugGroup } = this.positionMeshExact(plane, rotation, pos, width, height) + + this.worldRenderer.scene.add(debugGroup) + console.log('Exact test mesh added with dimensions:', width, height, 'and rotation:', rotation) + } + + lastCheck = 0 + THROTTLE_TIME = 100 + tryIntersectMedia () { + // hack: need to optimize this by pulling only in distance of interaction instead and throttle + if (this.customMedia.size === 0) return + if (Date.now() - this.lastCheck < this.THROTTLE_TIME) return + this.lastCheck = Date.now() + + const { camera, scene } = this.worldRenderer + const raycaster = new THREE.Raycaster() + + // Get mouse position at center of screen + const mouse = new THREE.Vector2(0, 0) + + // Update the raycaster + raycaster.setFromCamera(mouse, camera) + + // Check intersection with all objects in scene + const intersects = raycaster.intersectObjects(scene.children, true) + if (intersects.length > 0) { + const intersection = intersects[0] + const intersectedObject = intersection.object + + // Find if this object belongs to any media + for (const [id, videoData] of this.customMedia.entries()) { + // Check if the intersected object is part of our media mesh + if (intersectedObject === videoData.mesh || + videoData.mesh.children.includes(intersectedObject)) { + const { uv } = intersection + if (uv) { + const result = { + id, + x: uv.x, + y: uv.y + } + this.worldRenderer.reactiveState.world.intersectMedia = result + this.worldRenderer['debugVideo'] = videoData + this.worldRenderer.cursorBlock.cursorLinesHidden = true + return + } + } + } + } + + // No media intersection found + this.worldRenderer.reactiveState.world.intersectMedia = null + this.worldRenderer['debugVideo'] = null + this.worldRenderer.cursorBlock.cursorLinesHidden = false + } +} diff --git a/renderer/viewer/three/threeJsMethods.ts b/renderer/viewer/three/threeJsMethods.ts new file mode 100644 index 00000000..629909c9 --- /dev/null +++ b/renderer/viewer/three/threeJsMethods.ts @@ -0,0 +1,15 @@ +import type { GraphicsBackend } from '../../../src/appViewer' +import type { ThreeJsBackendMethods } from './graphicsBackend' + +export function getThreeJsRendererMethods (): ThreeJsBackendMethods | undefined { + const renderer = appViewer.backend + if (renderer?.id !== 'threejs' || !renderer.backendMethods) return + return new Proxy(renderer.backendMethods, { + get (target, prop) { + return async (...args) => { + const result = await (target[prop as any] as any)(...args) + return result + } + } + }) as ThreeJsBackendMethods +} diff --git a/renderer/viewer/three/threeJsParticles.ts b/renderer/viewer/three/threeJsParticles.ts new file mode 100644 index 00000000..993f2b62 --- /dev/null +++ b/renderer/viewer/three/threeJsParticles.ts @@ -0,0 +1,160 @@ +import * as THREE from 'three' + +interface ParticleMesh extends THREE.Mesh { + velocity: THREE.Vector3; +} + +interface ParticleConfig { + fountainHeight: number; + resetHeight: number; + xVelocityRange: number; + zVelocityRange: number; + particleCount: number; + particleRadiusRange: { min: number; max: number }; + yVelocityRange: { min: number; max: number }; +} + +export interface FountainOptions { + position?: { x: number, y: number, z: number } + particleConfig?: Partial; +} + +export class Fountain { + private readonly particles: ParticleMesh[] = [] + private readonly config: { particleConfig: ParticleConfig } + private readonly position: THREE.Vector3 + container: THREE.Object3D | undefined + + constructor (public sectionId: string, options: FountainOptions = {}) { + this.position = options.position ? new THREE.Vector3(options.position.x, options.position.y, options.position.z) : new THREE.Vector3(0, 0, 0) + this.config = this.createConfig(options.particleConfig) + } + + private createConfig ( + particleConfigOverride?: Partial + ): { particleConfig: ParticleConfig } { + const particleConfig: ParticleConfig = { + fountainHeight: 10, + resetHeight: 0, + xVelocityRange: 0.4, + zVelocityRange: 0.4, + particleCount: 400, + particleRadiusRange: { min: 0.1, max: 0.6 }, + yVelocityRange: { min: 0.1, max: 2 }, + ...particleConfigOverride + } + + return { particleConfig } + } + + + createParticles (container: THREE.Object3D): void { + this.container = container + const colorStart = new THREE.Color(0xff_ff_00) + const colorEnd = new THREE.Color(0xff_a5_00) + + for (let i = 0; i < this.config.particleConfig.particleCount; i++) { + const radius = Math.random() * + (this.config.particleConfig.particleRadiusRange.max - this.config.particleConfig.particleRadiusRange.min) + + this.config.particleConfig.particleRadiusRange.min + const geometry = new THREE.SphereGeometry(radius) + const material = new THREE.MeshBasicMaterial({ + color: colorStart.clone().lerp(colorEnd, Math.random()) + }) + const mesh = new THREE.Mesh(geometry, material) + const particle = mesh as unknown as ParticleMesh + + particle.position.set( + this.position.x + (Math.random() - 0.5) * this.config.particleConfig.xVelocityRange * 2, + this.position.y + this.config.particleConfig.fountainHeight, + this.position.z + (Math.random() - 0.5) * this.config.particleConfig.zVelocityRange * 2 + ) + + particle.velocity = new THREE.Vector3( + (Math.random() - 0.5) * this.config.particleConfig.xVelocityRange, + -Math.random() * this.config.particleConfig.yVelocityRange.max, + (Math.random() - 0.5) * this.config.particleConfig.zVelocityRange + ) + + this.particles.push(particle) + this.container.add(particle) + + // this.container.onBeforeRender = () => { + // this.render() + // } + } + } + + render (): void { + for (const particle of this.particles) { + particle.velocity.y -= 0.01 + Math.random() * 0.1 + particle.position.add(particle.velocity) + + if (particle.position.y < this.position.y + this.config.particleConfig.resetHeight) { + particle.position.set( + this.position.x + (Math.random() - 0.5) * this.config.particleConfig.xVelocityRange * 2, + this.position.y + this.config.particleConfig.fountainHeight, + this.position.z + (Math.random() - 0.5) * this.config.particleConfig.zVelocityRange * 2 + ) + particle.velocity.set( + (Math.random() - 0.5) * this.config.particleConfig.xVelocityRange, + -Math.random() * this.config.particleConfig.yVelocityRange.max, + (Math.random() - 0.5) * this.config.particleConfig.zVelocityRange + ) + } + } + } + + private updateParticleCount (newCount: number): void { + if (newCount !== this.config.particleConfig.particleCount) { + this.config.particleConfig.particleCount = newCount + const currentCount = this.particles.length + + if (newCount > currentCount) { + this.addParticles(newCount - currentCount) + } else if (newCount < currentCount) { + this.removeParticles(currentCount - newCount) + } + } + } + + private addParticles (count: number): void { + const geometry = new THREE.SphereGeometry(0.1) + const material = new THREE.MeshBasicMaterial({ color: 0x00_ff_00 }) + + for (let i = 0; i < count; i++) { + const mesh = new THREE.Mesh(geometry, material) + const particle = mesh as unknown as ParticleMesh + particle.position.copy(this.position) + particle.velocity = new THREE.Vector3( + Math.random() * this.config.particleConfig.xVelocityRange - + this.config.particleConfig.xVelocityRange / 2, + Math.random() * 2, + Math.random() * this.config.particleConfig.zVelocityRange - + this.config.particleConfig.zVelocityRange / 2 + ) + this.particles.push(particle) + this.container!.add(particle) + } + } + + private removeParticles (count: number): void { + for (let i = 0; i < count; i++) { + const particle = this.particles.pop() + if (particle) { + this.container!.remove(particle) + } + } + } + + public dispose (): void { + for (const particle of this.particles) { + particle.geometry.dispose() + if (Array.isArray(particle.material)) { + for (const material of particle.material) material.dispose() + } else { + particle.material.dispose() + } + } + } +} diff --git a/renderer/viewer/three/threeJsSound.ts b/renderer/viewer/three/threeJsSound.ts new file mode 100644 index 00000000..699bb2cc --- /dev/null +++ b/renderer/viewer/three/threeJsSound.ts @@ -0,0 +1,99 @@ +import * as THREE from 'three' +import { WorldRendererThree } from './worldrendererThree' + +export interface SoundSystem { + playSound: (position: { x: number, y: number, z: number }, path: string, volume?: number, pitch?: number, timeout?: number) => void + destroy: () => void +} + +export class ThreeJsSound implements SoundSystem { + audioListener: THREE.AudioListener | undefined + private readonly activeSounds = new Set() + private readonly audioContext: AudioContext | undefined + private readonly soundVolumes = new Map() + baseVolume = 1 + + constructor (public worldRenderer: WorldRendererThree) { + worldRenderer.onWorldSwitched.push(() => { + this.stopAll() + }) + + worldRenderer.onReactiveConfigUpdated('volume', (volume) => { + this.changeVolume(volume) + }) + } + + initAudioListener () { + if (this.audioListener) return + this.audioListener = new THREE.AudioListener() + this.worldRenderer.camera.add(this.audioListener) + } + + playSound (position: { x: number, y: number, z: number }, path: string, volume = 1, pitch = 1, timeout = 500) { + this.initAudioListener() + + const sound = new THREE.PositionalAudio(this.audioListener!) + this.activeSounds.add(sound) + this.soundVolumes.set(sound, volume) + + const audioLoader = new THREE.AudioLoader() + const start = Date.now() + void audioLoader.loadAsync(path).then((buffer) => { + if (Date.now() - start > timeout) { + console.warn('Ignored playing sound', path, 'due to timeout:', timeout, 'ms <', Date.now() - start, 'ms') + return + } + // play + sound.setBuffer(buffer) + sound.setRefDistance(20) + sound.setVolume(volume * this.baseVolume) + sound.setPlaybackRate(pitch) // set the pitch + this.worldRenderer.scene.add(sound) + // set sound position + sound.position.set(position.x, position.y, position.z) + sound.onEnded = () => { + this.worldRenderer.scene.remove(sound) + if (sound.source) { + sound.disconnect() + } + this.activeSounds.delete(sound) + this.soundVolumes.delete(sound) + audioLoader.manager.itemEnd(path) + } + sound.play() + }) + } + + stopAll () { + for (const sound of this.activeSounds) { + if (!sound) continue + sound.stop() + if (sound.source) { + sound.disconnect() + } + this.worldRenderer.scene.remove(sound) + } + this.activeSounds.clear() + this.soundVolumes.clear() + } + + changeVolume (volume: number) { + this.baseVolume = volume + for (const [sound, individualVolume] of this.soundVolumes) { + sound.setVolume(individualVolume * this.baseVolume) + } + } + + destroy () { + this.stopAll() + // Remove and cleanup audio listener + if (this.audioListener) { + this.audioListener.removeFromParent() + this.audioListener = undefined + } + } + + playTestSound () { + this.playSound(this.worldRenderer.camera.position, '/sound.mp3') + } +} diff --git a/renderer/viewer/three/threeJsUtils.ts b/renderer/viewer/three/threeJsUtils.ts new file mode 100644 index 00000000..cbef9065 --- /dev/null +++ b/renderer/viewer/three/threeJsUtils.ts @@ -0,0 +1,73 @@ +import * as THREE from 'three' +import { getLoadedImage } from 'mc-assets/dist/utils' +import { createCanvas } from '../lib/utils' + +export const disposeObject = (obj: THREE.Object3D, cleanTextures = false) => { + // not cleaning texture there as it might be used by other objects, but would be good to also do that + if (obj instanceof THREE.Mesh) { + obj.geometry?.dispose?.() + obj.material?.dispose?.() + } + if (obj.children) { + // eslint-disable-next-line unicorn/no-array-for-each + obj.children.forEach(child => disposeObject(child, cleanTextures)) + } + if (cleanTextures) { + if (obj instanceof THREE.Mesh) { + obj.material?.map?.dispose?.() + } + } +} + +let textureCache: Record = {} +let imagesPromises: Record> = {} + +export const loadThreeJsTextureFromUrlSync = (imageUrl: string) => { + const texture = new THREE.Texture() + const promise = getLoadedImage(imageUrl).then(image => { + texture.image = image + texture.needsUpdate = true + return texture + }) + return { + texture, + promise + } +} + +export const loadThreeJsTextureFromUrl = async (imageUrl: string) => { + const loaded = new THREE.TextureLoader().loadAsync(imageUrl) + return loaded +} + +export const loadThreeJsTextureFromBitmap = (image: ImageBitmap) => { + const canvas = createCanvas(image.width, image.height) + const ctx = canvas.getContext('2d')! + ctx.drawImage(image, 0, 0) + const texture = new THREE.Texture(canvas) + texture.magFilter = THREE.NearestFilter + texture.minFilter = THREE.NearestFilter + return texture +} + +export async function loadTexture (texture: string, cb: (texture: THREE.Texture) => void, onLoad?: () => void): Promise { + const cached = textureCache[texture] + if (!cached) { + const { promise, resolve } = Promise.withResolvers() + const t = loadThreeJsTextureFromUrlSync(texture) + textureCache[texture] = t.texture + void t.promise.then(resolve) + imagesPromises[texture] = promise + } + + cb(textureCache[texture]) + void imagesPromises[texture].then(() => { + onLoad?.() + }) +} + +export const clearTextureCache = () => { + textureCache = {} + imagesPromises = {} +} + diff --git a/renderer/viewer/three/waypointSprite.ts b/renderer/viewer/three/waypointSprite.ts new file mode 100644 index 00000000..6a30e6db --- /dev/null +++ b/renderer/viewer/three/waypointSprite.ts @@ -0,0 +1,418 @@ +import * as THREE from 'three' + +// Centralized visual configuration (in screen pixels) +export const WAYPOINT_CONFIG = { + // Target size in screen pixels (this controls the final sprite size) + TARGET_SCREEN_PX: 150, + // Canvas size for internal rendering (keep power of 2 for textures) + CANVAS_SIZE: 256, + // Relative positions in canvas (0-1) + LAYOUT: { + DOT_Y: 0.3, + NAME_Y: 0.45, + DISTANCE_Y: 0.55, + }, + // Multiplier for canvas internal resolution to keep text crisp + CANVAS_SCALE: 2, + ARROW: { + enabledDefault: false, + pixelSize: 50, + paddingPx: 50, + }, +} + +export type WaypointSprite = { + group: THREE.Group + sprite: THREE.Sprite + // Offscreen arrow controls + enableOffscreenArrow: (enabled: boolean) => void + setArrowParent: (parent: THREE.Object3D | null) => void + // Convenience combined updater + updateForCamera: ( + cameraPosition: THREE.Vector3, + camera: THREE.PerspectiveCamera, + viewportWidthPx: number, + viewportHeightPx: number + ) => boolean + // Utilities + setColor: (color: number) => void + setLabel: (label?: string) => void + updateDistanceText: (label: string, distanceText: string) => void + setVisible: (visible: boolean) => void + setPosition: (x: number, y: number, z: number) => void + dispose: () => void +} + +export function createWaypointSprite (options: { + position: THREE.Vector3 | { x: number, y: number, z: number }, + color?: number, + label?: string, + depthTest?: boolean, + // Y offset in world units used by updateScaleWorld only (screen-pixel API ignores this) + labelYOffset?: number, + metadata?: any, +}): WaypointSprite { + const color = options.color ?? 0xFF_00_00 + const depthTest = options.depthTest ?? false + const labelYOffset = options.labelYOffset ?? 1.5 + + // Build combined sprite + const sprite = createCombinedSprite(color, options.label ?? '', '0m', depthTest) + sprite.renderOrder = 10 + let currentLabel = options.label ?? '' + + // Offscreen arrow (detached by default) + let arrowSprite: THREE.Sprite | undefined + let arrowParent: THREE.Object3D | null = null + let arrowEnabled = WAYPOINT_CONFIG.ARROW.enabledDefault + + // Group for easy add/remove + const group = new THREE.Group() + group.add(sprite) + + // Initial position + const { x, y, z } = options.position + group.position.set(x, y, z) + + function setColor (newColor: number) { + const canvas = drawCombinedCanvas(newColor, currentLabel, '0m') + const texture = new THREE.CanvasTexture(canvas) + const mat = sprite.material + mat.map?.dispose() + mat.map = texture + mat.needsUpdate = true + } + + function setLabel (newLabel?: string) { + currentLabel = newLabel ?? '' + const canvas = drawCombinedCanvas(color, currentLabel, '0m') + const texture = new THREE.CanvasTexture(canvas) + const mat = sprite.material + mat.map?.dispose() + mat.map = texture + mat.needsUpdate = true + } + + function updateDistanceText (label: string, distanceText: string) { + const canvas = drawCombinedCanvas(color, label, distanceText) + const texture = new THREE.CanvasTexture(canvas) + const mat = sprite.material + mat.map?.dispose() + mat.map = texture + mat.needsUpdate = true + } + + function setVisible (visible: boolean) { + sprite.visible = visible + } + + function setPosition (nx: number, ny: number, nz: number) { + group.position.set(nx, ny, nz) + } + + // Keep constant pixel size on screen using global config + function updateScaleScreenPixels ( + cameraPosition: THREE.Vector3, + cameraFov: number, + distance: number, + viewportHeightPx: number + ) { + const vFovRad = cameraFov * Math.PI / 180 + const worldUnitsPerScreenHeightAtDist = Math.tan(vFovRad / 2) * 2 * distance + // Use configured target screen size + const scale = worldUnitsPerScreenHeightAtDist * (WAYPOINT_CONFIG.TARGET_SCREEN_PX / viewportHeightPx) + sprite.scale.set(scale, scale, 1) + } + + function ensureArrow () { + if (arrowSprite) return + const size = 128 + const canvas = document.createElement('canvas') + canvas.width = size + canvas.height = size + const ctx = canvas.getContext('2d')! + ctx.clearRect(0, 0, size, size) + + // Draw arrow shape + ctx.beginPath() + ctx.moveTo(size * 0.15, size * 0.5) + ctx.lineTo(size * 0.85, size * 0.5) + ctx.lineTo(size * 0.5, size * 0.15) + ctx.closePath() + + // Use waypoint color for arrow + const colorHex = `#${color.toString(16).padStart(6, '0')}` + ctx.lineWidth = 6 + ctx.strokeStyle = 'black' + ctx.stroke() + ctx.fillStyle = colorHex + ctx.fill() + + const texture = new THREE.CanvasTexture(canvas) + const material = new THREE.SpriteMaterial({ map: texture, transparent: true, depthTest: false, depthWrite: false }) + arrowSprite = new THREE.Sprite(material) + arrowSprite.renderOrder = 12 + arrowSprite.visible = false + if (arrowParent) arrowParent.add(arrowSprite) + } + + function enableOffscreenArrow (enabled: boolean) { + arrowEnabled = enabled + if (!enabled && arrowSprite) arrowSprite.visible = false + } + + function setArrowParent (parent: THREE.Object3D | null) { + if (arrowSprite?.parent) arrowSprite.parent.remove(arrowSprite) + arrowParent = parent + if (arrowSprite && parent) parent.add(arrowSprite) + } + + function updateOffscreenArrow ( + camera: THREE.PerspectiveCamera, + viewportWidthPx: number, + viewportHeightPx: number + ): boolean { + if (!arrowEnabled) return true + ensureArrow() + if (!arrowSprite) return true + + // Check if onlyLeftRight is enabled in metadata + const onlyLeftRight = options.metadata?.onlyLeftRight === true + + // Build camera basis using camera.up to respect custom orientations + const forward = new THREE.Vector3() + camera.getWorldDirection(forward) // camera look direction + const upWorld = camera.up.clone().normalize() + const right = new THREE.Vector3().copy(forward).cross(upWorld).normalize() + const upCam = new THREE.Vector3().copy(right).cross(forward).normalize() + + // Vector from camera to waypoint + const camPos = new THREE.Vector3().setFromMatrixPosition(camera.matrixWorld) + const toWp = new THREE.Vector3(group.position.x, group.position.y, group.position.z).sub(camPos) + + // Components in camera basis + const z = toWp.dot(forward) + const x = toWp.dot(right) + const y = toWp.dot(upCam) + + const aspect = viewportWidthPx / viewportHeightPx + const vFovRad = camera.fov * Math.PI / 180 + const hFovRad = 2 * Math.atan(Math.tan(vFovRad / 2) * aspect) + + // Determine if waypoint is inside view frustum using angular checks + const thetaX = Math.atan2(x, z) + const thetaY = Math.atan2(y, z) + const visible = z > 0 && Math.abs(thetaX) <= hFovRad / 2 && Math.abs(thetaY) <= vFovRad / 2 + if (visible) { + arrowSprite.visible = false + return true + } + + // Direction on screen in normalized frustum units + let rx = thetaX / (hFovRad / 2) + let ry = thetaY / (vFovRad / 2) + + // If behind the camera, snap to dominant axis to avoid confusing directions + if (z <= 0) { + if (Math.abs(rx) > Math.abs(ry)) { + rx = Math.sign(rx) + ry = 0 + } else { + rx = 0 + ry = Math.sign(ry) + } + } + + // Apply onlyLeftRight logic - restrict arrows to left/right edges only + if (onlyLeftRight) { + // Force the arrow to appear only on left or right edges + if (Math.abs(rx) > Math.abs(ry)) { + // Horizontal direction is dominant, keep it + ry = 0 + } else { + // Vertical direction is dominant, but we want only left/right + // So choose left or right based on the sign of rx + rx = rx >= 0 ? 1 : -1 + ry = 0 + } + } + + // Place on the rectangle border [-1,1]x[-1,1] + const s = Math.max(Math.abs(rx), Math.abs(ry)) || 1 + let ndcX = rx / s + let ndcY = ry / s + + // Apply padding in pixel space by clamping + const padding = WAYPOINT_CONFIG.ARROW.paddingPx + const pxX = ((ndcX + 1) * 0.5) * viewportWidthPx + const pxY = ((1 - ndcY) * 0.5) * viewportHeightPx + const clampedPxX = Math.min(Math.max(pxX, padding), viewportWidthPx - padding) + const clampedPxY = Math.min(Math.max(pxY, padding), viewportHeightPx - padding) + ndcX = (clampedPxX / viewportWidthPx) * 2 - 1 + ndcY = -(clampedPxY / viewportHeightPx) * 2 + 1 + + // Compute world position at a fixed distance in front of the camera using camera basis + const placeDist = Math.max(2, camera.near * 4) + const halfPlaneHeight = Math.tan(vFovRad / 2) * placeDist + const halfPlaneWidth = halfPlaneHeight * aspect + const pos = camPos.clone() + .add(forward.clone().multiplyScalar(placeDist)) + .add(right.clone().multiplyScalar(ndcX * halfPlaneWidth)) + .add(upCam.clone().multiplyScalar(ndcY * halfPlaneHeight)) + + // Update arrow sprite + arrowSprite.visible = true + arrowSprite.position.copy(pos) + + // Angle for rotation relative to screen right/up (derived from camera up vector) + const angle = Math.atan2(ry, rx) + arrowSprite.material.rotation = angle - Math.PI / 2 + + // Constant pixel size for arrow (use fixed placement distance) + const worldUnitsPerScreenHeightAtDist = Math.tan(vFovRad / 2) * 2 * placeDist + const sPx = worldUnitsPerScreenHeightAtDist * (WAYPOINT_CONFIG.ARROW.pixelSize / viewportHeightPx) + arrowSprite.scale.set(sPx, sPx, 1) + return false + } + + function computeDistance (cameraPosition: THREE.Vector3): number { + return cameraPosition.distanceTo(group.position) + } + + function updateForCamera ( + cameraPosition: THREE.Vector3, + camera: THREE.PerspectiveCamera, + viewportWidthPx: number, + viewportHeightPx: number + ): boolean { + const distance = computeDistance(cameraPosition) + // Keep constant pixel size + updateScaleScreenPixels(cameraPosition, camera.fov, distance, viewportHeightPx) + // Update text + updateDistanceText(currentLabel, `${Math.round(distance)}m`) + // Update arrow and visibility + const onScreen = updateOffscreenArrow(camera, viewportWidthPx, viewportHeightPx) + setVisible(onScreen) + return onScreen + } + + function dispose () { + const mat = sprite.material + mat.map?.dispose() + mat.dispose() + if (arrowSprite) { + const am = arrowSprite.material + am.map?.dispose() + am.dispose() + } + } + + return { + group, + sprite, + enableOffscreenArrow, + setArrowParent, + updateForCamera, + setColor, + setLabel, + updateDistanceText, + setVisible, + setPosition, + dispose, + } +} + +// Internal helpers +function drawCombinedCanvas (color: number, id: string, distance: string): HTMLCanvasElement { + const scale = WAYPOINT_CONFIG.CANVAS_SCALE * (globalThis.devicePixelRatio || 1) + const size = WAYPOINT_CONFIG.CANVAS_SIZE * scale + const canvas = document.createElement('canvas') + canvas.width = size + canvas.height = size + const ctx = canvas.getContext('2d')! + + // Clear canvas + ctx.clearRect(0, 0, size, size) + + // Draw dot + const centerX = size / 2 + const dotY = Math.round(size * WAYPOINT_CONFIG.LAYOUT.DOT_Y) + const radius = Math.round(size * 0.05) // Dot takes up ~12% of canvas height + const borderWidth = Math.max(2, Math.round(4 * scale)) + + // Outer border (black) + ctx.beginPath() + ctx.arc(centerX, dotY, radius + borderWidth, 0, Math.PI * 2) + ctx.fillStyle = 'black' + ctx.fill() + + // Inner circle (colored) + ctx.beginPath() + ctx.arc(centerX, dotY, radius, 0, Math.PI * 2) + ctx.fillStyle = `#${color.toString(16).padStart(6, '0')}` + ctx.fill() + + // Text properties + ctx.textAlign = 'center' + ctx.textBaseline = 'middle' + + // Title + const nameFontPx = Math.round(size * 0.08) // ~8% of canvas height + const distanceFontPx = Math.round(size * 0.06) // ~6% of canvas height + ctx.font = `bold ${nameFontPx}px mojangles` + ctx.lineWidth = Math.max(2, Math.round(3 * scale)) + const nameY = Math.round(size * WAYPOINT_CONFIG.LAYOUT.NAME_Y) + + ctx.strokeStyle = 'black' + ctx.strokeText(id, centerX, nameY) + ctx.fillStyle = 'white' + ctx.fillText(id, centerX, nameY) + + // Distance + ctx.font = `bold ${distanceFontPx}px mojangles` + ctx.lineWidth = Math.max(2, Math.round(2 * scale)) + const distanceY = Math.round(size * WAYPOINT_CONFIG.LAYOUT.DISTANCE_Y) + + ctx.strokeStyle = 'black' + ctx.strokeText(distance, centerX, distanceY) + ctx.fillStyle = '#CCCCCC' + ctx.fillText(distance, centerX, distanceY) + + return canvas +} + +function createCombinedSprite (color: number, id: string, distance: string, depthTest: boolean): THREE.Sprite { + const canvas = drawCombinedCanvas(color, id, distance) + const texture = new THREE.CanvasTexture(canvas) + texture.anisotropy = 1 + texture.magFilter = THREE.LinearFilter + texture.minFilter = THREE.LinearFilter + const material = new THREE.SpriteMaterial({ + map: texture, + transparent: true, + opacity: 1, + depthTest, + depthWrite: false, + }) + const sprite = new THREE.Sprite(material) + sprite.position.set(0, 0, 0) + return sprite +} + +export const WaypointHelpers = { + // World-scale constant size helper + computeWorldScale (distance: number, fixedReference = 10) { + return Math.max(0.0001, distance / fixedReference) + }, + // Screen-pixel constant size helper + computeScreenPixelScale ( + camera: THREE.PerspectiveCamera, + distance: number, + pixelSize: number, + viewportHeightPx: number + ) { + const vFovRad = camera.fov * Math.PI / 180 + const worldUnitsPerScreenHeightAtDist = Math.tan(vFovRad / 2) * 2 * distance + return worldUnitsPerScreenHeightAtDist * (pixelSize / viewportHeightPx) + } +} diff --git a/renderer/viewer/three/waypoints.ts b/renderer/viewer/three/waypoints.ts new file mode 100644 index 00000000..256ca6df --- /dev/null +++ b/renderer/viewer/three/waypoints.ts @@ -0,0 +1,140 @@ +import * as THREE from 'three' +import { WorldRendererThree } from './worldrendererThree' +import { createWaypointSprite, type WaypointSprite } from './waypointSprite' + +interface Waypoint { + id: string + x: number + y: number + z: number + minDistance: number + color: number + label?: string + sprite: WaypointSprite +} + +interface WaypointOptions { + color?: number + label?: string + minDistance?: number + metadata?: any +} + +export class WaypointsRenderer { + private readonly waypoints = new Map() + private readonly waypointScene = new THREE.Scene() + + constructor ( + private readonly worldRenderer: WorldRendererThree + ) { + } + + private updateWaypoints () { + const playerPos = this.worldRenderer.cameraObject.position + const sizeVec = this.worldRenderer.renderer.getSize(new THREE.Vector2()) + + for (const waypoint of this.waypoints.values()) { + const waypointPos = new THREE.Vector3(waypoint.x, waypoint.y, waypoint.z) + const distance = playerPos.distanceTo(waypointPos) + const visible = !waypoint.minDistance || distance >= waypoint.minDistance + + waypoint.sprite.setVisible(visible) + + if (visible) { + // Update position + waypoint.sprite.setPosition(waypoint.x, waypoint.y, waypoint.z) + // Ensure camera-based update each frame + waypoint.sprite.updateForCamera(this.worldRenderer.getCameraPosition(), this.worldRenderer.camera, sizeVec.width, sizeVec.height) + } + } + } + + render () { + if (this.waypoints.size === 0) return + + // Update waypoint scaling + this.updateWaypoints() + + // Render waypoints scene with the world camera + this.worldRenderer.renderer.render(this.waypointScene, this.worldRenderer.camera) + } + + // Removed sprite/label texture creation. Use utils/waypointSprite.ts + + addWaypoint ( + id: string, + x: number, + y: number, + z: number, + options: WaypointOptions = {} + ) { + // Remove existing waypoint if it exists + this.removeWaypoint(id) + + const color = options.color ?? 0xFF_00_00 + const { label, metadata } = options + const minDistance = options.minDistance ?? 0 + + const sprite = createWaypointSprite({ + position: new THREE.Vector3(x, y, z), + color, + label: (label || id), + metadata, + }) + sprite.enableOffscreenArrow(true) + sprite.setArrowParent(this.waypointScene) + + this.waypointScene.add(sprite.group) + + this.waypoints.set(id, { + id, x: x + 0.5, y: y + 0.5, z: z + 0.5, minDistance, + color, label, + sprite, + }) + } + + removeWaypoint (id: string) { + const waypoint = this.waypoints.get(id) + if (waypoint) { + this.waypointScene.remove(waypoint.sprite.group) + waypoint.sprite.dispose() + this.waypoints.delete(id) + } + } + + clear () { + for (const id of this.waypoints.keys()) { + this.removeWaypoint(id) + } + } + + testWaypoint () { + this.addWaypoint('Test Point', 0, 70, 0, { color: 0x00_FF_00, label: 'Test Point' }) + this.addWaypoint('Spawn', 0, 64, 0, { color: 0xFF_FF_00, label: 'Spawn' }) + this.addWaypoint('Far Point', 100, 70, 100, { color: 0x00_00_FF, label: 'Far Point' }) + } + + getWaypoint (id: string): Waypoint | undefined { + return this.waypoints.get(id) + } + + getAllWaypoints (): Waypoint[] { + return [...this.waypoints.values()] + } + + setWaypointColor (id: string, color: number) { + const waypoint = this.waypoints.get(id) + if (waypoint) { + waypoint.sprite.setColor(color) + waypoint.color = color + } + } + + setWaypointLabel (id: string, label?: string) { + const waypoint = this.waypoints.get(id) + if (waypoint) { + waypoint.label = label + waypoint.sprite.setLabel(label) + } + } +} diff --git a/renderer/viewer/three/world/cursorBlock.ts b/renderer/viewer/three/world/cursorBlock.ts new file mode 100644 index 00000000..a03a6999 --- /dev/null +++ b/renderer/viewer/three/world/cursorBlock.ts @@ -0,0 +1,162 @@ +import * as THREE from 'three' +import { LineMaterial, LineSegmentsGeometry, Wireframe } from 'three-stdlib' +import { Vec3 } from 'vec3' +import { BlockShape, BlocksShapes } from 'renderer/viewer/lib/basePlayerState' +import { WorldRendererThree } from '../worldrendererThree' +import { loadThreeJsTextureFromUrl } from '../threeJsUtils' +import destroyStage0 from '../../../../assets/destroy_stage_0.png' +import destroyStage1 from '../../../../assets/destroy_stage_1.png' +import destroyStage2 from '../../../../assets/destroy_stage_2.png' +import destroyStage3 from '../../../../assets/destroy_stage_3.png' +import destroyStage4 from '../../../../assets/destroy_stage_4.png' +import destroyStage5 from '../../../../assets/destroy_stage_5.png' +import destroyStage6 from '../../../../assets/destroy_stage_6.png' +import destroyStage7 from '../../../../assets/destroy_stage_7.png' +import destroyStage8 from '../../../../assets/destroy_stage_8.png' +import destroyStage9 from '../../../../assets/destroy_stage_9.png' + +export class CursorBlock { + _cursorLinesHidden = false + get cursorLinesHidden () { + return this._cursorLinesHidden + } + set cursorLinesHidden (value: boolean) { + if (this.interactionLines) { + this.interactionLines.mesh.visible = !value + } + this._cursorLinesHidden = value + } + + cursorLineMaterial: LineMaterial + interactionLines: null | { blockPos: Vec3, mesh: THREE.Group, shapePositions: BlocksShapes | undefined } = null + prevColor: string | undefined + blockBreakMesh: THREE.Mesh + breakTextures: THREE.Texture[] = [] + + constructor (public readonly worldRenderer: WorldRendererThree) { + // Initialize break mesh and textures + const destroyStagesImages = [ + destroyStage0, destroyStage1, destroyStage2, destroyStage3, destroyStage4, + destroyStage5, destroyStage6, destroyStage7, destroyStage8, destroyStage9 + ] + + for (let i = 0; i < 10; i++) { + void loadThreeJsTextureFromUrl(destroyStagesImages[i]).then((texture) => { + texture.magFilter = THREE.NearestFilter + texture.minFilter = THREE.NearestFilter + this.breakTextures.push(texture) + }) + } + + const breakMaterial = new THREE.MeshBasicMaterial({ + transparent: true, + blending: THREE.MultiplyBlending, + alphaTest: 0.5, + }) + this.blockBreakMesh = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1), breakMaterial) + this.blockBreakMesh.visible = false + this.blockBreakMesh.renderOrder = 999 + this.blockBreakMesh.name = 'blockBreakMesh' + this.worldRenderer.scene.add(this.blockBreakMesh) + + this.worldRenderer.onReactivePlayerStateUpdated('gameMode', () => { + this.updateLineMaterial() + }) + // todo figure out why otherwise fog from skybox breaks it + setTimeout(() => { + this.updateLineMaterial() + if (this.interactionLines) { + this.setHighlightCursorBlock(this.interactionLines.blockPos, this.interactionLines.shapePositions, true) + } + }) + } + + // Update functions + updateLineMaterial () { + const inCreative = this.worldRenderer.playerStateReactive.gameMode === 'creative' + const pixelRatio = this.worldRenderer.renderer.getPixelRatio() + + if (this.cursorLineMaterial) { + this.cursorLineMaterial.dispose() + } + this.cursorLineMaterial = new LineMaterial({ + color: (() => { + switch (this.worldRenderer.worldRendererConfig.highlightBlockColor) { + case 'blue': + return 0x40_80_ff + case 'classic': + return 0x00_00_00 + default: + return inCreative ? 0x40_80_ff : 0x00_00_00 + } + })(), + linewidth: Math.max(pixelRatio * 0.7, 1) * 2, + // dashed: true, + // dashSize: 5, + }) + this.prevColor = this.worldRenderer.worldRendererConfig.highlightBlockColor + } + + updateBreakAnimation (blockPosition: { x: number, y: number, z: number } | undefined, stage: number | null, mergedShape?: BlockShape) { + this.hideBreakAnimation() + if (stage === null || !blockPosition || !mergedShape) return + + const { position, width, height, depth } = mergedShape + this.blockBreakMesh.scale.set(width * 1.001, height * 1.001, depth * 1.001) + position.add(blockPosition) + this.blockBreakMesh.position.set(position.x, position.y, position.z) + this.blockBreakMesh.visible = true; + + (this.blockBreakMesh.material as THREE.MeshBasicMaterial).map = this.breakTextures[stage] ?? this.breakTextures.at(-1); + (this.blockBreakMesh.material as THREE.MeshBasicMaterial).needsUpdate = true + } + + hideBreakAnimation () { + if (this.blockBreakMesh) { + this.blockBreakMesh.visible = false + } + } + + updateDisplay () { + if (this.cursorLineMaterial) { + const { renderer } = this.worldRenderer + this.cursorLineMaterial.resolution.set(renderer.domElement.width, renderer.domElement.height) + this.cursorLineMaterial.dashOffset = performance.now() / 750 + } + } + + setHighlightCursorBlock (blockPos: Vec3 | null, shapePositions?: BlocksShapes, force = false): void { + if (blockPos && this.interactionLines && blockPos.equals(this.interactionLines.blockPos) && !force) { + return + } + if (this.interactionLines !== null) { + this.worldRenderer.scene.remove(this.interactionLines.mesh) + this.interactionLines = null + } + if (blockPos === null) { + return + } + + const group = new THREE.Group() + for (const { position, width, height, depth } of shapePositions ?? []) { + const scale = [1.0001 * width, 1.0001 * height, 1.0001 * depth] as const + const geometry = new THREE.BoxGeometry(...scale) + const lines = new LineSegmentsGeometry().fromEdgesGeometry(new THREE.EdgesGeometry(geometry)) + const wireframe = new Wireframe(lines, this.cursorLineMaterial) + const pos = blockPos.plus(position) + wireframe.position.set(pos.x, pos.y, pos.z) + wireframe.computeLineDistances() + group.add(wireframe) + } + this.worldRenderer.scene.add(group) + group.visible = !this.cursorLinesHidden + this.interactionLines = { blockPos, mesh: group, shapePositions } + } + + render () { + if (this.prevColor !== this.worldRenderer.worldRendererConfig.highlightBlockColor) { + this.updateLineMaterial() + } + this.updateDisplay() + } +} diff --git a/renderer/viewer/three/world/vr.ts b/renderer/viewer/three/world/vr.ts new file mode 100644 index 00000000..ecf1b299 --- /dev/null +++ b/renderer/viewer/three/world/vr.ts @@ -0,0 +1,257 @@ +import { VRButton } from 'three/examples/jsm/webxr/VRButton.js' +import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js' +import { XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory.js' +import { buttonMap as standardButtonsMap } from 'contro-max/build/gamepad' +import * as THREE from 'three' +import { WorldRendererThree } from '../worldrendererThree' +import { DocumentRenderer } from '../documentRenderer' + +export async function initVR (worldRenderer: WorldRendererThree, documentRenderer: DocumentRenderer) { + if (!('xr' in navigator) || !worldRenderer.worldRendererConfig.vrSupport) return + const { renderer } = worldRenderer + + const isSupported = await checkVRSupport() + if (!isSupported) return + + enableVr() + + const vrButtonContainer = createVrButtonContainer(renderer) + const updateVrButtons = () => { + const newHidden = !worldRenderer.worldRendererConfig.vrSupport || !worldRenderer.worldRendererConfig.foreground + if (vrButtonContainer.hidden !== newHidden) { + vrButtonContainer.hidden = newHidden + } + } + + worldRenderer.onRender.push(updateVrButtons) + + function enableVr () { + renderer.xr.enabled = true + // renderer.xr.setReferenceSpaceType('local-floor') + worldRenderer.reactiveState.preventEscapeMenu = true + } + + function disableVr () { + renderer.xr.enabled = false + worldRenderer.cameraGroupVr = undefined + worldRenderer.reactiveState.preventEscapeMenu = false + worldRenderer.scene.remove(user) + vrButtonContainer.hidden = true + } + + function createVrButtonContainer (renderer) { + const container = document.createElement('div') + const vrButton = VRButton.createButton(renderer) + styleContainer(container) + + const closeButton = createCloseButton(container) + + container.appendChild(vrButton) + container.appendChild(closeButton) + document.body.appendChild(container) + + return container + } + + function styleContainer (container: HTMLElement) { + typedAssign(container.style, { + position: 'absolute', + bottom: '80px', + left: '0', + right: '0', + display: 'flex', + justifyContent: 'center', + zIndex: '8', + gap: '8px', + }) + } + + function createCloseButton (container: HTMLElement) { + const closeButton = document.createElement('button') + closeButton.textContent = 'X' + typedAssign(closeButton.style, { + padding: '0 12px', + color: 'white', + fontSize: '14px', + lineHeight: '20px', + cursor: 'pointer', + background: 'transparent', + border: '1px solid rgb(255, 255, 255)', + borderRadius: '4px', + opacity: '0.7', + }) + + closeButton.addEventListener('click', () => { + container.hidden = true + worldRenderer.worldRendererConfig.vrSupport = false + }) + + return closeButton + } + + + async function checkVRSupport () { + try { + const supported = await navigator.xr?.isSessionSupported('immersive-vr') + return supported && !!XRSession.prototype.updateRenderState + } catch (err) { + console.error('Error checking if VR is supported', err) + return false + } + } + + // hack for vr camera + const user = new THREE.Group() + user.name = 'vr-camera-container' + worldRenderer.scene.add(user) + const controllerModelFactory = new XRControllerModelFactory(new GLTFLoader()) + const controller1 = renderer.xr.getControllerGrip(0) + const controller2 = renderer.xr.getControllerGrip(1) + + // todo the logic written here can be hard to understand as it was designed to work in gamepad api emulation mode, will be refactored once there is a contro-max rewrite is done + const virtualGamepadIndex = 4 + let connectedVirtualGamepad + //@ts-expect-error + const manageXrInputSource = ({ gamepad, handedness = defaultHandedness }, defaultHandedness, removeAction = false) => { + if (handedness === 'right') { + const event: any = new Event(removeAction ? 'gamepaddisconnected' : 'gamepadconnected') // todo need to expose and use external gamepads api in contro-max instead + event.gamepad = removeAction ? connectedVirtualGamepad : { ...gamepad, mapping: 'standard', index: virtualGamepadIndex } + connectedVirtualGamepad = event.gamepad + window.dispatchEvent(event) + } + } + let hand1: any = controllerModelFactory.createControllerModel(controller1) + controller1.addEventListener('connected', (event) => { + hand1.xrInputSource = event.data + manageXrInputSource(event.data, 'left') + user.add(controller1) + }) + controller1.add(hand1) + let hand2: any = controllerModelFactory.createControllerModel(controller2) + controller2.addEventListener('connected', (event) => { + hand2.xrInputSource = event.data + manageXrInputSource(event.data, 'right') + user.add(controller2) + }) + controller2.add(hand2) + + controller1.addEventListener('disconnected', () => { + // don't handle removal of gamepads for now as is don't affect contro-max + manageXrInputSource(hand1.xrInputSource, 'left', true) + hand1.xrInputSource = undefined + }) + controller2.addEventListener('disconnected', () => { + manageXrInputSource(hand1.xrInputSource, 'right', true) + hand2.xrInputSource = undefined + }) + + const originalGetGamepads = navigator.getGamepads.bind(navigator) + // is it okay to patch this? + //@ts-expect-error + navigator.getGamepads = () => { + const originalGamepads = originalGetGamepads() + if (!hand1.xrInputSource || !hand2.xrInputSource) return originalGamepads + return [ + ...originalGamepads, + { + axes: remapAxes(hand2.xrInputSource.gamepad.axes, hand1.xrInputSource.gamepad.axes), + buttons: remapButtons(hand2.xrInputSource.gamepad.buttons, hand1.xrInputSource.gamepad.buttons), + connected: true, + mapping: 'standard', + id: '', + index: virtualGamepadIndex + } + ] + } + + let rotSnapReset = true + let yawOffset = 0 + renderer.setAnimationLoop(() => { + if (!renderer.xr.isPresenting) return + if (hand1.xrInputSource && hand2.xrInputSource) { + hand1.xAxis = hand1.xrInputSource.gamepad.axes[2] + hand1.yAxis = hand1.xrInputSource.gamepad.axes[3] + hand2.xAxis = hand2.xrInputSource.gamepad.axes[2] + hand2.yAxis = hand2.xrInputSource.gamepad.axes[3] + // hand2 should be right + if (hand1.xrInputSource.handedness === 'right') { + const tmp = hand2 + hand2 = hand1 + hand1 = tmp + } + } + + if (rotSnapReset) { + if (Math.abs(hand1.xAxis) > 0.8) { + yawOffset -= Math.PI / 4 * Math.sign(hand1.xAxis) + rotSnapReset = false + } + } else if (Math.abs(hand1.xAxis) < 0.1) { + rotSnapReset = true + } + + // appViewer.backend?.updateCamera(null, yawOffset, 0) + // worldRenderer.updateCamera(null, bot.entity.yaw, bot.entity.pitch) + + // todo restore this logic (need to preserve ability to move camera) + // const xrCamera = renderer.xr.getCamera() + // const d = xrCamera.getWorldDirection(new THREE.Vector3()) + // bot.entity.yaw = Math.atan2(-d.x, -d.z) + // bot.entity.pitch = Math.asin(d.y) + + documentRenderer.frameRender(false) + }) + renderer.xr.addEventListener('sessionstart', () => { + user.add(worldRenderer.camera) + worldRenderer.cameraGroupVr = user + }) + renderer.xr.addEventListener('sessionend', () => { + worldRenderer.cameraGroupVr = undefined + user.remove(worldRenderer.camera) + }) + + worldRenderer.abortController.signal.addEventListener('abort', disableVr) +} + +const xrStandardRightButtonsMap = [ + [0 /* trigger */, 'Right Trigger'], + [1 /* squeeze */, 'Right Bumper'], + // need to think of a way to support touchpad input + [3 /* Thumbstick Press */, 'Right Stick'], + [4 /* A */, 'A'], + [5 /* B */, 'B'], +] +const xrStandardLeftButtonsMap = [ + [0 /* trigger */, 'Left Trigger'], + [1 /* squeeze */, 'Left Bumper'], + // need to think of a way to support touchpad input + [3 /* Thumbstick Press */, 'Left Stick'], + [4 /* A */, 'X'], + [5 /* B */, 'Y'], +] +const remapButtons = (rightButtons: any[], leftButtons: any[]) => { + // return remapped buttons + const remapped = [] as string[] + const remapWithMap = (buttons, map) => { + for (const [index, standardName] of map) { + const standardMappingIndex = standardButtonsMap.findIndex((aliases) => aliases.find(alias => standardName === alias)) + remapped[standardMappingIndex] = buttons[index] + } + } + remapWithMap(rightButtons, xrStandardRightButtonsMap) + remapWithMap(leftButtons, xrStandardLeftButtonsMap) + return remapped +} +const remapAxes = (axesRight, axesLeft) => { + // 0, 1 are reserved for touch + return [ + axesLeft[2], + axesLeft[3], + axesRight[2], + axesRight[3] + ] +} + +function typedAssign> (target: T, source: Partial) { + Object.assign(target, source) +} diff --git a/renderer/viewer/three/worldrendererThree.ts b/renderer/viewer/three/worldrendererThree.ts new file mode 100644 index 00000000..1b4e6152 --- /dev/null +++ b/renderer/viewer/three/worldrendererThree.ts @@ -0,0 +1,1161 @@ +import * as THREE from 'three' +import { Vec3 } from 'vec3' +import nbt from 'prismarine-nbt' +import PrismarineChatLoader from 'prismarine-chat' +import * as tweenJs from '@tweenjs/tween.js' +import { Biome } from 'minecraft-data' +import { renderSign } from '../sign-renderer' +import { DisplayWorldOptions, GraphicsInitOptions } from '../../../src/appViewer' +import { chunkPos, sectionPos } from '../lib/simpleUtils' +import { WorldRendererCommon } from '../lib/worldrendererCommon' +import { addNewStat } from '../lib/ui/newStats' +import { MesherGeometryOutput } from '../lib/mesher/shared' +import { ItemSpecificContextProperties } from '../lib/basePlayerState' +import { setBlockPosition } from '../lib/mesher/standaloneRenderer' +import { getMyHand } from './hand' +import HoldingBlock from './holdingBlock' +import { getMesh } from './entity/EntityMesh' +import { armorModel } from './entity/armorModels' +import { disposeObject, loadThreeJsTextureFromBitmap } from './threeJsUtils' +import { CursorBlock } from './world/cursorBlock' +import { getItemUv } from './appShared' +import { Entities } from './entities' +import { ThreeJsSound } from './threeJsSound' +import { CameraShake } from './cameraShake' +import { ThreeJsMedia } from './threeJsMedia' +import { Fountain } from './threeJsParticles' +import { WaypointsRenderer } from './waypoints' +import { DEFAULT_TEMPERATURE, SkyboxRenderer } from './skyboxRenderer' + +type SectionKey = string + +export class WorldRendererThree extends WorldRendererCommon { + outputFormat = 'threeJs' as const + sectionObjects: Record = {} + chunkTextures = new Map() + signsCache = new Map() + starField: StarField + cameraSectionPos: Vec3 = new Vec3(0, 0, 0) + holdingBlock: HoldingBlock + holdingBlockLeft: HoldingBlock + scene = new THREE.Scene() + ambientLight = new THREE.AmbientLight(0xcc_cc_cc) + directionalLight = new THREE.DirectionalLight(0xff_ff_ff, 0.5) + entities = new Entities(this) + cameraGroupVr?: THREE.Object3D + material = new THREE.MeshLambertMaterial({ vertexColors: true, transparent: true, alphaTest: 0.1 }) + itemsTexture: THREE.Texture + cursorBlock: CursorBlock + onRender: Array<() => void> = [] + cameraShake: CameraShake + cameraContainer: THREE.Object3D + media: ThreeJsMedia + waitingChunksToDisplay = {} as { [chunkKey: string]: SectionKey[] } + waypoints: WaypointsRenderer + camera: THREE.PerspectiveCamera + renderTimeAvg = 0 + sectionsOffsetsAnimations = {} as { + [chunkKey: string]: { + time: number, + // also specifies direction + speedX: number, + speedY: number, + speedZ: number, + + currentOffsetX: number, + currentOffsetY: number, + currentOffsetZ: number, + + limitX?: number, + limitY?: number, + limitZ?: number, + } + } + fountains: Fountain[] = [] + DEBUG_RAYCAST = false + skyboxRenderer: SkyboxRenderer + + private currentPosTween?: tweenJs.Tween + private currentRotTween?: tweenJs.Tween<{ pitch: number, yaw: number }> + + get tilesRendered () { + return Object.values(this.sectionObjects).reduce((acc, obj) => acc + (obj as any).tilesCount, 0) + } + + get blocksRendered () { + return Object.values(this.sectionObjects).reduce((acc, obj) => acc + (obj as any).blocksCount, 0) + } + + constructor (public renderer: THREE.WebGLRenderer, public initOptions: GraphicsInitOptions, public displayOptions: DisplayWorldOptions) { + if (!initOptions.resourcesManager) throw new Error('resourcesManager is required') + super(initOptions.resourcesManager, displayOptions, initOptions) + + this.renderer = renderer + displayOptions.rendererState.renderer = WorldRendererThree.getRendererInfo(renderer) ?? '...' + this.starField = new StarField(this) + this.cursorBlock = new CursorBlock(this) + this.holdingBlock = new HoldingBlock(this) + this.holdingBlockLeft = new HoldingBlock(this, true) + + // Initialize skybox renderer + this.skyboxRenderer = new SkyboxRenderer(this.scene, this.worldRendererConfig.defaultSkybox, null) + void this.skyboxRenderer.init() + + this.addDebugOverlay() + this.resetScene() + void this.init() + + this.soundSystem = new ThreeJsSound(this) + this.cameraShake = new CameraShake(this, this.onRender) + this.media = new ThreeJsMedia(this) + this.waypoints = new WaypointsRenderer(this) + + // this.fountain = new Fountain(this.scene, this.scene, { + // position: new THREE.Vector3(0, 10, 0), + // }) + + this.renderUpdateEmitter.on('chunkFinished', (chunkKey: string) => { + this.finishChunk(chunkKey) + }) + this.worldSwitchActions() + } + + get cameraObject () { + return this.cameraGroupVr ?? this.cameraContainer + } + + worldSwitchActions () { + this.onWorldSwitched.push(() => { + // clear custom blocks + this.protocolCustomBlocks.clear() + // Reset section animations + this.sectionsOffsetsAnimations = {} + // Clear waypoints + this.waypoints.clear() + }) + } + + updateEntity (e, isPosUpdate = false) { + const overrides = { + rotation: { + head: { + x: e.headPitch ?? e.pitch, + y: e.headYaw, + z: 0 + } + } + } + if (isPosUpdate) { + this.entities.updateEntityPosition(e, false, overrides) + } else { + this.entities.update(e, overrides) + } + } + + updatePlayerEntity (e: any) { + this.entities.handlePlayerEntity(e) + } + + resetScene () { + this.scene.matrixAutoUpdate = false // for perf + this.scene.background = new THREE.Color(this.initOptions.config.sceneBackground) + this.scene.add(this.ambientLight) + this.directionalLight.position.set(1, 1, 0.5).normalize() + this.directionalLight.castShadow = true + this.scene.add(this.directionalLight) + + const size = this.renderer.getSize(new THREE.Vector2()) + this.camera = new THREE.PerspectiveCamera(75, size.x / size.y, 0.1, 1000) + this.cameraContainer = new THREE.Object3D() + this.cameraContainer.add(this.camera) + this.scene.add(this.cameraContainer) + } + + override watchReactivePlayerState () { + super.watchReactivePlayerState() + this.onReactivePlayerStateUpdated('inWater', (value) => { + this.skyboxRenderer.updateWaterState(value, this.playerStateReactive.waterBreathing) + }) + this.onReactivePlayerStateUpdated('waterBreathing', (value) => { + this.skyboxRenderer.updateWaterState(this.playerStateReactive.inWater, value) + }) + this.onReactivePlayerStateUpdated('ambientLight', (value) => { + if (!value) return + this.ambientLight.intensity = value + }) + this.onReactivePlayerStateUpdated('directionalLight', (value) => { + if (!value) return + this.directionalLight.intensity = value + }) + this.onReactivePlayerStateUpdated('lookingAtBlock', (value) => { + this.cursorBlock.setHighlightCursorBlock(value ? new Vec3(value.x, value.y, value.z) : null, value?.shapes) + }) + this.onReactivePlayerStateUpdated('diggingBlock', (value) => { + this.cursorBlock.updateBreakAnimation(value ? { x: value.x, y: value.y, z: value.z } : undefined, value?.stage ?? null, value?.mergedShape) + }) + this.onReactivePlayerStateUpdated('perspective', (value) => { + // Update camera perspective when it changes + const vecPos = new Vec3(this.cameraObject.position.x, this.cameraObject.position.y, this.cameraObject.position.z) + this.updateCamera(vecPos, this.cameraShake.getBaseRotation().yaw, this.cameraShake.getBaseRotation().pitch) + // todo also update camera when block within camera was changed + }) + } + + override watchReactiveConfig () { + super.watchReactiveConfig() + this.onReactiveConfigUpdated('showChunkBorders', (value) => { + this.updateShowChunksBorder(value) + }) + this.onReactiveConfigUpdated('defaultSkybox', (value) => { + this.skyboxRenderer.updateDefaultSkybox(value) + }) + } + + changeHandSwingingState (isAnimationPlaying: boolean, isLeft = false) { + const holdingBlock = isLeft ? this.holdingBlockLeft : this.holdingBlock + if (isAnimationPlaying) { + holdingBlock.startSwing() + } else { + holdingBlock.stopSwing() + } + } + + async updateAssetsData (): Promise { + const resources = this.resourcesManager.currentResources + + const oldTexture = this.material.map + const oldItemsTexture = this.itemsTexture + + const texture = loadThreeJsTextureFromBitmap(resources.blocksAtlasImage) + texture.needsUpdate = true + texture.flipY = false + this.material.map = texture + + const itemsTexture = loadThreeJsTextureFromBitmap(resources.itemsAtlasImage) + itemsTexture.needsUpdate = true + itemsTexture.flipY = false + this.itemsTexture = itemsTexture + + if (oldTexture) { + oldTexture.dispose() + } + if (oldItemsTexture) { + oldItemsTexture.dispose() + } + + await super.updateAssetsData() + this.onAllTexturesLoaded() + if (Object.keys(this.loadedChunks).length > 0) { + console.log('rerendering chunks because of texture update') + this.rerenderAllChunks() + } + } + + onAllTexturesLoaded () { + this.holdingBlock.ready = true + this.holdingBlock.updateItem() + this.holdingBlockLeft.ready = true + this.holdingBlockLeft.updateItem() + } + + changeBackgroundColor (color: [number, number, number]): void { + this.scene.background = new THREE.Color(color[0], color[1], color[2]) + } + + timeUpdated (newTime: number): void { + const nightTime = 13_500 + const morningStart = 23_000 + const displayStars = newTime > nightTime && newTime < morningStart + if (displayStars) { + this.starField.addToScene() + } else { + this.starField.remove() + } + + this.skyboxRenderer.updateTime(newTime) + } + + biomeUpdated (biome: Biome): void { + if (biome?.temperature !== undefined) { + this.skyboxRenderer.updateTemperature(biome.temperature) + } + } + + biomeReset (): void { + // Reset to default temperature when biome is unknown + this.skyboxRenderer.updateTemperature(DEFAULT_TEMPERATURE) + } + + getItemRenderData (item: Record, specificProps: ItemSpecificContextProperties) { + return getItemUv(item, specificProps, this.resourcesManager, this.playerStateReactive) + } + + async demoModel () { + //@ts-expect-error + const pos = cursorBlockRel(0, 1, 0).position + + const mesh = (await getMyHand())! + // mesh.rotation.y = THREE.MathUtils.degToRad(90) + setBlockPosition(mesh, pos) + const helper = new THREE.BoxHelper(mesh, 0xff_ff_00) + mesh.add(helper) + this.scene.add(mesh) + } + + demoItem () { + //@ts-expect-error + const pos = cursorBlockRel(0, 1, 0).position + const { mesh } = this.entities.getItemMesh({ + itemId: 541, + }, {})! + mesh.position.set(pos.x + 0.5, pos.y + 0.5, pos.z + 0.5) + // mesh.scale.set(0.5, 0.5, 0.5) + const helper = new THREE.BoxHelper(mesh, 0xff_ff_00) + mesh.add(helper) + this.scene.add(mesh) + } + + debugOverlayAdded = false + addDebugOverlay () { + if (this.debugOverlayAdded) return + this.debugOverlayAdded = true + const pane = addNewStat('debug-overlay') + setInterval(() => { + pane.setVisibility(this.displayAdvancedStats) + if (this.displayAdvancedStats) { + const formatBigNumber = (num: number) => { + return new Intl.NumberFormat('en-US', {}).format(num) + } + let text = '' + text += `C: ${formatBigNumber(this.renderer.info.render.calls)} ` + text += `TR: ${formatBigNumber(this.renderer.info.render.triangles)} ` + text += `TE: ${formatBigNumber(this.renderer.info.memory.textures)} ` + text += `F: ${formatBigNumber(this.tilesRendered)} ` + text += `B: ${formatBigNumber(this.blocksRendered)}` + pane.updateText(text) + this.backendInfoReport = text + } + }, 200) + } + + /** + * Optionally update data that are depedendent on the viewer position + */ + updatePosDataChunk (key: string) { + const [x, y, z] = key.split(',').map(x => Math.floor(+x / 16)) + // sum of distances: x + y + z + const chunkDistance = Math.abs(x - this.cameraSectionPos.x) + Math.abs(y - this.cameraSectionPos.y) + Math.abs(z - this.cameraSectionPos.z) + const section = this.sectionObjects[key].children.find(child => child.name === 'mesh')! + section.renderOrder = 500 - chunkDistance + } + + override updateViewerPosition (pos: Vec3): void { + this.viewerChunkPosition = pos + } + + cameraSectionPositionUpdate () { + // eslint-disable-next-line guard-for-in + for (const key in this.sectionObjects) { + const value = this.sectionObjects[key] + if (!value) continue + this.updatePosDataChunk(key) + } + } + + getDir (current: number, origin: number) { + if (current === origin) return 0 + return current < origin ? 1 : -1 + } + + finishChunk (chunkKey: string) { + for (const sectionKey of this.waitingChunksToDisplay[chunkKey] ?? []) { + this.sectionObjects[sectionKey].visible = true + } + delete this.waitingChunksToDisplay[chunkKey] + } + + // debugRecomputedDeletedObjects = 0 + handleWorkerMessage (data: { geometry: MesherGeometryOutput, key, type }): void { + if (data.type !== 'geometry') return + let object: THREE.Object3D = this.sectionObjects[data.key] + if (object) { + this.scene.remove(object) + disposeObject(object) + delete this.sectionObjects[data.key] + } + + const chunkCoords = data.key.split(',') + if (!this.loadedChunks[chunkCoords[0] + ',' + chunkCoords[2]] || !data.geometry.positions.length || !this.active) return + + // if (object) { + // this.debugRecomputedDeletedObjects++ + // } + + const geometry = new THREE.BufferGeometry() + geometry.setAttribute('position', new THREE.BufferAttribute(data.geometry.positions, 3)) + geometry.setAttribute('normal', new THREE.BufferAttribute(data.geometry.normals, 3)) + geometry.setAttribute('color', new THREE.BufferAttribute(data.geometry.colors, 3)) + geometry.setAttribute('uv', new THREE.BufferAttribute(data.geometry.uvs, 2)) + geometry.index = new THREE.BufferAttribute(data.geometry.indices as Uint32Array | Uint16Array, 1) + + const mesh = new THREE.Mesh(geometry, this.material) + mesh.position.set(data.geometry.sx, data.geometry.sy, data.geometry.sz) + mesh.name = 'mesh' + object = new THREE.Group() + object.add(mesh) + // mesh with static dimensions: 16x16x16 + const staticChunkMesh = new THREE.Mesh(new THREE.BoxGeometry(16, 16, 16), new THREE.MeshBasicMaterial({ color: 0x00_00_00, transparent: true, opacity: 0 })) + staticChunkMesh.position.set(data.geometry.sx, data.geometry.sy, data.geometry.sz) + const boxHelper = new THREE.BoxHelper(staticChunkMesh, 0xff_ff_00) + boxHelper.name = 'helper' + object.add(boxHelper) + object.name = 'chunk'; + (object as any).tilesCount = data.geometry.positions.length / 3 / 4; + (object as any).blocksCount = data.geometry.blocksCount + if (!this.displayOptions.inWorldRenderingConfig.showChunkBorders) { + boxHelper.visible = false + } + // should not compute it once + if (Object.keys(data.geometry.signs).length) { + for (const [posKey, { isWall, isHanging, rotation }] of Object.entries(data.geometry.signs)) { + const signBlockEntity = this.blockEntities[posKey] + if (!signBlockEntity) continue + const [x, y, z] = posKey.split(',') + const sign = this.renderSign(new Vec3(+x, +y, +z), rotation, isWall, isHanging, nbt.simplify(signBlockEntity)) + if (!sign) continue + object.add(sign) + } + } + if (Object.keys(data.geometry.heads).length) { + for (const [posKey, { isWall, rotation }] of Object.entries(data.geometry.heads)) { + const headBlockEntity = this.blockEntities[posKey] + if (!headBlockEntity) continue + const [x, y, z] = posKey.split(',') + const head = this.renderHead(new Vec3(+x, +y, +z), rotation, isWall, nbt.simplify(headBlockEntity)) + if (!head) continue + object.add(head) + } + } + this.sectionObjects[data.key] = object + if (this.displayOptions.inWorldRenderingConfig._renderByChunks) { + object.visible = false + const chunkKey = `${chunkCoords[0]},${chunkCoords[2]}` + this.waitingChunksToDisplay[chunkKey] ??= [] + this.waitingChunksToDisplay[chunkKey].push(data.key) + if (this.finishedChunks[chunkKey]) { + // todo it might happen even when it was not an update + this.finishChunk(chunkKey) + } + } + + this.updatePosDataChunk(data.key) + object.matrixAutoUpdate = false + mesh.onAfterRender = (renderer, scene, camera, geometry, material, group) => { + // mesh.matrixAutoUpdate = false + } + + this.scene.add(object) + } + + getSignTexture (position: Vec3, blockEntity, isHanging, backSide = false) { + const chunk = chunkPos(position) + let textures = this.chunkTextures.get(`${chunk[0]},${chunk[1]}`) + if (!textures) { + textures = {} + this.chunkTextures.set(`${chunk[0]},${chunk[1]}`, textures) + } + const texturekey = `${position.x},${position.y},${position.z}` + // todo investigate bug and remove this so don't need to clean in section dirty + if (textures[texturekey]) return textures[texturekey] + + const PrismarineChat = PrismarineChatLoader(this.version) + const canvas = renderSign(blockEntity, isHanging, PrismarineChat) + if (!canvas) return + const tex = new THREE.Texture(canvas) + tex.magFilter = THREE.NearestFilter + tex.minFilter = THREE.NearestFilter + tex.needsUpdate = true + textures[texturekey] = tex + return tex + } + + getCameraPosition () { + const worldPos = new THREE.Vector3() + this.camera.getWorldPosition(worldPos) + return worldPos + } + + getSectionCameraPosition () { + const pos = this.getCameraPosition() + return new Vec3( + Math.floor(pos.x / 16), + Math.floor(pos.y / 16), + Math.floor(pos.z / 16) + ) + } + + updateCameraSectionPos () { + const newSectionPos = this.getSectionCameraPosition() + if (!this.cameraSectionPos.equals(newSectionPos)) { + this.cameraSectionPos = newSectionPos + this.cameraSectionPositionUpdate() + } + } + + setFirstPersonCamera (pos: Vec3 | null, yaw: number, pitch: number) { + const yOffset = this.playerStateReactive.eyeHeight + + this.updateCamera(pos?.offset(0, yOffset, 0) ?? null, yaw, pitch) + this.media.tryIntersectMedia() + this.updateCameraSectionPos() + } + + getThirdPersonCamera (pos: THREE.Vector3 | null, yaw: number, pitch: number) { + pos ??= this.cameraObject.position + + // Calculate camera offset based on perspective + const isBack = this.playerStateReactive.perspective === 'third_person_back' + const distance = 4 // Default third person distance + + // Calculate direction vector using proper world orientation + // We need to get the camera's current look direction and use that for positioning + + // Create a direction vector that represents where the camera is looking + // This matches the Three.js camera coordinate system + const direction = new THREE.Vector3(0, 0, -1) // Forward direction in camera space + + // Apply the same rotation that's applied to the camera container + const pitchQuat = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(1, 0, 0), pitch) + const yawQuat = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 1, 0), yaw) + const finalQuat = new THREE.Quaternion().multiplyQuaternions(yawQuat, pitchQuat) + + // Transform the direction vector by the camera's rotation + direction.applyQuaternion(finalQuat) + + // For back view, we want the camera behind the player (opposite to view direction) + // For front view, we want the camera in front of the player (same as view direction) + if (isBack) { + direction.multiplyScalar(-1) + } + + // Create debug visualization if advanced stats are enabled + if (this.DEBUG_RAYCAST) { + this.debugRaycast(pos, direction, distance) + } + + // Perform raycast to avoid camera going through blocks + const raycaster = new THREE.Raycaster() + raycaster.set(pos, direction) + raycaster.far = distance // Limit raycast distance + + // Filter to only nearby chunks for performance + const nearbyChunks = Object.values(this.sectionObjects) + .filter(obj => obj.name === 'chunk' && obj.visible) + .filter(obj => { + // Get the mesh child which has the actual geometry + const mesh = obj.children.find(child => child.name === 'mesh') + if (!mesh) return false + + // Check distance from player position to chunk + const chunkWorldPos = new THREE.Vector3() + mesh.getWorldPosition(chunkWorldPos) + const distance = pos.distanceTo(chunkWorldPos) + return distance < 80 // Only check chunks within 80 blocks + }) + + // Get all mesh children for raycasting + const meshes: THREE.Object3D[] = [] + for (const chunk of nearbyChunks) { + const mesh = chunk.children.find(child => child.name === 'mesh') + if (mesh) meshes.push(mesh) + } + + const intersects = raycaster.intersectObjects(meshes, false) + + let finalDistance = distance + if (intersects.length > 0) { + // Use intersection distance minus a small offset to prevent clipping + finalDistance = Math.max(0.5, intersects[0].distance - 0.2) + } + + const finalPos = new Vec3( + pos.x + direction.x * finalDistance, + pos.y + direction.y * finalDistance, + pos.z + direction.z * finalDistance + ) + + return finalPos + } + + private debugRaycastHelper?: THREE.ArrowHelper + private debugHitPoint?: THREE.Mesh + + private debugRaycast (pos: THREE.Vector3, direction: THREE.Vector3, distance: number) { + // Remove existing debug objects + if (this.debugRaycastHelper) { + this.scene.remove(this.debugRaycastHelper) + this.debugRaycastHelper = undefined + } + if (this.debugHitPoint) { + this.scene.remove(this.debugHitPoint) + this.debugHitPoint = undefined + } + + // Create raycast arrow + this.debugRaycastHelper = new THREE.ArrowHelper( + direction.clone().normalize(), + pos, + distance, + 0xff_00_00, // Red color + distance * 0.1, + distance * 0.05 + ) + this.scene.add(this.debugRaycastHelper) + + // Create hit point indicator + const hitGeometry = new THREE.SphereGeometry(0.2, 8, 8) + const hitMaterial = new THREE.MeshBasicMaterial({ color: 0x00_ff_00 }) + this.debugHitPoint = new THREE.Mesh(hitGeometry, hitMaterial) + this.debugHitPoint.position.copy(pos).add(direction.clone().multiplyScalar(distance)) + this.scene.add(this.debugHitPoint) + } + + prevFramePerspective = null as string | null + + updateCamera (pos: Vec3 | null, yaw: number, pitch: number): void { + // if (this.freeFlyMode) { + // pos = this.freeFlyState.position + // pitch = this.freeFlyState.pitch + // yaw = this.freeFlyState.yaw + // } + + if (pos) { + if (this.renderer.xr.isPresenting) { + pos.y -= this.camera.position.y // Fix Y position of camera in world + } + + this.currentPosTween?.stop() + this.currentPosTween = new tweenJs.Tween(this.cameraObject.position).to({ x: pos.x, y: pos.y, z: pos.z }, this.playerStateUtils.isSpectatingEntity() ? 150 : 50).start() + // this.freeFlyState.position = pos + } + + if (this.playerStateUtils.isSpectatingEntity()) { + const rotation = this.cameraShake.getBaseRotation() + // wrap in the correct direction + let yawOffset = 0 + const halfPi = Math.PI / 2 + if (rotation.yaw < halfPi && yaw > Math.PI + halfPi) { + yawOffset = -Math.PI * 2 + } else if (yaw < halfPi && rotation.yaw > Math.PI + halfPi) { + yawOffset = Math.PI * 2 + } + this.currentRotTween?.stop() + this.currentRotTween = new tweenJs.Tween(rotation).to({ pitch, yaw: yaw + yawOffset }, 100) + .onUpdate(params => this.cameraShake.setBaseRotation(params.pitch, params.yaw - yawOffset)).start() + } else { + this.currentRotTween?.stop() + this.cameraShake.setBaseRotation(pitch, yaw) + + const { perspective } = this.playerStateReactive + if (perspective === 'third_person_back' || perspective === 'third_person_front') { + // Use getThirdPersonCamera for proper raycasting with max distance of 4 + const currentCameraPos = this.cameraObject.position + const thirdPersonPos = this.getThirdPersonCamera( + new THREE.Vector3(currentCameraPos.x, currentCameraPos.y, currentCameraPos.z), + yaw, + pitch + ) + + const distance = currentCameraPos.distanceTo(new THREE.Vector3(thirdPersonPos.x, thirdPersonPos.y, thirdPersonPos.z)) + // Apply Z offset based on perspective and calculated distance + const zOffset = perspective === 'third_person_back' ? distance : -distance + this.camera.position.set(0, 0, zOffset) + + if (perspective === 'third_person_front') { + // Flip camera view 180 degrees around Y axis for front view + this.camera.rotation.set(0, Math.PI, 0) + } else { + this.camera.rotation.set(0, 0, 0) + } + } else { + this.camera.position.set(0, 0, 0) + this.camera.rotation.set(0, 0, 0) + + // remove any debug raycasting + if (this.debugRaycastHelper) { + this.scene.remove(this.debugRaycastHelper) + this.debugRaycastHelper = undefined + } + if (this.debugHitPoint) { + this.scene.remove(this.debugHitPoint) + this.debugHitPoint = undefined + } + } + } + + this.updateCameraSectionPos() + } + + debugChunksVisibilityOverride () { + const { chunksRenderAboveOverride, chunksRenderBelowOverride, chunksRenderDistanceOverride, chunksRenderAboveEnabled, chunksRenderBelowEnabled, chunksRenderDistanceEnabled } = this.reactiveDebugParams + + const baseY = this.cameraSectionPos.y * 16 + + if ( + this.displayOptions.inWorldRenderingConfig.enableDebugOverlay && + chunksRenderAboveOverride !== undefined || + chunksRenderBelowOverride !== undefined || + chunksRenderDistanceOverride !== undefined + ) { + for (const [key, object] of Object.entries(this.sectionObjects)) { + const [x, y, z] = key.split(',').map(Number) + const isVisible = + // eslint-disable-next-line no-constant-binary-expression, sonarjs/no-redundant-boolean + (chunksRenderAboveEnabled && chunksRenderAboveOverride !== undefined) ? y <= (baseY + chunksRenderAboveOverride) : true && + // eslint-disable-next-line @stylistic/indent-binary-ops, no-constant-binary-expression, sonarjs/no-redundant-boolean + (chunksRenderBelowEnabled && chunksRenderBelowOverride !== undefined) ? y >= (baseY - chunksRenderBelowOverride) : true && + // eslint-disable-next-line @stylistic/indent-binary-ops + (chunksRenderDistanceEnabled && chunksRenderDistanceOverride !== undefined) ? Math.abs(y - baseY) <= chunksRenderDistanceOverride : true + + object.visible = isVisible + } + } else { + for (const object of Object.values(this.sectionObjects)) { + object.visible = true + } + } + } + + render (sizeChanged = false) { + if (this.reactiveDebugParams.stopRendering) return + this.debugChunksVisibilityOverride() + const start = performance.now() + this.lastRendered = performance.now() + this.cursorBlock.render() + this.updateSectionOffsets() + + // Update skybox position to follow camera + const cameraPos = this.getCameraPosition() + this.skyboxRenderer.update(cameraPos, this.viewDistance) + + const sizeOrFovChanged = sizeChanged || this.displayOptions.inWorldRenderingConfig.fov !== this.camera.fov + if (sizeOrFovChanged) { + const size = this.renderer.getSize(new THREE.Vector2()) + this.camera.aspect = size.width / size.height + this.camera.fov = this.displayOptions.inWorldRenderingConfig.fov + this.camera.updateProjectionMatrix() + } + + if (!this.reactiveDebugParams.disableEntities) { + this.entities.render() + } + + // eslint-disable-next-line @typescript-eslint/non-nullable-type-assertion-style + const cam = this.cameraGroupVr instanceof THREE.Group ? this.cameraGroupVr.children.find(child => child instanceof THREE.PerspectiveCamera) as THREE.PerspectiveCamera : this.camera + this.renderer.render(this.scene, cam) + + if ( + this.displayOptions.inWorldRenderingConfig.showHand && + this.playerStateReactive.gameMode !== 'spectator' && + this.playerStateReactive.perspective === 'first_person' && + // !this.freeFlyMode && + !this.renderer.xr.isPresenting + ) { + this.holdingBlock.render(this.camera, this.renderer, this.ambientLight, this.directionalLight) + this.holdingBlockLeft.render(this.camera, this.renderer, this.ambientLight, this.directionalLight) + } + + for (const fountain of this.fountains) { + if (this.sectionObjects[fountain.sectionId] && !this.sectionObjects[fountain.sectionId].foutain) { + fountain.createParticles(this.sectionObjects[fountain.sectionId]) + this.sectionObjects[fountain.sectionId].foutain = true + } + fountain.render() + } + + this.waypoints.render() + + for (const onRender of this.onRender) { + onRender() + } + const end = performance.now() + const totalTime = end - start + this.renderTimeAvgCount++ + this.renderTimeAvg = ((this.renderTimeAvg * (this.renderTimeAvgCount - 1)) + totalTime) / this.renderTimeAvgCount + this.renderTimeMax = Math.max(this.renderTimeMax, totalTime) + this.currentRenderedFrames++ + } + + renderHead (position: Vec3, rotation: number, isWall: boolean, blockEntity) { + let textureData: string + if (blockEntity.SkullOwner) { + textureData = blockEntity.SkullOwner.Properties?.textures?.[0]?.Value + } else { + textureData = blockEntity.profile?.properties?.find(p => p.name === 'textures')?.value + } + if (!textureData) return + + try { + const decodedData = JSON.parse(Buffer.from(textureData, 'base64').toString()) + let skinUrl = decodedData.textures?.SKIN?.url + const { skinTexturesProxy } = this.worldRendererConfig + if (skinTexturesProxy) { + skinUrl = skinUrl?.replace('http://textures.minecraft.net/', skinTexturesProxy) + .replace('https://textures.minecraft.net/', skinTexturesProxy) + } + + const mesh = getMesh(this, skinUrl, armorModel.head) + const group = new THREE.Group() + if (isWall) { + mesh.position.set(0, 0.3125, 0.3125) + } + // move head model down as armor have a different offset than blocks + mesh.position.y -= 23 / 16 + group.add(mesh) + group.position.set(position.x + 0.5, position.y + 0.045, position.z + 0.5) + group.rotation.set( + 0, + -THREE.MathUtils.degToRad(rotation * (isWall ? 90 : 45 / 2)), + 0 + ) + group.scale.set(0.8, 0.8, 0.8) + return group + } catch (err) { + console.error('Error decoding player texture:', err) + } + } + + renderSign (position: Vec3, rotation: number, isWall: boolean, isHanging: boolean, blockEntity) { + const tex = this.getSignTexture(position, blockEntity, isHanging) + + if (!tex) return + + // todo implement + // const key = JSON.stringify({ position, rotation, isWall }) + // if (this.signsCache.has(key)) { + // console.log('cached', key) + // } else { + // this.signsCache.set(key, tex) + // } + + const mesh = new THREE.Mesh(new THREE.PlaneGeometry(1, 1), new THREE.MeshBasicMaterial({ map: tex, transparent: true })) + mesh.renderOrder = 999 + + const lineHeight = 7 / 16 + const scaleFactor = isHanging ? 1.3 : 1 + mesh.scale.set(1 * scaleFactor, lineHeight * scaleFactor, 1 * scaleFactor) + + const thickness = (isHanging ? 2 : 1.5) / 16 + const wallSpacing = 0.25 / 16 + if (isWall && !isHanging) { + mesh.position.set(0, 0, -0.5 + thickness + wallSpacing + 0.0001) + } else { + mesh.position.set(0, 0, thickness / 2 + 0.0001) + } + + const group = new THREE.Group() + group.rotation.set( + 0, + -THREE.MathUtils.degToRad(rotation * (isWall ? 90 : 45 / 2)), + 0 + ) + group.add(mesh) + const height = (isHanging ? 10 : 8) / 16 + const heightOffset = (isHanging ? 0 : isWall ? 4.333 : 9.333) / 16 + const textPosition = height / 2 + heightOffset + group.position.set(position.x + 0.5, position.y + textPosition, position.z + 0.5) + return group + } + + lightUpdate (chunkX: number, chunkZ: number) { + // set all sections in the chunk dirty + for (let y = this.worldSizeParams.minY; y < this.worldSizeParams.worldHeight; y += 16) { + this.setSectionDirty(new Vec3(chunkX, y, chunkZ)) + } + } + + rerenderAllChunks () { // todo not clear what to do with loading chunks + for (const key of Object.keys(this.sectionObjects)) { + const [x, y, z] = key.split(',').map(Number) + this.setSectionDirty(new Vec3(x, y, z)) + } + } + + updateShowChunksBorder (value: boolean) { + for (const object of Object.values(this.sectionObjects)) { + for (const child of object.children) { + if (child.name === 'helper') { + child.visible = value + } + } + } + } + + resetWorld () { + super.resetWorld() + + for (const mesh of Object.values(this.sectionObjects)) { + this.scene.remove(mesh) + } + + // Clean up debug objects + if (this.debugRaycastHelper) { + this.scene.remove(this.debugRaycastHelper) + this.debugRaycastHelper = undefined + } + if (this.debugHitPoint) { + this.scene.remove(this.debugHitPoint) + this.debugHitPoint = undefined + } + } + + getLoadedChunksRelative (pos: Vec3, includeY = false) { + const [currentX, currentY, currentZ] = sectionPos(pos) + return Object.fromEntries(Object.entries(this.sectionObjects).map(([key, o]) => { + const [xRaw, yRaw, zRaw] = key.split(',').map(Number) + const [x, y, z] = sectionPos({ x: xRaw, y: yRaw, z: zRaw }) + const setKey = includeY ? `${x - currentX},${y - currentY},${z - currentZ}` : `${x - currentX},${z - currentZ}` + return [setKey, o] + })) + } + + cleanChunkTextures (x, z) { + const textures = this.chunkTextures.get(`${Math.floor(x / 16)},${Math.floor(z / 16)}`) ?? {} + for (const key of Object.keys(textures)) { + textures[key].dispose() + delete textures[key] + } + } + + readdChunks () { + for (const key of Object.keys(this.sectionObjects)) { + this.scene.remove(this.sectionObjects[key]) + } + setTimeout(() => { + for (const key of Object.keys(this.sectionObjects)) { + this.scene.add(this.sectionObjects[key]) + } + }, 500) + } + + disableUpdates (children = this.scene.children) { + for (const child of children) { + child.matrixWorldNeedsUpdate = false + this.disableUpdates(child.children ?? []) + } + } + + removeColumn (x, z) { + super.removeColumn(x, z) + + this.cleanChunkTextures(x, z) + for (let y = this.worldSizeParams.minY; y < this.worldSizeParams.worldHeight; y += 16) { + this.setSectionDirty(new Vec3(x, y, z), false) + const key = `${x},${y},${z}` + const mesh = this.sectionObjects[key] + if (mesh) { + this.scene.remove(mesh) + disposeObject(mesh) + } + delete this.sectionObjects[key] + } + } + + setSectionDirty (...args: Parameters) { + const [pos] = args + this.cleanChunkTextures(pos.x, pos.z) // todo don't do this! + super.setSectionDirty(...args) + } + + static getRendererInfo (renderer: THREE.WebGLRenderer) { + try { + const gl = renderer.getContext() + return `${gl.getParameter(gl.getExtension('WEBGL_debug_renderer_info')!.UNMASKED_RENDERER_WEBGL)}` + } catch (err) { + console.warn('Failed to get renderer info', err) + } + } + + worldStop () { + this.media.onWorldStop() + } + + destroy (): void { + super.destroy() + this.skyboxRenderer.dispose() + } + + shouldObjectVisible (object: THREE.Object3D) { + // Get chunk coordinates + const chunkX = Math.floor(object.position.x / 16) * 16 + const chunkZ = Math.floor(object.position.z / 16) * 16 + const sectionY = Math.floor(object.position.y / 16) * 16 + + const chunkKey = `${chunkX},${chunkZ}` + const sectionKey = `${chunkX},${sectionY},${chunkZ}` + + return !!this.finishedChunks[chunkKey] || !!this.sectionObjects[sectionKey] + } + + updateSectionOffsets () { + const currentTime = performance.now() + for (const [key, anim] of Object.entries(this.sectionsOffsetsAnimations)) { + const timeDelta = (currentTime - anim.time) / 1000 // Convert to seconds + anim.time = currentTime + + // Update offsets based on speed and time delta + anim.currentOffsetX += anim.speedX * timeDelta + anim.currentOffsetY += anim.speedY * timeDelta + anim.currentOffsetZ += anim.speedZ * timeDelta + + // Apply limits if they exist + if (anim.limitX !== undefined) { + if (anim.speedX > 0) { + anim.currentOffsetX = Math.min(anim.currentOffsetX, anim.limitX) + } else { + anim.currentOffsetX = Math.max(anim.currentOffsetX, anim.limitX) + } + } + if (anim.limitY !== undefined) { + if (anim.speedY > 0) { + anim.currentOffsetY = Math.min(anim.currentOffsetY, anim.limitY) + } else { + anim.currentOffsetY = Math.max(anim.currentOffsetY, anim.limitY) + } + } + if (anim.limitZ !== undefined) { + if (anim.speedZ > 0) { + anim.currentOffsetZ = Math.min(anim.currentOffsetZ, anim.limitZ) + } else { + anim.currentOffsetZ = Math.max(anim.currentOffsetZ, anim.limitZ) + } + } + + // Apply the offset to the section object + const section = this.sectionObjects[key] + if (section) { + section.position.set( + anim.currentOffsetX, + anim.currentOffsetY, + anim.currentOffsetZ + ) + section.updateMatrix() + } + } + } + + reloadWorld () { + this.entities.reloadEntities() + } +} + +class StarField { + points?: THREE.Points + private _enabled = true + get enabled () { + return this._enabled + } + + set enabled (value) { + this._enabled = value + if (this.points) { + this.points.visible = value + } + } + + constructor ( + private readonly worldRenderer: WorldRendererThree + ) { + const clock = new THREE.Clock() + const speed = 0.2 + this.worldRenderer.onRender.push(() => { + if (!this.points) return + this.points.position.copy(this.worldRenderer.getCameraPosition()); + (this.points.material as StarfieldMaterial).uniforms.time.value = clock.getElapsedTime() * speed + }) + } + + addToScene () { + if (this.points || !this.enabled) return + + const radius = 80 + const depth = 50 + const count = 7000 + const factor = 7 + const saturation = 10 + + const geometry = new THREE.BufferGeometry() + + const genStar = r => new THREE.Vector3().setFromSpherical(new THREE.Spherical(r, Math.acos(1 - Math.random() * 2), Math.random() * 2 * Math.PI)) + + const positions = [] as number[] + const colors = [] as number[] + const sizes = Array.from({ length: count }, () => (0.5 + 0.5 * Math.random()) * factor) + const color = new THREE.Color() + let r = radius + depth + const increment = depth / count + for (let i = 0; i < count; i++) { + r -= increment * Math.random() + positions.push(...genStar(r).toArray()) + color.setHSL(i / count, saturation, 0.9) + colors.push(color.r, color.g, color.b) + } + + geometry.setAttribute('position', new THREE.Float32BufferAttribute(positions, 3)) + geometry.setAttribute('color', new THREE.Float32BufferAttribute(colors, 3)) + geometry.setAttribute('size', new THREE.Float32BufferAttribute(sizes, 1)) + + // Create a material + const material = new StarfieldMaterial() + material.blending = THREE.AdditiveBlending + material.depthTest = false + material.transparent = true + + // Create points and add them to the scene + this.points = new THREE.Points(geometry, material) + this.worldRenderer.scene.add(this.points) + + this.points.renderOrder = -1 + } + + remove () { + if (this.points) { + this.points.geometry.dispose(); + (this.points.material as THREE.Material).dispose() + this.worldRenderer.scene.remove(this.points) + + this.points = undefined + } + } +} + +const version = parseInt(THREE.REVISION.replaceAll(/\D+/g, ''), 10) +class StarfieldMaterial extends THREE.ShaderMaterial { + constructor () { + super({ + uniforms: { time: { value: 0 }, fade: { value: 1 } }, + vertexShader: /* glsl */ ` + uniform float time; + attribute float size; + varying vec3 vColor; + attribute vec3 color; + void main() { + vColor = color; + vec4 mvPosition = modelViewMatrix * vec4(position, 0.5); + gl_PointSize = 0.7 * size * (30.0 / -mvPosition.z) * (3.0 + sin(time + 100.0)); + gl_Position = projectionMatrix * mvPosition; + }`, + fragmentShader: /* glsl */ ` + uniform sampler2D pointTexture; + uniform float fade; + varying vec3 vColor; + void main() { + float opacity = 1.0; + gl_FragColor = vec4(vColor, 1.0); + + #include + #include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}> + }`, + }) + } +} diff --git a/rsbuild.config.ts b/rsbuild.config.ts new file mode 100644 index 00000000..6cd6b2ed --- /dev/null +++ b/rsbuild.config.ts @@ -0,0 +1,298 @@ +/// +import { defineConfig, mergeRsbuildConfig, RsbuildPluginAPI } from '@rsbuild/core' +import { pluginReact } from '@rsbuild/plugin-react' +import { pluginTypedCSSModules } from '@rsbuild/plugin-typed-css-modules' +import { pluginNodePolyfill } from '@rsbuild/plugin-node-polyfill' +import { pluginTypeCheck } from '@rsbuild/plugin-type-check' +import path from 'path' +import childProcess from 'child_process' +import fs from 'fs' +import fsExtra from 'fs-extra' +import { promisify } from 'util' +import { generateSW } from 'workbox-build' +import { getSwAdditionalEntries } from './scripts/build' +import { appAndRendererSharedConfig } from './renderer/rsbuildSharedConfig' +import { genLargeDataAliases } from './scripts/genLargeDataAliases' +import sharp from 'sharp' +import supportedVersions from './src/supportedVersions.mjs' +import { startWsServer } from './scripts/wsServer' + +const SINGLE_FILE_BUILD = process.env.SINGLE_FILE_BUILD === 'true' + +if (SINGLE_FILE_BUILD) { + const patchCssFile = 'node_modules/pixelarticons/fonts/pixelart-icons-font.css' + const text = fs.readFileSync(patchCssFile, 'utf8') + fs.writeFileSync(patchCssFile, text.replaceAll("url('pixelart-icons-font.ttf?t=1711815892278') format('truetype'),", ""), 'utf8') +} + +//@ts-ignore +try { require('./localSettings.js') } catch { } + +const execAsync = promisify(childProcess.exec) + +const buildingVersion = new Date().toISOString().split(':')[0] + +const dev = process.env.NODE_ENV === 'development' +const disableServiceWorker = process.env.DISABLE_SERVICE_WORKER === 'true' + +let releaseTag +let releaseLink +let releaseChangelog +let githubRepositoryFallback + +if (fs.existsSync('./assets/release.json')) { + const releaseJson = JSON.parse(fs.readFileSync('./assets/release.json', 'utf8')) + releaseTag = releaseJson.latestTag + releaseLink = releaseJson.isCommit ? `/commit/${releaseJson.latestTag}` : `/releases/${releaseJson.latestTag}` + releaseChangelog = releaseJson.changelog?.replace(//, '') + githubRepositoryFallback = releaseJson.repository +} + +const configJson = JSON.parse(fs.readFileSync('./config.json', 'utf8')) +try { + Object.assign(configJson, JSON.parse(fs.readFileSync(process.env.LOCAL_CONFIG_FILE || './config.local.json', 'utf8'))) +} catch (err) {} +if (dev) { + configJson.defaultProxy = ':8080' +} + +const configSource = (SINGLE_FILE_BUILD ? 'BUNDLED' : (process.env.CONFIG_JSON_SOURCE || 'REMOTE')) as 'BUNDLED' | 'REMOTE' + +const faviconPath = 'favicon.png' + +const enableMetrics = process.env.ENABLE_METRICS === 'true' + +// base options are in ./renderer/rsbuildSharedConfig.ts +const appConfig = defineConfig({ + html: { + template: './index.html', + inject: 'body', + tags: [ + ...SINGLE_FILE_BUILD ? [] : [ + { + tag: 'link', + attrs: { + rel: 'manifest', + crossorigin: 'anonymous', + href: 'manifest.json' + }, + } + ], + // + // + // + { + tag: 'link', + attrs: { + rel: 'favicon', + href: faviconPath + } + }, + ...SINGLE_FILE_BUILD ? [] : [ + { + tag: 'link', + attrs: { + rel: 'icon', + type: 'image/png', + href: faviconPath + } + }, + { + tag: 'meta', + attrs: { + property: 'og:image', + content: faviconPath + } + } + ] + ] + }, + output: { + externals: [ + 'sharp' + ], + sourceMap: { + js: 'source-map', + css: true, + }, + minify: { + // js: false, + jsOptions: { + minimizerOptions: { + mangle: { + safari10: true, + keep_classnames: true, + keep_fnames: true, + keep_private_props: true, + }, + compress: { + unused: true, + }, + }, + }, + }, + distPath: SINGLE_FILE_BUILD ? { + html: './single', + } : undefined, + inlineScripts: SINGLE_FILE_BUILD, + inlineStyles: SINGLE_FILE_BUILD, + // 50kb limit for data uri + dataUriLimit: SINGLE_FILE_BUILD ? 1 * 1024 * 1024 * 1024 : 50 * 1024 + }, + performance: { + // prefetch: { + // include(filename) { + // return filename.includes('mc-data') || filename.includes('mc-assets') + // }, + // }, + }, + source: { + entry: { + index: './src/index.ts', + }, + // exclude: [ + // /.woff$/ + // ], + define: { + 'process.env.BUILD_VERSION': JSON.stringify(!dev ? buildingVersion : 'undefined'), + 'process.env.MAIN_MENU_LINKS': JSON.stringify(process.env.MAIN_MENU_LINKS), + 'process.env.SINGLE_FILE_BUILD': JSON.stringify(process.env.SINGLE_FILE_BUILD), + 'process.env.SINGLE_FILE_BUILD_MODE': JSON.stringify(process.env.SINGLE_FILE_BUILD), + 'process.platform': '"browser"', + 'process.env.GITHUB_URL': + JSON.stringify(`https://github.com/${process.env.GITHUB_REPOSITORY || `${process.env.VERCEL_GIT_REPO_OWNER}/${process.env.VERCEL_GIT_REPO_SLUG}` || githubRepositoryFallback}`), + 'process.env.ALWAYS_MINIMAL_SERVER_UI': JSON.stringify(process.env.ALWAYS_MINIMAL_SERVER_UI), + 'process.env.RELEASE_TAG': JSON.stringify(releaseTag), + 'process.env.RELEASE_LINK': JSON.stringify(releaseLink), + 'process.env.RELEASE_CHANGELOG': JSON.stringify(releaseChangelog), + 'process.env.DISABLE_SERVICE_WORKER': JSON.stringify(disableServiceWorker), + 'process.env.INLINED_APP_CONFIG': JSON.stringify(configSource === 'BUNDLED' ? configJson : null), + 'process.env.ENABLE_COOKIE_STORAGE': JSON.stringify(process.env.ENABLE_COOKIE_STORAGE || true), + 'process.env.COOKIE_STORAGE_PREFIX': JSON.stringify(process.env.COOKIE_STORAGE_PREFIX || ''), + 'process.env.WS_PORT': JSON.stringify(enableMetrics ? 8081 : false), + }, + }, + server: { + // strictPort: true, + // publicDir: { + // name: 'assets', + // }, + proxy: { + '/api': 'http://localhost:8080', + }, + }, + plugins: [ + pluginTypedCSSModules(), + { + name: 'test', + setup(build: RsbuildPluginAPI) { + const prep = async () => { + console.time('total-prep') + fs.mkdirSync('./generated', { recursive: true }) + if (!fs.existsSync('./generated/minecraft-data-optimized.json') || !fs.existsSync('./generated/mc-assets-compressed.js') || require('./generated/minecraft-data-optimized.json').versionKey !== require('minecraft-data/package.json').version) { + childProcess.execSync('tsx ./scripts/makeOptimizedMcData.mjs', { stdio: 'inherit' }) + } + childProcess.execSync('tsx ./scripts/genShims.ts', { stdio: 'inherit' }) + if (!fs.existsSync('./generated/latestBlockCollisionsShapes.json') || require('./generated/latestBlockCollisionsShapes.json').versionKey !== require('minecraft-data/package.json').version) { + childProcess.execSync('tsx ./scripts/optimizeBlockCollisions.ts', { stdio: 'inherit' }) + } + // childProcess.execSync(['tsx', './scripts/genLargeDataAliases.ts', ...(SINGLE_FILE_BUILD ? ['--compressed'] : [])].join(' '), { stdio: 'inherit' }) + genLargeDataAliases(SINGLE_FILE_BUILD || process.env.ALWAYS_COMPRESS_LARGE_DATA === 'true') + fsExtra.copySync('./node_modules/mc-assets/dist/other-textures/latest/entity', './dist/textures/entity') + fsExtra.copySync('./assets/background', './dist/background') + fs.copyFileSync('./assets/favicon.png', './dist/favicon.png') + fs.copyFileSync('./assets/playground.html', './dist/playground.html') + fs.copyFileSync('./assets/manifest.json', './dist/manifest.json') + fs.copyFileSync('./assets/config.html', './dist/config.html') + fs.copyFileSync('./assets/debug-inputs.html', './dist/debug-inputs.html') + fs.copyFileSync('./assets/loading-bg.jpg', './dist/loading-bg.jpg') + if (fs.existsSync('./assets/release.json')) { + fs.copyFileSync('./assets/release.json', './dist/release.json') + } + + if (configSource === 'REMOTE') { + fs.writeFileSync('./dist/config.json', JSON.stringify(configJson, undefined, 2), 'utf8') + } + if (fs.existsSync('./generated/sounds.js')) { + fs.copyFileSync('./generated/sounds.js', './dist/sounds.js') + } + // childProcess.execSync('./scripts/prepareSounds.mjs', { stdio: 'inherit' }) + // childProcess.execSync('tsx ./scripts/genMcDataTypes.ts', { stdio: 'inherit' }) + // childProcess.execSync('tsx ./scripts/genPixelartTypes.ts', { stdio: 'inherit' }) + if (fs.existsSync('./renderer/dist/mesher.js') && dev) { + // copy mesher + fs.copyFileSync('./renderer/dist/mesher.js', './dist/mesher.js') + fs.copyFileSync('./renderer/dist/mesher.js.map', './dist/mesher.js.map') + } else if (!dev) { + await execAsync('pnpm run build-mesher') + } + fs.writeFileSync('./dist/version.txt', buildingVersion, 'utf-8') + + // Start WebSocket server in development + if (dev && enableMetrics) { + await startWsServer(8081, false) + } + + console.timeEnd('total-prep') + } + if (!dev) { + build.onBeforeBuild(async () => { + prep() + }) + build.onAfterBuild(async () => { + if (fs.readdirSync('./assets/customTextures').length > 0) { + childProcess.execSync('tsx ./scripts/patchAssets.ts', { stdio: 'inherit' }) + } + + if (SINGLE_FILE_BUILD) { + // check that only index.html is in the dist/single folder + const singleBuildFiles = fs.readdirSync('./dist/single') + if (singleBuildFiles.length !== 1 || singleBuildFiles[0] !== 'index.html') { + throw new Error('Single file build must only have index.html in the dist/single folder. Ensure workers are imported & built correctly.') + } + + // process index.html + const singleBuildHtml = './dist/single/index.html' + let html = fs.readFileSync(singleBuildHtml, 'utf8') + const verToMajor = (ver: string) => ver.split('.').slice(0, 2).join('.') + const supportedMajorVersions = [...new Set(supportedVersions.map(a => verToMajor(a)))].join(', ') + html = `\n\n\n${html}` + + const resizedImage = (await (sharp('./assets/favicon.png') as any).resize(64).toBuffer()).toString('base64') + html = html.replace('favicon.png', `data:image/png;base64,${resizedImage}`) + html = html.replace('src="./loading-bg.jpg"', `src="data:image/png;base64,${fs.readFileSync('./assets/loading-bg.jpg', 'base64')}"`) + html += '' + fs.writeFileSync(singleBuildHtml, html, 'utf8') + // write output file size + console.log('single file size', (fs.statSync(singleBuildHtml).size / 1024 / 1024).toFixed(2), 'mb') + } else { + if (!disableServiceWorker) { + const { count, size, warnings } = await generateSW({ + // dontCacheBustURLsMatching: [new RegExp('...')], + globDirectory: 'dist', + skipWaiting: true, + clientsClaim: true, + additionalManifestEntries: getSwAdditionalEntries(), + globPatterns: [], + swDest: './dist/service-worker.js', + }) + } + } + }) + } + build.onBeforeStartDevServer(() => prep()) + }, + }, + ], + // performance: { + // bundleAnalyze: { + // analyzerMode: 'json', + // reportFilename: 'report.json', + // }, + // }, +}) + +export default mergeRsbuildConfig( + appAndRendererSharedConfig(), + appConfig +) diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 00000000..7631b82b Binary files /dev/null and b/screenshot.png differ diff --git a/scripts/build.js b/scripts/build.js new file mode 100644 index 00000000..2d5e0a2e --- /dev/null +++ b/scripts/build.js @@ -0,0 +1,111 @@ +//@ts-check +const fsExtra = require('fs-extra') +const defaultLocalServerOptions = require('../src/defaultLocalServerOptions') +const glob = require('glob') +const fs = require('fs') +const crypto = require('crypto') +const path = require('path') + +const prismarineViewerBase = "./node_modules/renderer" + +// these files could be copied at build time eg with copy plugin, but copy plugin slows down the config so we copy them there, alternative we could inline it in esbuild config +const filesToCopy = [ + { from: `${prismarineViewerBase}/public/mesher.js`, to: 'dist/mesher.js' }, + { from: './assets/', to: './dist/' }, + { from: './config.json', to: 'dist/config.json' }, + // { from: path.join(entityMcAssets.directory, 'entity'), to: 'dist/textures/1.16.4/entity' }, +] +exports.filesToCopy = filesToCopy +exports.copyFiles = (dev = false) => { + console.time('copy files') + if (!dev) { + // copy glob + const cwd = `${prismarineViewerBase}/public/textures/` + const files = glob.sync('*.png', { cwd: cwd, nodir: true, }) + for (const file of files) { + const copyDest = path.join('dist/textures/', file) + fs.mkdirSync(path.dirname(copyDest), { recursive: true, }) + fs.copyFileSync(path.join(cwd, file), copyDest) + } + } + + filesToCopy.forEach(file => { + fsExtra.copySync(file.from, file.to) + }) + + console.timeEnd('copy files') +} + +exports.copyFilesDev = () => { + if (fsExtra.existsSync('dist/config.json')) return + exports.copyFiles() +} + +exports.getSwAdditionalEntries = () => { + // need to be careful with this + const filesToCachePatterns = [ + 'index.html', + 'background/**', + // todo-low copy from assets + '*.mp3', + '*.ttf', + '*.png', + '*.woff', + 'mesher.js', + 'manifest.json', + 'worldSaveWorker.js', + `textures/entity/squid/squid.png`, + 'sounds.js', + // everything but not .map + 'static/**/!(*.map)', + ] + const filesNeedsCacheKey = [ + 'index.html', + 'mesher.js', + 'worldSaveWorker.js', + ] + const output = [] + console.log('Generating sw additional entries...') + for (const pattern of filesToCachePatterns) { + const files = glob.sync(pattern, { cwd: 'dist' }) + for (const file of files) { + const fullPath = path.join('dist', file) + if (!fs.lstatSync(fullPath).isFile()) continue + let revision = null + const url = './' + file.replace(/\\/g, '/') + if (filesNeedsCacheKey.includes(file)) { + const fileContents = fs.readFileSync(fullPath, 'utf-8') + const md5Hash = crypto.createHash('md5').update(fileContents).digest('hex') + revision = md5Hash + } + output.push({ url, revision }) + } + } + if (output.length > 40) { + throw new Error(`SW: Ios has a limit of 40 urls to cache (now ${output.length})`) + } + console.log(`Got ${output.length} additional sw entries to cache`) + return output +} + +exports.moveStorybookFiles = () => { + fsExtra.moveSync('storybook-static', 'dist/storybook', { overwrite: true, }) + fsExtra.copySync('dist/storybook', '.vercel/output/static/storybook') +} + +exports.getSwFilesSize = () => { + const files = exports.getSwAdditionalEntries() + let size = 0 + for (const { url } of files) { + const file = path.join(__dirname, '../dist', url) + size += fs.statSync(file).size + } + console.log('mb', size / 1024 / 1024) +} + +const fn = require.main === module && exports[process.argv[2]] + +if (fn) { + const result = fn() + if (result) console.log(result) +} diff --git a/scripts/buildNpmReact.ts b/scripts/buildNpmReact.ts new file mode 100644 index 00000000..f4f00e4d --- /dev/null +++ b/scripts/buildNpmReact.ts @@ -0,0 +1,160 @@ +import fs from 'fs' +import path from 'path' +import { build, transform } from 'esbuild' +import { execSync } from 'child_process' +// import { copy } from 'fs-extra' +import { glob } from 'glob' + +const isAbsolute = (path: string) => path.startsWith('/') || /^[A-Z]:/i.test(path) + +fs.promises.readdir(path.resolve(__dirname, '../src/react')).then(async (files) => { + const components = files + .filter((file) => { + if (file.startsWith('Concept')) return false + return file.endsWith('.stories.tsx') + }) + .map((file) => { + return file.replace('.stories.tsx', '') + }) + + const content = components.map((component) => { + return `export { default as ${component} } from './${component}'` + }).join('\n') + + await fs.promises.writeFile( + path.resolve(__dirname, '../src/react/npmReactComponents.ts'), + content + ) + + execSync('pnpm tsc -p tsconfig.npm.json', { + cwd: path.resolve(__dirname, '../'), + stdio: 'inherit', + }) + + const packageJson = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.npm.json'), 'utf-8')) + const packageJsonRoot = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../package.json'), 'utf-8')) + const external = Object.keys(packageJson.peerDependencies) + const dependencies = new Set() + let version = process.argv[2] || packageJsonRoot.version + version = version.replace(/^v/, '') + packageJson.version = version + + const externalize = ['renderer', 'mc-assets'] + const { metafile } = await build({ + entryPoints: [path.resolve(__dirname, '../src/react/npmReactComponents.ts')], + bundle: true, + outfile: path.resolve(__dirname, '../dist-npm/bundle.esm.js'), + format: 'esm', + platform: 'browser', + target: 'es2020', + external: external, + metafile: true, + minify: true, + write: false, // todo + loader: { + '.png': 'dataurl', + '.jpg': 'dataurl', + '.jpeg': 'dataurl', + '.webp': 'dataurl', + '.css': 'text', + }, + plugins: [ + // on external module resolve + { + name: 'collect-imports', + setup (build) { + build.onResolve({ filter: /.*/ }, (args) => { + if (args.importer.includes('node_modules') || external.some(x => args.path.startsWith(x)) || isAbsolute(args.path)) { + return undefined + } + if (args.path.startsWith('./') || args.path.startsWith('../')) { + if (args.path.endsWith('.png') || args.path.endsWith('.css') || args.path.endsWith('.jpg') || args.path.endsWith('.jpeg')) { + const absoluteImporting = path.join(path.dirname(args.importer), args.path) + const absoluteRoot = path.resolve(__dirname, '../src') + const relativeToRoot = path.relative(absoluteRoot, absoluteImporting) + fs.copyFileSync(absoluteImporting, path.resolve(__dirname, '../dist-npm/dist-pre', relativeToRoot)) + } + // default behavior + return undefined + } + const dep = args.path.startsWith('@') ? args.path.split('/').slice(0, 2).join('/') : args.path.split('/')[0] + if (!dependencies.has(dep)) { + dependencies.add(dep) + console.log('Adding dependency:', dep, 'from', args.importer) + } + // return { external: true } + }) + }, + }, + ], + }) + for (const dependency of dependencies) { + if (externalize.includes(dependency)) continue + if (!packageJsonRoot.dependencies[dependency]) throw new Error(`Dependency ${dependency} not found in package.json`) + packageJson.dependencies[dependency] = packageJsonRoot.dependencies[dependency] + } + fs.writeFileSync(path.resolve(__dirname, '../dist-npm/package.json'), JSON.stringify(packageJson, null, 2)) + // fs.promises.writeFile('./dist-npm/metafile.json', JSON.stringify(metafile, null, 2)) + + await build({ + entryPoints: ['dist-npm/dist-pre/**/*.js'], + outdir: 'dist-npm/dist', + // allowOverwrite: true, + jsx: 'preserve', + bundle: true, + target: 'esnext', + platform: 'browser', + format: 'esm', + loader: { + '.css': 'copy', + '.module.css': 'copy', + '.png': 'copy', + }, + minifyWhitespace: false, + logOverride: { + // 'ignored-bare-import': "info" + }, + plugins: [ + { + name: 'all-external', + setup (build) { + build.onResolve({ filter: /.*/ }, (args) => { + // todo use workspace deps + if (externalize.some(x => args.path.startsWith(x))) { + return undefined // bundle + } + if (args.path.endsWith('.css') || args.path.endsWith('.png') || args.path.endsWith('.jpg') || args.path.endsWith('.jpeg')) { + return undefined // loader action + } + return { + path: args.path, + external: true, + } + }) + }, + } + ], + }) + + const paths = await glob('dist-npm/dist-pre/**/*.d.ts') + // copy to dist + for (const p of paths) { + const relative = path.relative('dist-npm/dist-pre', p) + const target = path.resolve('dist-npm/dist', relative) + fs.copyFileSync(p, target) + } + // rm dist-pre + fs.rmSync('dist-npm/dist-pre', { recursive: true }) + fs.copyFileSync(path.resolve(__dirname, '../README.NPM.MD'), path.resolve(__dirname, '../dist-npm/README.md')) + + if (version !== '0.0.0-dev') { + execSync('npm publish', { + cwd: path.resolve(__dirname, '../dist-npm'), + env: { + ...process.env, + NPM_TOKEN: process.env.NPM_TOKEN, + NODE_AUTH_TOKEN: process.env.NPM_TOKEN + } + }) + } +}) diff --git a/scripts/dockerPrepare.mjs b/scripts/dockerPrepare.mjs new file mode 100644 index 00000000..62a4f5e4 --- /dev/null +++ b/scripts/dockerPrepare.mjs @@ -0,0 +1,35 @@ +//@ts-check +import fs from 'fs' +import path from 'path' +import { fileURLToPath } from 'url' +import { execSync } from 'child_process' + +// Get repository from git config +const getGitRepository = () => { + try { + const gitConfig = fs.readFileSync('.git/config', 'utf8') + const originUrlMatch = gitConfig.match(/\[remote "origin"\][\s\S]*?url = .*?github\.com[:/](.*?)(\.git)?\n/m) + if (originUrlMatch) { + return originUrlMatch[1] + } + } catch (err) { + console.warn('Failed to read git repository from config:', err) + } + return null +} + +// write release tag and repository info +const commitShort = execSync('git rev-parse --short HEAD').toString().trim() +const repository = getGitRepository() +fs.writeFileSync('./assets/release.json', JSON.stringify({ + latestTag: `${commitShort} (docker)`, + repository +}), 'utf8') + +const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8')) +delete packageJson.optionalDependencies +fs.writeFileSync('./package.json', JSON.stringify(packageJson, null, 2), 'utf8') + +const packageJsonViewer = JSON.parse(fs.readFileSync('./renderer/package.json', 'utf8')) +delete packageJsonViewer.optionalDependencies +fs.writeFileSync('./renderer/package.json', JSON.stringify(packageJsonViewer, null, 2), 'utf8') diff --git a/scripts/downloadSoundsMap.mjs b/scripts/downloadSoundsMap.mjs new file mode 100644 index 00000000..f5791768 --- /dev/null +++ b/scripts/downloadSoundsMap.mjs @@ -0,0 +1,13 @@ +import fs from 'fs' + +const url = 'https://github.com/zardoy/minecraft-web-client/raw/sounds-generated/sounds-v2.js' +fetch(url).then(res => res.text()).then(data => { + if (fs.existsSync('./dist')) { + fs.writeFileSync('./dist/sounds.js', data, 'utf8') + } + fs.mkdirSync('./generated', { recursive: true }) + fs.writeFileSync('./generated/sounds.js', data, 'utf8') + if (fs.existsSync('.vercel/output/static/')) { + fs.writeFileSync('.vercel/output/static/sounds.js', data, 'utf8') + } +}) diff --git a/scripts/esbuildPlugins.mjs b/scripts/esbuildPlugins.mjs new file mode 100644 index 00000000..431c16a4 --- /dev/null +++ b/scripts/esbuildPlugins.mjs @@ -0,0 +1,27 @@ +//@ts-check + +import { join, dirname } from 'path' +import * as fs from 'fs' +import { fileURLToPath } from 'url' + +const __dirname = dirname(fileURLToPath(new URL(import.meta.url))) + +/** @type {import('esbuild').Plugin[]} */ +const mesherSharedPlugins = [ + { + name: 'minecraft-data', + setup (build) { + build.onLoad({ + filter: /data[\/\\]pc[\/\\]common[\/\\]legacy.json$/, + }, async (args) => { + const data = fs.readFileSync(join(__dirname, '../src/preflatMap.json'), 'utf8') + return { + contents: `module.exports = ${data}`, + loader: 'js', + } + }) + } + } +] + +export { mesherSharedPlugins } diff --git a/scripts/genLargeDataAliases.ts b/scripts/genLargeDataAliases.ts new file mode 100644 index 00000000..2372dbfd --- /dev/null +++ b/scripts/genLargeDataAliases.ts @@ -0,0 +1,62 @@ +import * as fs from 'fs' + +export const genLargeDataAliases = async (isCompressed: boolean) => { + const modules = { + mcData: { + raw: '../generated/minecraft-data-optimized.json', + compressed: '../generated/mc-data-compressed.js', + }, + blockStatesModels: { + raw: 'mc-assets/dist/blockStatesModels.json', + compressed: '../generated/mc-assets-compressed.js', + } + } + + const OUT_FILE = './generated/large-data-aliases.ts' + + let str = `${decoderCode}\nexport const importLargeData = async (mod: ${Object.keys(modules).map(x => `'${x}'`).join(' | ')}) => {\n` + for (const [module, { compressed, raw }] of Object.entries(modules)) { + const chunkName = module === 'mcData' ? 'mc-data' : 'mc-assets'; + let importCode = `(await import(/* webpackChunkName: "${chunkName}" */ '${isCompressed ? compressed : raw}')).default`; + if (isCompressed) { + importCode = `JSON.parse(decompressFromBase64(${importCode}))` + } + str += ` if (mod === '${module}') return ${importCode}\n` + } + str += `}\n` + + fs.writeFileSync(OUT_FILE, str, 'utf8') +} + +const decoderCode = /* ts */ ` +import pako from 'pako'; + +globalThis.pako = { inflate: pako.inflate.bind(pako) } + +function decompressFromBase64(input) { + console.time('decompressFromBase64') + // Decode the Base64 string + const binaryString = atob(input); + const len = binaryString.length; + const bytes = new Uint8Array(len); + + // Convert the binary string to a byte array + for (let i = 0; i < len; i++) { + bytes[i] = binaryString.charCodeAt(i); + } + + // Decompress the byte array + const decompressedData = pako.inflate(bytes, { to: 'string' }); + + console.timeEnd('decompressFromBase64') + return decompressedData; +} +` + +// execute if run directly +if (require.main === module) { + console.log('running...') + const isCompressed = process.argv.includes('--compressed') + genLargeDataAliases(isCompressed) + console.log('done generating large data aliases') +} diff --git a/scripts/genMcDataTypes.ts b/scripts/genMcDataTypes.ts new file mode 100644 index 00000000..82b5b878 --- /dev/null +++ b/scripts/genMcDataTypes.ts @@ -0,0 +1,51 @@ +import minecraftData from 'minecraft-data' +import fs from 'fs' +import supportedVersions from '../src/supportedVersions.mjs' + +const data = minecraftData('1.20.1') + +let types = '' +types += `\nexport type BlockNames = ${Object.keys(data.blocksByName).map(blockName => `'${blockName}'`).join(' | ')};` +types += `\nexport type ItemNames = ${Object.keys(data.itemsByName).map(blockName => `'${blockName}'`).join(' | ')};` +types += `\nexport type EntityNames = ${Object.keys(data.entitiesByName).map(blockName => `'${blockName}'`).join(' | ')};` +types += `\nexport type BiomesNames = ${Object.keys(data.biomesByName).map(blockName => `'${blockName}'`).join(' | ')};` +types += `\nexport type EnchantmentNames = ${Object.keys(data.enchantmentsByName).map(blockName => `'${blockName}'`).join(' | ')};` + +type Version = string +const allVersionsEntitiesMetadata = {} as Record> +for (const version of supportedVersions) { + const data = minecraftData(version) + for (const { name, metadataKeys } of data.entitiesArray) { + allVersionsEntitiesMetadata[name] ??= {} + if (!metadataKeys) { + // console.warn('Entity has no metadata', name, version) + } + for (const [i, key] of (metadataKeys ?? []).entries()) { + allVersionsEntitiesMetadata[name][key] ??= { + version: version, + firstKey: i, + } + } + } +} + +types += '\n\nexport type EntityMetadataVersions = {\n' +for (const [name, versions] of Object.entries(allVersionsEntitiesMetadata)) { + types += `'${name}': {` + for (const [key, v] of Object.entries(versions)) { + types += `\n/** ${v.version}+ (${v.firstKey}) */\n` + types += `'${key}': string;` + } + types += '},' +} +types += '\n}' + +const minify = false +if (minify) { + types = types.replaceAll(/[\t]/g, '') +} + +fs.writeFileSync('./src/mcDataTypes.ts', types, 'utf8') diff --git a/scripts/genPixelartTypes.ts b/scripts/genPixelartTypes.ts new file mode 100644 index 00000000..e7c9649a --- /dev/null +++ b/scripts/genPixelartTypes.ts @@ -0,0 +1,16 @@ +import fs from 'fs' + +const icons = fs.readdirSync('node_modules/pixelarticons/svg') + +const addIconPath = '../../node_modules/pixelarticons/svg/' + +let str = 'export type PixelartIconsGenerated = {\n' +for (const icon of icons) { + const name = icon.replace('.svg', '') + // jsdoc + const jsdocImage = '![image](' + addIconPath + icon + ')' + str += ` /** ${jsdocImage} */\n` + str += ` '${name}': string;\n` +} +str += '}\n' +fs.writeFileSync('./src/react/pixelartIcons.generated.ts', str, 'utf8') diff --git a/scripts/genShims.ts b/scripts/genShims.ts new file mode 100644 index 00000000..2916044a --- /dev/null +++ b/scripts/genShims.ts @@ -0,0 +1,37 @@ +import fs from 'fs' +import { appReplacableResources } from '../src/resourcesSource' + +fs.mkdirSync('./generated', { recursive: true }) + +// app resources + +let headerImports = '' +let resourcesContent = 'export const appReplacableResources: { [key in Keys]: { content: any, resourcePackPath: string, cssVar?: string, cssVarRepeat?: number } } = {\n' +let resourcesContentOriginal = 'export const resourcesContentOriginal = {\n' +const keys = [] as string[] + +for (const resource of appReplacableResources) { + const { path, ...rest } = resource + const name = path.split('/').slice(-4).join('_').replace('.png', '').replaceAll('-', '_').replaceAll('.', '_') + keys.push(name) + headerImports += `import ${name} from '${path.replace('../node_modules/', '')}'\n` + + resourcesContent += ` + '${name}': { + content: ${name}, + resourcePackPath: 'minecraft/textures/${path.slice(path.indexOf('other-textures/') + 'other-textures/'.length).split('/').slice(1).join('/')}', + ...${JSON.stringify(rest)} + }, +` + resourcesContentOriginal += ` + '${name}': ${name}, +` +} + +resourcesContent += '}\n' +resourcesContent += `type Keys = ${keys.map(k => `'${k}'`).join(' | ')}\n` +resourcesContentOriginal += '}\n' +resourcesContent += resourcesContentOriginal + +fs.mkdirSync('./src/generated', { recursive: true }) +fs.writeFileSync('./src/generated/resources.ts', headerImports + '\n' + resourcesContent, 'utf8') diff --git a/scripts/getMissingRecipes.mjs b/scripts/getMissingRecipes.mjs new file mode 100644 index 00000000..59e78672 --- /dev/null +++ b/scripts/getMissingRecipes.mjs @@ -0,0 +1,41 @@ +//@ts-check +// tsx ./scripts/getMissingRecipes.mjs +import MinecraftData from 'minecraft-data' +import supportedVersions from '../src/supportedVersions.mjs' +import fs from 'fs' + +console.time('import-data') +const { descriptionGenerators } = await import('../src/itemsDescriptions') +console.timeEnd('import-data') + +const data = MinecraftData(supportedVersions.at(-1)) + +const hasDescription = name => { + for (const [key, value] of descriptionGenerators) { + if (Array.isArray(key) && key.includes(name)) { + return true + } + if (key instanceof RegExp && key.test(name)) { + return true + } + } + return false +} + +const result = [] +for (const item of data.itemsArray) { + const recipes = data.recipes[item.id] + if (!recipes) { + if (item.name.endsWith('_slab') || item.name.endsWith('_stairs') || item.name.endsWith('_wall')) { + console.warn('Must have recipe!', item.name) + continue + } + if (hasDescription(item.name)) { + continue + } + + result.push(item.name) + } +} + +fs.writeFileSync('./generated/noRecipies.json', JSON.stringify(result, null, 2)) diff --git a/scripts/githubActions.mjs b/scripts/githubActions.mjs new file mode 100644 index 00000000..3e8eb0f6 --- /dev/null +++ b/scripts/githubActions.mjs @@ -0,0 +1,43 @@ +//@ts-check +import fs from 'fs' +import os from 'os' + +const fns = { + async getAlias () { + const aliasesRaw = process.env.ALIASES + if (!aliasesRaw) throw new Error('No aliases found') + const aliases = aliasesRaw.split('\n').map((x) => x.trim().split('=')) + const githubActionsPull = process.env.PULL_URL?.split('/').at(-1) + if (!githubActionsPull) throw new Error(`Not a pull request, got ${process.env.PULL_URL}`) + const prNumber = githubActionsPull + const alias = aliases.find((x) => x[0] === prNumber) + if (alias) { + // set github output + setOutput('alias', alias[1]) + } + }, + getReleasingAlias() { + const final = (ver) => `${ver}.mcraft.fun,${ver}.pcm.gg` + const releaseJson = JSON.parse(fs.readFileSync('./assets/release.json', 'utf8')) + const tag = releaseJson.latestTag + const [major, minor, patch] = tag.replace('v', '').split('.') + if (major === '0' && minor === '1') { + setOutput('alias', final(`v${patch}`)) + } else { + setOutput('alias', final(tag)) + } + } +} + +function setOutput (key, value) { + // Temporary hack until core actions library catches up with github new recommendations + const output = process.env['GITHUB_OUTPUT'] + fs.appendFileSync(output, `${key}=${value}${os.EOL}`) +} + +const fn = fns[process.argv[2]] +if (fn) { + fn() +} else { + console.error('Function not found') +} diff --git a/scripts/makeOptimizedMcData.mjs b/scripts/makeOptimizedMcData.mjs new file mode 100644 index 00000000..a572d067 --- /dev/null +++ b/scripts/makeOptimizedMcData.mjs @@ -0,0 +1,382 @@ +//@ts-check +import { build } from 'esbuild' +import { existsSync } from 'node:fs' +import Module from "node:module" +import { dirname } from 'node:path' +import supportedVersions from '../src/supportedVersions.mjs' +import { gzipSizeFromFileSync } from 'gzip-size' +import fs from 'fs' +import { default as _JsonOptimizer } from '../src/optimizeJson' +import { gzipSync } from 'zlib' +import MinecraftData from 'minecraft-data' +import MCProtocol from 'minecraft-protocol' + +/** @type {typeof _JsonOptimizer} */ +//@ts-ignore +const JsonOptimizer = _JsonOptimizer.default + +// console.log(a.diff_main(JSON.stringify({ a: 1 }), JSON.stringify({ a: 1, b: 2 }))) + +const require = Module.createRequire(import.meta.url) + +const dataPaths = require('minecraft-data/minecraft-data/data/dataPaths.json') + +function toMajor(version) { + const [a, b] = (version + '').split('.') + return `${a}.${b}` +} + +let versions = {} +const dataTypes = new Set() + +for (const [version, dataSet] of Object.entries(dataPaths.pc)) { + if (!supportedVersions.includes(version)) continue + for (const type of Object.keys(dataSet)) { + dataTypes.add(type) + } + versions[version] = dataSet +} + +const versionToNumber = (ver) => { + const [x, y = '0', z = '0'] = ver.split('.') + return +`${x.padStart(2, '0')}${y.padStart(2, '0')}${z.padStart(2, '0')}` +} + +// Version clipping support +const minVersion = process.env.MIN_MC_VERSION +const maxVersion = process.env.MAX_MC_VERSION + +// Filter versions based on MIN_VERSION and MAX_VERSION if provided +if (minVersion || maxVersion) { + const filteredVersions = {} + const minVersionNum = minVersion ? versionToNumber(minVersion) : 0 + const maxVersionNum = maxVersion ? versionToNumber(maxVersion) : Infinity + + for (const [version, dataSet] of Object.entries(versions)) { + const versionNum = versionToNumber(version) + if (versionNum >= minVersionNum && versionNum <= maxVersionNum) { + filteredVersions[version] = dataSet + } + } + + versions = filteredVersions + + console.log(`Version clipping applied: ${minVersion || 'none'} to ${maxVersion || 'none'}`) + console.log(`Processing ${Object.keys(versions).length} versions:`, Object.keys(versions).sort((a, b) => versionToNumber(a) - versionToNumber(b))) +} + +console.log('Bundling version range:', Object.keys(versions)[0], 'to', Object.keys(versions).at(-1)) + +// if not included here (even as {}) will not be bundled & accessible! +// const compressedOutput = !!process.env.SINGLE_FILE_BUILD +const compressedOutput = true +const dataTypeBundling2 = { + blocks: { + arrKey: 'name', + }, + items: { + arrKey: 'name', + }, + recipes: { + processData: processRecipes + } +} +const dataTypeBundling = { + language: process.env.SKIP_MC_DATA_LANGUAGE === 'true' ? { + raw: {} + } : { + ignoreRemoved: true, + ignoreChanges: true + }, + blocks: { + arrKey: 'name', + processData(current, prev, _, version) { + for (const block of current) { + const prevBlock = prev?.find(x => x.name === block.name) + if (block.transparent) { + const forceOpaque = block.name.includes('shulker_box') || block.name.match(/^double_.+_slab\d?$/) || ['melon_block', 'lit_pumpkin', 'lit_redstone_ore', 'lit_furnace'].includes(block.name) + + if (forceOpaque || (prevBlock && !prevBlock.transparent)) { + block.transparent = false + } + } + if (block.hardness === 0 && prevBlock && prevBlock.hardness > 0) { + block.hardness = prevBlock.hardness + } + } + } + // ignoreRemoved: true, + // genChanges (source, diff) { + // const diffs = {} + // const newItems = {} + // for (const [key, val] of Object.entries(diff)) { + // const src = source[key] + // if (!src) { + // newItems[key] = val + // continue + // } + // const { minStateId, defaultState, maxStateId } = val + // if (defaultState === undefined || minStateId === src.minStateId || maxStateId === src.maxStateId || defaultState === src.defaultState) continue + // diffs[key] = [minStateId, defaultState, maxStateId] + // } + // return { + // stateChanges: diffs + // } + // }, + // ignoreChanges: true + }, + items: { + arrKey: 'name' + }, + attributes: { + arrKey: 'name' + }, + particles: { + arrKey: 'name' + }, + effects: { + arrKey: 'name' + }, + enchantments: { + arrKey: 'name' + }, + instruments: { + arrKey: 'name' + }, + foods: { + arrKey: 'name' + }, + entities: { + arrKey: 'id+type' + }, + materials: {}, + windows: { + arrKey: 'name' + }, + version: { + raw: true + }, + tints: {}, + biomes: { + arrKey: 'name' + }, + entityLoot: { + arrKey: 'entity' + }, + blockLoot: { + arrKey: 'block' + }, + recipes: process.env.SKIP_MC_DATA_RECIPES === 'true' ? { + raw: {} + } : { + raw: true + // processData: processRecipes + }, + blockCollisionShapes: {}, + loginPacket: {}, + protocol: { + raw: true + }, + // sounds: { + // arrKey: 'name' + // } +} + +function processRecipes(current, prev, getData, version) { + // can require the same multiple times per different versions + if (current._proccessed) return + const items = getData('items') + const blocks = getData('blocks') + const itemsIdsMap = Object.fromEntries(items.map((b) => [b.id, b.name])) + const blocksIdsMap = Object.fromEntries(blocks.map((b) => [b.id, b.name])) + for (const key of Object.keys(current)) { + const mapId = (id) => { + if (typeof id !== 'string' && typeof id !== 'number') throw new Error('Incorrect type') + const mapped = itemsIdsMap[id] ?? blocksIdsMap[id] + if (!mapped) { + throw new Error(`No item/block name with id ${id}`) + } + return mapped + } + const processRecipe = (obj) => { + // if (!obj) return + // if (Array.isArray(obj)) { + // obj.forEach((id, i) => { + // obj[i] = mapId(obj[id]) + // }) + // } else if (obj && typeof obj === 'object') { + // if (!'count metadata id'.split(' ').every(x => x in obj)) { + // throw new Error(`process error: Unknown deep object pattern: ${JSON.stringify(obj)}`) + // } + // obj.id = mapId(obj.id) + // } else { + // throw new Error('unknown type') + // } + const parseRecipeItem = (item) => { + if (typeof item === 'number') return mapId(item) + if (Array.isArray(item)) return [mapId(item), ...item.slice(1)] + if (!item) { + return item + } + if ('id' in item) { + item.id = mapId(item.id) + return item + } + throw new Error('unhandled') + } + const maybeProccessShape = (shape) => { + if (!shape) return + for (const shapeRow of shape) { + for (const [i, item] of shapeRow.entries()) { + shapeRow[i] = parseRecipeItem(item) + } + } + } + if (obj.result) obj.result = parseRecipeItem(obj.result) + maybeProccessShape(obj.inShape) + maybeProccessShape(obj.outShape) + if (obj.ingredients) { + for (const [i, ingredient] of obj.ingredients.entries()) { + obj.ingredients[i] = parseRecipeItem(ingredient) + } + } + } + try { + const name = mapId(key) + for (const [i, recipe] of current[key].entries()) { + try { + processRecipe(recipe) + } catch (err) { + console.warn(`${version} [warn] Removing incorrect recipe: ${err}`) + delete current[i] + } + } + current[name] = current[key] + } catch (err) { + console.warn(`${version} [warn] Removing incorrect recipe: ${err}`) + } + delete current[key] + } + current._proccessed = true +} + +const notBundling = [...dataTypes.keys()].filter(x => !Object.keys(dataTypeBundling).includes(x)) +console.log("Not bundling minecraft-data data:", notBundling) + +let previousData = {} +// /** @type {Record} */ +const diffSources = {} +const versionsArr = Object.entries(versions) +const sizePerDataType = {} +const rawDataVersions = {} +// const versionsArr = Object.entries(versions).slice(-1) +for (const [i, [version, dataSet]] of versionsArr.reverse().entries()) { + for (const [dataType, dataPath] of Object.entries(dataSet)) { + const config = dataTypeBundling[dataType] + if (!config) continue + const ignoreCollisionShapes = dataType === 'blockCollisionShapes' && versionToNumber(version) >= versionToNumber('1.13') + + let injectCode = '' + const getRealData = (type) => { + const loc = `minecraft-data/data/${dataSet[type]}/` + const dataPathAbsolute = require.resolve(`minecraft-data/${loc}${type}`) + // const data = fs.readFileSync(dataPathAbsolute, 'utf8') + const dataRaw = require(dataPathAbsolute) + return dataRaw + } + const dataRaw = getRealData(dataType) + let rawData = dataRaw + if (config.raw) { + rawDataVersions[dataType] ??= {} + rawDataVersions[dataType][version] = rawData + if (config.raw === true) { + rawData = dataRaw + } else { + rawData = config.raw + } + + if (ignoreCollisionShapes && dataType === 'blockCollisionShapes') { + rawData = { + blocks: {}, + shapes: {} + } + } + } else { + if (!diffSources[dataType]) { + diffSources[dataType] = new JsonOptimizer(config.arrKey, config.ignoreChanges, config.ignoreRemoved) + } + try { + config.processData?.(dataRaw, previousData[dataType], getRealData, version) + diffSources[dataType].recordDiff(version, dataRaw) + injectCode = `restoreDiff(sources, ${JSON.stringify(dataType)}, ${JSON.stringify(version)})` + } catch (err) { + const error = new Error(`Failed to diff ${dataType} for ${version}: ${err.message}`) + error.stack = err.stack + throw error + } + } + sizePerDataType[dataType] ??= 0 + sizePerDataType[dataType] += Buffer.byteLength(JSON.stringify(injectCode || rawData), 'utf8') + if (config.genChanges && previousData[dataType]) { + const changes = config.genChanges(previousData[dataType], dataRaw) + // Object.assign(data, changes) + } + previousData[dataType] = dataRaw + } +} +const sources = Object.fromEntries(Object.entries(diffSources).map(x => { + const data = x[1].export() + // const data = {} + sizePerDataType[x[0]] += Buffer.byteLength(JSON.stringify(data), 'utf8') + return [x[0], data] +})) +Object.assign(sources, rawDataVersions) +sources.versionKey = require('minecraft-data/package.json').version + +const totalSize = Object.values(sizePerDataType).reduce((acc, val) => acc + val, 0) +console.log('total size (mb)', totalSize / 1024 / 1024) +console.log( + 'size per data type (mb, %)', + Object.fromEntries(Object.entries(sizePerDataType).map(([dataType, size]) => { + return [dataType, [size / 1024 / 1024, Math.round(size / totalSize * 100)]] + }).sort((a, b) => { + //@ts-ignore + return b[1][1] - a[1][1] + })) +) + +function compressToBase64(input) { + const buffer = gzipSync(input) + return buffer.toString('base64') +} + +const filePath = './generated/minecraft-data-optimized.json' +fs.writeFileSync(filePath, JSON.stringify(sources), 'utf8') +if (compressedOutput) { + const minizedCompressed = compressToBase64(fs.readFileSync(filePath)) + console.log('size of compressed', Buffer.byteLength(minizedCompressed, 'utf8') / 1000 / 1000) + const compressedFilePath = './generated/mc-data-compressed.js' + fs.writeFileSync(compressedFilePath, `export default ${JSON.stringify(minizedCompressed)}`, 'utf8') + + const mcAssets = JSON.stringify(require('mc-assets/dist/blockStatesModels.json')) + fs.writeFileSync('./generated/mc-assets-compressed.js', `export default ${JSON.stringify(compressToBase64(mcAssets))}`, 'utf8') + + // const modelsObj = fs.readFileSync('./prismarine-renderer/viewer/lib/entity/exportedModels.js') + // const models = +} + +console.log('size', fs.lstatSync(filePath).size / 1000 / 1000, gzipSizeFromFileSync(filePath) / 1000 / 1000) + +// always bundled + +const { defaultVersion } = MCProtocol +const data = MinecraftData(defaultVersion) +console.log('defaultVersion', defaultVersion, !!data) +const initialMcData = { + [defaultVersion]: { + version: data.version, + protocol: data.protocol, + } +} + +// fs.writeFileSync('./generated/minecraft-initial-data.json', JSON.stringify(initialMcData), 'utf8') diff --git a/scripts/optimizeBlockCollisions.ts b/scripts/optimizeBlockCollisions.ts new file mode 100644 index 00000000..251a564a --- /dev/null +++ b/scripts/optimizeBlockCollisions.ts @@ -0,0 +1,59 @@ +import fs from 'fs' +import supportedVersions from '../src/supportedVersions.mjs' +import { join } from 'path' + +type Shape = number[] + +interface Shapes { + blocks: Record + shapes: Record +} + +const shapesMap = new Map() +const processData = (data: Shapes) => { + const sizeInput = JSON.stringify(data).length + let replaced = 0 + let shapesToRemove = new Set() + for (const [block, shapes] of Object.entries(data.blocks)) { + const arr = Array.isArray(shapes) + const shapesArr = Array.isArray(shapes) ? shapes : [shapes] + for (const [i, id] of shapesArr.entries()) { + const resolved = data.shapes[id] + const shapesKey = resolved.map(x => x.join(',')).join(';') + const existingShapeId = shapesMap.get(shapesKey) + // todo-low the size can be optimized even futher by splitting data into shape-parts + if (existingShapeId !== undefined && existingShapeId !== id) { + // console.log(`duplicate for ${block}: ${existingShapeId}`) + if (arr) data.blocks[block][i] = existingShapeId + else data.blocks[block] = existingShapeId + replaced++ + shapesToRemove.add(id) + } + else { + shapesMap.set(shapesKey, id) + } + } + } + for (const shape of shapesToRemove) { + delete data.shapes[shape] + } + // const sizeOutput = JSON.stringify(data).length + // console.log('Saving', replaced, sizeInput / 1024, '->', sizeOutput / 1024, Math.round(sizeInput / sizeOutput), 'x') + return data +} + +for (const version of [...supportedVersions].reverse()) { + const dataPath = join(require.resolve('minecraft-data'), '../minecraft-data/data/pc', version, 'blockCollisionShapes.json') + if (fs.existsSync(dataPath)) { + console.log('using blockCollisionShapes of version', version) + const data = JSON.parse(fs.readFileSync(dataPath, 'utf8')) + data.version = version + data.versionKey = require('minecraft-data/package.json').version + processData(data) + fs.mkdirSync('./generated', { recursive: true }) + fs.writeFileSync('./generated/latestBlockCollisionsShapes.json', JSON.stringify(data), 'utf8') + break + } +} + +// const path = './node_modules/.pnpm/minecraft-data@3.45.0/node_modules/minecraft-data/minecraft-data/data/pc/1.19/blockCollisionShapes.json' diff --git a/scripts/outdatedGitPackages.mjs b/scripts/outdatedGitPackages.mjs new file mode 100644 index 00000000..c6a3b2d5 --- /dev/null +++ b/scripts/outdatedGitPackages.mjs @@ -0,0 +1,52 @@ +// pnpm bug workaround +import fs from 'fs' +import { parse } from 'yaml' +import _ from 'lodash' + +const lockfile = parse(fs.readFileSync('./pnpm-lock.yaml', 'utf8')) +const packageJson = JSON.parse(fs.readFileSync('./package.json', 'utf8')) +const depsKeys = ['dependencies', 'devDependencies'] + +const githubToken = process.env.GITHUB_TOKEN +const ignoreDeps = packageJson.pnpm?.updateConfig?.ignoreDependencies ?? [] + +const outdatedDeps = [] + +const allDepsObj = {} + +for (const [key, val] of Object.entries(lockfile.importers)) { + // Object.assign(allDepsObj, val) + _.merge(allDepsObj, val) +} + +for (const [depsKey, deps] of Object.entries(allDepsObj)) { + for (const [depName, { specifier, version }] of Object.entries(deps)) { + if (ignoreDeps.includes(depName)) continue + if (!specifier.startsWith('github:')) continue + // console.log('checking github:', depName, version, specifier) + + let possiblyBranch = specifier.match(/#(.*)$/)?.[1] ?? '' + if (possiblyBranch) possiblyBranch = `/${possiblyBranch}` + const sha = version.split('/').slice(3).join('/').replace(/\(.+/, '') + const repo = version.split('/').slice(1, 3).join('/') + + const lastCommitJson = await fetch(`https://api.github.com/repos/${repo}/commits${possiblyBranch}?per_page=1`, { + headers: { + Authorization: githubToken ? `token ${githubToken}` : undefined, + }, + }).then(res => res.json()) + + const lastCommitActual = lastCommitJson ?? lastCommitJson[0] + const lastCommitActualSha = Array.isArray(lastCommitActual) ? lastCommitActual[0]?.sha : lastCommitActual?.sha + if (lastCommitActualSha === undefined) debugger + if (sha !== lastCommitActualSha) { + // console.log(`Outdated ${depName} github.com/${repo} : ${sha} -> ${lastCommitActualSha} (${lastCommitActual.commit.message})`) + outdatedDeps.push({ depName, repo, sha, lastCommitActualSha }) + } + } + +} + +if (outdatedDeps.length) { + throw new Error(`Outdated dependencies found: \n${outdatedDeps.map(({ depName, repo, sha, lastCommitActualSha }) => `${depName} github.com/${repo} : ${sha} -> ${lastCommitActualSha}`).join('\n')}`) +} diff --git a/scripts/patchAssets.ts b/scripts/patchAssets.ts new file mode 100644 index 00000000..99994f5f --- /dev/null +++ b/scripts/patchAssets.ts @@ -0,0 +1,137 @@ +import blocksAtlas from 'mc-assets/dist/blocksAtlases.json' +import itemsAtlas from 'mc-assets/dist/itemsAtlases.json' +import * as fs from 'fs' +import * as path from 'path' +import sharp from 'sharp' + +interface AtlasFile { + latest: { + suSv: number + tileSize: number + width: number + height: number + textures: { + [key: string]: { + u: number + v: number + su: number + sv: number + tileIndex: number + } + } + } +} + +async function patchTextureAtlas( + atlasType: 'blocks' | 'items', + atlasData: AtlasFile, + customTexturesDir: string, + distDir: string +) { + // Check if custom textures directory exists and has files + if (!fs.existsSync(customTexturesDir) || fs.readdirSync(customTexturesDir).length === 0) { + return + } + + // Find the latest atlas file + const atlasFiles = fs.readdirSync(distDir) + .filter(file => file.startsWith(`${atlasType}AtlasLatest`) && file.endsWith('.png')) + .sort() + + if (atlasFiles.length === 0) { + console.log(`No ${atlasType}AtlasLatest.png found in ${distDir}`) + return + } + + const latestAtlasFile = atlasFiles[atlasFiles.length - 1] + const atlasPath = path.join(distDir, latestAtlasFile) + console.log(`Patching ${atlasPath}`) + + // Get atlas dimensions + const atlasMetadata = await sharp(atlasPath).metadata() + if (!atlasMetadata.width || !atlasMetadata.height) { + throw new Error(`Failed to get atlas dimensions for ${atlasPath}`) + } + + // Process each custom texture + const customTextureFiles = fs.readdirSync(customTexturesDir) + .filter(file => file.endsWith('.png')) + + if (customTextureFiles.length === 0) return + + // Prepare composite operations + const composites: sharp.OverlayOptions[] = [] + + for (const textureFile of customTextureFiles) { + const textureName = path.basename(textureFile, '.png') + + if (atlasData.latest.textures[textureName]) { + const textureData = atlasData.latest.textures[textureName] + const customTexturePath = path.join(customTexturesDir, textureFile) + + try { + // Convert UV coordinates to pixel coordinates + const x = Math.round(textureData.u * atlasMetadata.width) + const y = Math.round(textureData.v * atlasMetadata.height) + const width = Math.round((textureData.su ?? atlasData.latest.suSv) * atlasMetadata.width) + const height = Math.round((textureData.sv ?? atlasData.latest.suSv) * atlasMetadata.height) + + // Resize custom texture to match atlas dimensions and add to composite operations + const resizedTextureBuffer = await sharp(customTexturePath) + .resize(width, height, { + fit: 'fill', + kernel: 'nearest' // Preserve pixel art quality + }) + .png() + .toBuffer() + + composites.push({ + input: resizedTextureBuffer, + left: x, + top: y, + blend: 'over' + }) + + console.log(`Prepared ${textureName} at (${x}, ${y}) with size (${width}, ${height})`) + } catch (error) { + console.error(`Failed to prepare ${textureName}:`, error) + } + } else { + console.warn(`Texture ${textureName} not found in ${atlasType} atlas`) + } + } + + if (composites.length > 0) { + // Apply all patches at once using Sharp's composite + await sharp(atlasPath) + .composite(composites) + .png() + .toFile(atlasPath + '.tmp') + + // Replace original with patched version + fs.renameSync(atlasPath + '.tmp', atlasPath) + console.log(`Saved patched ${atlasType} atlas to ${atlasPath}`) + } +} + +async function main() { + const customBlocksDir = './assets/customTextures/blocks' + const customItemsDir = './assets/customTextures/items' + const distDir = './dist/static/image' + + try { + // Patch blocks atlas + await patchTextureAtlas('blocks', blocksAtlas as unknown as AtlasFile, customBlocksDir, distDir) + + // Patch items atlas + await patchTextureAtlas('items', itemsAtlas as unknown as AtlasFile, customItemsDir, distDir) + + console.log('Texture atlas patching completed!') + } catch (error) { + console.error('Failed to patch texture atlases:', error) + process.exit(1) + } +} + +// Run the script +main() diff --git a/scripts/prepareSounds.mjs b/scripts/prepareSounds.mjs new file mode 100644 index 00000000..02026a04 --- /dev/null +++ b/scripts/prepareSounds.mjs @@ -0,0 +1,321 @@ +//@ts-check + +import { getVersionList, DEFAULT_RESOURCE_ROOT_URL } from '@xmcl/installer' +import path from 'path' +import fs from 'fs' +import { fileURLToPath } from 'url' +import { exec } from 'child_process' +import { promisify } from 'util' +import { build } from 'esbuild' +import supportedVersions from '../src/supportedVersions.mjs' + +const __dirname = path.dirname(fileURLToPath(new URL(import.meta.url))) + +export const versionToNumber = (ver) => { + const [x, y = '0', z = '0'] = ver.split('.') + return +`${x.padStart(2, '0')}${y.padStart(2, '0')}${z.padStart(2, '0')}` +} + +const targetedVersions = [...supportedVersions].sort((a, b) => versionToNumber(b) - versionToNumber(a)) + +/** @type {{name, size, hash}[]} */ +let prevSounds = null + +const burgerDataUrl = (version) => `https://raw.githubusercontent.com/Pokechu22/Burger/gh-pages/${version}.json` +const burgerDataPath = './generated/burger.json' +const EXISTING_CACHE_PATH = './generated/existing-sounds-cache.json' + +// const perVersionData: Record { + let existingSoundsCache = {} + try { + existingSoundsCache = JSON.parse(await fs.promises.readFile(EXISTING_CACHE_PATH, 'utf8')) + } catch (err) {} + const { versions } = await getVersionList() + const lastVersion = versions.filter(version => !version.id.includes('w'))[0] + // if (lastVersion.id !== targetedVersions[0]) throw new Error('last version is not the same as targetedVersions[0], update') + for (const version of targetedVersions) { + const versionData = versions.find(x => x.id === version) + if (!versionData) throw new Error('no version data for ' + version) + console.log('Getting assets for version', version) + const { assetIndex } = await fetch(versionData.url).then((r) => r.json()) + /** @type {{objects: {[a: string]: { size, hash }}}} */ + const index = await fetch(assetIndex.url).then((r) => r.json()) + const soundAssets = Object.entries(index.objects).filter(([name]) => /* name.endsWith('.ogg') || */ name.startsWith('minecraft/sounds/')).map(([name, { size, hash }]) => ({ name, size, hash })) + soundAssets.sort((a, b) => a.name.localeCompare(b.name)) + if (prevSounds) { + const prevSoundNames = new Set(prevSounds.map(x => x.name)) + const addedSounds = prevSounds.filter(x => !soundAssets.some(y => y.name === x.name)) + // todo implement removed + const removedSounds = soundAssets.filter(x => !prevSoundNames.has(x.name)) + // console.log('+', addedSounds.map(x => x.name)) + // console.log('-', removedSounds.map(x => x.name)) + const changedSize = soundAssets.filter(x => prevSoundNames.has(x.name) && prevSounds.find(y => y.name === x.name).size !== x.size) + console.log('changed size', changedSize.map(x => ({ name: x.name, prev: prevSounds.find(y => y.name === x.name).size, curr: x.size }))) + if (addedSounds.length || changedSize.length) { + soundsPathVersionsRemap[version] = [...addedSounds, ...changedSize].map(x => x.name.replace('minecraft/sounds/', '').replace('.ogg', '')) + } + if (addedSounds.length) { + console.log('downloading new sounds for version', version) + downloadSounds(version, addedSounds, version + '/') + } + if (changedSize.length) { + console.log('downloading changed sounds for version', version) + downloadSounds(version, changedSize, version + '/') + } + } else { + console.log('downloading sounds for version', version) + downloadSounds(version, soundAssets) + } + prevSounds = soundAssets + } + async function downloadSound({ name, hash, size }, namePath, log) { + const cached = + !!namePath.replace('.ogg', '.mp3').split('/').reduce((acc, cur) => acc?.[cur], existingSoundsCache.sounds) || + !!namePath.replace('.ogg', '.ogg').split('/').reduce((acc, cur) => acc?.[cur], existingSoundsCache.sounds) + const savePath = path.resolve(`generated/sounds/${namePath}`) + if (cached || fs.existsSync(savePath)) { + // console.log('skipped', name) + existingSoundsCache.sounds[namePath] = true + return + } + log() + const r = await fetch(DEFAULT_RESOURCE_ROOT_URL + '/' + hash.slice(0, 2) + '/' + hash, /* {headers: {range: `bytes=0-${size-1}`}} */) + // save file + const file = await r.blob() + fs.mkdirSync(path.dirname(savePath), { recursive: true }) + await fs.promises.writeFile(savePath, Buffer.from(await file.arrayBuffer())) + + const reader = file.stream().getReader() + + const writer = fs.createWriteStream(savePath) + let offset = 0 + while (true) { + const { done, value } = await reader.read() + if (done) break + writer.write(Buffer.from(value)) + offset += value.byteLength + } + writer.close() + } + async function downloadSounds(version, assets, addPath = '') { + if (addPath && existingSoundsCache.sounds[version]) { + console.log('using existing sounds for version', version) + return + } + console.log(version, 'have to download', assets.length, 'sounds') + for (let i = 0; i < assets.length; i += 5) { + await Promise.all(assets.slice(i, i + 5).map((asset, j) => downloadSound(asset, `${addPath}${asset.name}`, () => { + console.log('downloading', addPath, asset.name, i + j, '/', assets.length) + }))) + } + } + + fs.writeFileSync('./generated/soundsPathVersionsRemap.json', JSON.stringify(soundsPathVersionsRemap), 'utf8') + fs.writeFileSync(EXISTING_CACHE_PATH, JSON.stringify(existingSoundsCache), 'utf8') +} + +const lightpackOverrideSounds = { + 'Block breaking': 'step/stone1', + 'Block broken': 'dig/stone1', + 'Block placed': 'dig/stone1' +} + +// this is not done yet, will be used to select only sounds for bundle (most important ones) +const isSoundWhitelisted = (name) => name.startsWith('random/') || name.startsWith('note/') || name.endsWith('/say1') || name.endsWith('/death') || (name.startsWith('mob/') && name.endsWith('/step1')) || name.endsWith('/swoop1') || /* name.endsWith('/break1') || */ name.endsWith('dig/stone1') + +// const ffmpeg = 'C:/Users/Vitaly/Documents/LosslessCut-win-x64/resources/ffmpeg.exe' // can be ffmpeg-static +const ffmpegExec = 'ffmpeg' +const maintainBitrate = true + +const scanFilesDeep = async (root, onOggFile) => { + const files = await fs.promises.readdir(root, { withFileTypes: true }) + for (const file of files) { + if (file.isDirectory()) { + await scanFilesDeep(path.join(root, file.name), onOggFile) + } else if (file.name.endsWith('.ogg') && !files.some(x => x.name === file.name.replace('.ogg', '.mp3'))) { + await onOggFile(path.join(root, file.name)) + } + } +} + +const convertSounds = async () => { + const toConvert = [] + await scanFilesDeep('generated/sounds', (oggPath) => { + toConvert.push(oggPath) + }) + + const convertSound = async (i) => { + const proc = promisify(exec)(`${ffmpegExec} -i "${toConvert[i]}" -y -codec:a libmp3lame ${maintainBitrate ? '-qscale:a 2' : ''} "${toConvert[i].replace('.ogg', '.mp3')}"`) + // pipe stdout to the console + //@ts-ignore + proc.child.stdout.pipe(process.stdout) + await proc + console.log('converted to mp3', i, '/', toConvert.length, toConvert[i]) + } + + const CONCURRENCY = 5 + for (let i = 0; i < toConvert.length; i += CONCURRENCY) { + await Promise.all(toConvert.slice(i, i + CONCURRENCY).map((oggPath, j) => convertSound(i + j))) + } +} + +const getSoundsMap = (burgerData) => { + /** @type {Record} */ + return burgerData[0].sounds + // const map = JSON.parse(fs.readFileSync(burgerDataPath, 'utf8'))[0].sounds +} + +const writeSoundsMap = async () => { + const burgerData = await fetch(burgerDataUrl(targetedVersions[0])).then((r) => r.json()) + fs.writeFileSync(burgerDataPath, JSON.stringify(burgerData[0].sounds), 'utf8') + + const allSoundsMapOutput = {} + let prevMap + + // todo REMAP ONLY IDS. Do diffs, as mostly only ids are changed between versions + // const localTargetedVersions = targetedVersions.slice(0, 2) + let lastMappingsJson + const localTargetedVersions = targetedVersions + for (const targetedVersion of [...localTargetedVersions].reverse()) { + console.log('Processing version', targetedVersion) + + const burgerData = await fetch(burgerDataUrl(targetedVersion)).then((r) => r.json()).catch((err) => { + // console.error('error fetching burger data', targetedVersion, err) + return null + }) + /** @type {{sounds: string[]}} */ + const mappingJson = await fetch(`https://raw.githubusercontent.com/ViaVersion/Mappings/7a45c1f9dbc1f1fdadacfecdb205ba84e55766fc/mappings/mapping-${targetedVersion}.json`).then(async (r) => { + return r.json() + // lastMappingsJson = r.status === 404 ? lastMappingsJson : (await r.json()) + // if (r.status === 404) { + // console.warn('using prev mappings json for ' + targetedVersion) + // } + // return lastMappingsJson + }).catch((err) => { + // console.error('error fetching mapping json', targetedVersion, err) + return null + }) + // if (!mappingJson) throw new Error('no initial mapping json for ' + targetedVersion) + if (burgerData && !mappingJson) { + console.warn('has burger but no mapping json for ' + targetedVersion) + continue + } + if (!mappingJson || !burgerData) { + console.warn('no mapping json or burger data for ' + targetedVersion) + continue + } + const allSoundsMap = getSoundsMap(burgerData) + // console.log(Object.keys(sounds).length, 'ids') + const outputIdMap = {} + const outputFilesMap = {} + + const classes = {} + let keysStats = { + new: 0, + same: 0 + } + for (const { _id, subtitle, sounds, name } of Object.values(allSoundsMap)) { + if (!sounds?.length /* && !subtitle */) continue + const firstName = sounds[0].name + // const includeSound = isSoundWhitelisted(firstName) + // if (!includeSound) continue + const mostUsedSound = sounds.sort((a, b) => b.weight - a.weight)[0] + // outputMap[id] = { subtitle, sounds: mostUsedSound } + // outputMap[id] = { subtitle, sounds } + // const soundFilePath = `generated/sounds/minecraft/sounds/${targetSound.name}.mp3` + // if (!fs.existsSync(soundFilePath)) { + // console.warn('no sound file', targetSound.name) + // continue + // } + let outputUseSoundLine = [] + const minWeight = sounds.reduce((acc, cur) => cur.weight ? Math.min(acc, cur.weight) : acc, sounds[0].weight ?? 1) + if (isNaN(minWeight)) debugger + for (const sound of sounds) { + if (sound.weight && isNaN(sound.weight)) debugger + outputUseSoundLine.push(`${sound.volume ?? 1};${sound.name};${sound.weight ?? minWeight}`) + } + const id = mappingJson.sounds.findIndex(x => x === name) + if (id === -1) { + console.warn('no id for sound', name, targetedVersion) + continue + } + const key = `${id};${name}` + outputIdMap[key] = outputUseSoundLine.join(',') + if (prevMap && prevMap[key]) { + keysStats.same++ + } else { + keysStats.new++ + } + // for (const {name: soundName} of sounds ?? []) { + // let obj = classes + // for (const part of soundName.split('/')) { + // obj[part] ??= {} + // obj = obj[part] + // } + // } + } + // console.log(classes) + // console.log('to download', new Set(Object.values(outputIdMap).flatMap(x => x.sounds)).size) + // console.log('json size', JSON.stringify(outputIdMap).length / 1024 / 1024) + allSoundsMapOutput[targetedVersion] = outputIdMap + prevMap = outputIdMap + // const allSoundNames = new Set(Object.values(allSoundsMap).flatMap(({ name, sounds }) => { + // if (!sounds) { + // console.log(name) + // return [] + // } + // return sounds.map(sound => sound.name) + // })) + // console.log(allSoundNames.size, 'sounds') + } + + fs.writeFileSync('./generated/sounds.json', JSON.stringify(allSoundsMapOutput), 'utf8') +} + +const makeSoundsBundle = async () => { + const allSoundsMap = JSON.parse(fs.readFileSync('./generated/sounds.json', 'utf8')) + const allSoundsVersionedMap = JSON.parse(fs.readFileSync('./generated/soundsPathVersionsRemap.json', 'utf8')) + if (!process.env.REPO_SLUG) throw new Error('REPO_SLUG is not set') + + const allSoundsMeta = { + format: 'mp3', + baseUrl: `https://raw.githubusercontent.com/${process.env.REPO_SLUG}/sounds/sounds/` + } + + await build({ + bundle: true, + outfile: `dist/sounds.js`, + stdin: { + contents: `window.allSoundsMap = ${JSON.stringify(allSoundsMap)}\nwindow.allSoundsVersionedMap = ${JSON.stringify(allSoundsVersionedMap)}\nwindow.allSoundsMeta = ${JSON.stringify(allSoundsMeta)}`, + resolveDir: __dirname, + sourcefile: `sounds.js`, + loader: 'js', + }, + metafile: true, + }) + // copy also to generated/sounds.js + fs.copyFileSync('./dist/sounds.js', './generated/sounds.js') +} + +const action = process.argv[2] +if (action) { + const execFn = { + download: downloadAllSoundsAndCreateMap, + convert: convertSounds, + write: writeSoundsMap, + bundle: makeSoundsBundle, + }[action] + + if (execFn) { + execFn() + } +} else { + // downloadAllSoundsAndCreateMap() + // convertSounds() + writeSoundsMap() + // makeSoundsBundle() +} diff --git a/scripts/replaceFavicon.mjs b/scripts/replaceFavicon.mjs new file mode 100644 index 00000000..0c60d26d --- /dev/null +++ b/scripts/replaceFavicon.mjs @@ -0,0 +1,8 @@ +import fs from 'fs' + +const faviconUrl = process.argv[2] + +// save to assets/favicon.png +fetch(faviconUrl).then(res => res.arrayBuffer()).then(buffer => { + fs.writeFileSync('assets/favicon.png', Buffer.from(buffer)) +}) diff --git a/scripts/requestData.ts b/scripts/requestData.ts new file mode 100644 index 00000000..dc866a1b --- /dev/null +++ b/scripts/requestData.ts @@ -0,0 +1,42 @@ +import WebSocket from 'ws' + +function formatBytes(bytes: number) { + return `${(bytes).toFixed(2)} MB` +} + +function formatTime(ms: number) { + return `${(ms / 1000).toFixed(2)}s` +} + +const ws = new WebSocket('ws://localhost:8081') + +ws.on('open', () => { + console.log('Connected to metrics server, waiting for metrics...') +}) + +ws.on('message', (data) => { + try { + const metrics = JSON.parse(data.toString()) + console.log('\nPerformance Metrics:') + console.log('------------------') + console.log(`Load Time: ${formatTime(metrics.loadTime)}`) + console.log(`Memory Usage: ${formatBytes(metrics.memoryUsage)}`) + console.log(`Timestamp: ${new Date(metrics.timestamp).toLocaleString()}`) + if (!process.argv.includes('-f')) { // follow mode + process.exit(0) + } + } catch (error) { + console.error('Error parsing metrics:', error) + } +}) + +ws.on('error', (error) => { + console.error('WebSocket error:', error) + process.exit(1) +}) + +// Exit if no metrics received after 5 seconds +setTimeout(() => { + console.error('Timeout waiting for metrics') + process.exit(1) +}, 5000) diff --git a/scripts/testOptimizedMcdata.ts b/scripts/testOptimizedMcdata.ts new file mode 100644 index 00000000..7c94fac2 --- /dev/null +++ b/scripts/testOptimizedMcdata.ts @@ -0,0 +1,116 @@ +import assert from 'assert' +import JsonOptimizer, { restoreMinecraftData } from '../src/optimizeJson'; +import fs from 'fs' +import minecraftData from 'minecraft-data' + +const json = JSON.parse(fs.readFileSync('./generated/minecraft-data-optimized.json', 'utf8')) + +const dataPaths = require('minecraft-data/minecraft-data/data/dataPaths.json') + +const validateData = (ver, type) => { + const target = restoreMinecraftData(structuredClone(json), type, ver) + const arrKey = json[type].arrKey + const originalPath = dataPaths.pc[ver][type] + const original = require(`minecraft-data/minecraft-data/data/${originalPath}/${type}.json`) + if (arrKey) { + const originalKeys = original.map(a => JsonOptimizer.getByArrKey(a, arrKey)) as string[] + for (const [i, item] of originalKeys.entries()) { + if (originalKeys.indexOf(item) !== i) { + console.warn(`${type} ${ver} Incorrect source, duplicated arrKey (${arrKey}) ${item}. Ignoring!`) // todo should span instead + const index = originalKeys.indexOf(item); + original.splice(index, 1) + originalKeys.splice(index, 1) + } + } + // if (target.length !== originalKeys.length) { + // throw new Error(`wrong arr length: ${target.length} !== ${original.length}`) + // } + checkKeys(originalKeys, target.map(a => JsonOptimizer.getByArrKey(a, arrKey))) + for (const item of target as any[]) { + const keys = Object.entries(item).map(a => a[0]) + const origItem = original.find(a => JsonOptimizer.getByArrKey(a, arrKey) === JsonOptimizer.getByArrKey(item, arrKey)); + const keysSource = Object.entries(origItem).map(a => a[0]) + checkKeys(keysSource, keys, true, 'prop keys', true) + checkObj(origItem, item) + } + } else { + const keysOriginal = Object.keys(original) + const keysTarget = Object.keys(target) + checkKeys(keysOriginal, keysTarget) + for (const key of keysTarget) { + checkObj(original[key], target[key]) + } + } +} + +const sortObj = (obj) => { + const sorted = {} + for (const key of Object.keys(obj).sort()) { + sorted[key] = obj[key] + } + return sorted +} + +const checkObj = (source, diffing) => { + if (!Array.isArray(source)) { + source = sortObj(source) + } + if (!Array.isArray(diffing)) { + diffing = sortObj(diffing) + } + if (JSON.stringify(source) !== JSON.stringify(diffing)) { + throw new Error(`different value: ${JSON.stringify(source)} ${JSON.stringify(diffing)}`) + } + // checkKeys(Object.keys(source), Object.keys(diffing)) + // for (const [key, val] of Object.entries(source)) { + // if (JSON.stringify(val) !== JSON.stringify(diffing[key])) { + // throw new Error(`different value of ${key}: ${val} ${diffing[key]}`) + // } + // } +} + +const checkKeys = (source, diffing, isUniq = true, msg = '', redundantIsOk = false) => { + if (isUniq) { + for (const [i, item] of diffing.entries()) { + if (diffing.indexOf(item) !== i) { + throw new Error(`Duplicate: ${item}: ${i} ${diffing.indexOf(item)} ${msg}`) + } + } + } + for (const key of source) { + if (!diffing.includes(key)) { + throw new Error(`Diffing does not include "${key}" (${msg})`) + } + } + if (!redundantIsOk) { + for (const key of diffing) { + if (!source.includes(key)) { + throw new Error(`Source does not include "${key}" (${msg})`) + } + } + } +} + +// const data = minecraftData('1.20.4') +const oldId = JsonOptimizer.restoreData(json['blocks'], '1.20', undefined).find(x => x.name === 'brown_stained_glass').id; +const newId = JsonOptimizer.restoreData(json['blocks'], '1.20.4', undefined).find(x => x.name === 'brown_stained_glass').id; +assert(oldId !== newId) +// test all types + all versions + +for (const type of Object.keys(json)) { + if (!json[type].__IS_OPTIMIZED__) continue + if (type === 'language') continue // we have loose data for language for size reasons + console.log('validating', type) + const source = json[type] + let checkedVer = 0 + for (const ver of Object.keys(source.diffs)) { + try { + validateData(ver, type) + } catch (err) { + err.message = `Failed to validate ${type} for ${ver}: ${err.message}` + throw err; + } + checkedVer++ + } + console.log('Checked versions:', checkedVer) +} diff --git a/scripts/updateGitDeps.ts b/scripts/updateGitDeps.ts new file mode 100644 index 00000000..797aea8f --- /dev/null +++ b/scripts/updateGitDeps.ts @@ -0,0 +1,160 @@ +import fs from 'fs' +import path from 'path' +import yaml from 'yaml' +import { execSync } from 'child_process' +import { createInterface } from 'readline' + +interface LockfilePackage { + specifier: string + version: string +} + +interface Lockfile { + importers: { + '.': { + dependencies?: Record + devDependencies?: Record + } + } +} + +interface PackageJson { + pnpm?: { + updateConfig?: { + ignoreDependencies?: string[] + } + } +} + +async function prompt(question: string): Promise { + const rl = createInterface({ + input: process.stdin, + output: process.stdout + }) + + return new Promise(resolve => { + rl.question(question, answer => { + rl.close() + resolve(answer.toLowerCase().trim()) + }) + }) +} + +async function getLatestCommit(owner: string, repo: string): Promise { + const response = await fetch(`https://api.github.com/repos/${owner}/${repo}/commits/HEAD`) + if (!response.ok) { + throw new Error(`Failed to fetch latest commit: ${response.statusText}`) + } + const data = await response.json() + return data.sha +} + +function extractGitInfo(specifier: string): { owner: string; repo: string; branch: string } | null { + const match = specifier.match(/github:([^/]+)\/([^#]+)(?:#(.+))?/) + if (!match) return null + return { + owner: match[1], + repo: match[2], + branch: match[3] || 'master' + } +} + +function extractCommitHash(version: string): string | null { + const match = version.match(/https:\/\/codeload\.github\.com\/[^/]+\/[^/]+\/tar\.gz\/([a-f0-9]+)/) + return match ? match[1] : null +} + +function getIgnoredDependencies(): string[] { + try { + const packageJsonPath = path.join(process.cwd(), 'package.json') + const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as PackageJson + return packageJson.pnpm?.updateConfig?.ignoreDependencies || [] + } catch (error) { + console.warn('Failed to read package.json for ignored dependencies:', error) + return [] + } +} + +async function main() { + const lockfilePath = path.join(process.cwd(), 'pnpm-lock.yaml') + const lockfileContent = fs.readFileSync(lockfilePath, 'utf8') + const lockfile = yaml.parse(lockfileContent) as Lockfile + + const ignoredDependencies = new Set(getIgnoredDependencies()) + console.log('Ignoring dependencies:', Array.from(ignoredDependencies).join(', ') || 'none') + + const dependencies = { + ...lockfile.importers['.'].dependencies, + ...lockfile.importers['.'].devDependencies + } + + const updates: Array<{ + name: string + currentHash: string + latestHash: string + gitInfo: ReturnType + }> = [] + + console.log('\nChecking git dependencies...') + for (const [name, pkg] of Object.entries(dependencies)) { + if (ignoredDependencies.has(name)) { + console.log(`Skipping ignored dependency: ${name}`) + continue + } + + if (!pkg.specifier.startsWith('github:')) continue + + const gitInfo = extractGitInfo(pkg.specifier) + if (!gitInfo) continue + + const currentHash = extractCommitHash(pkg.version) + if (!currentHash) continue + + try { + process.stdout.write(`Checking ${name}... `) + const latestHash = await getLatestCommit(gitInfo.owner, gitInfo.repo) + if (currentHash !== latestHash) { + console.log('update available') + updates.push({ name, currentHash, latestHash, gitInfo }) + } else { + console.log('up to date') + } + } catch (error) { + console.log('failed') + console.error(`Error checking ${name}:`, error) + } + } + + if (updates.length === 0) { + console.log('\nAll git dependencies are up to date!') + return + } + + console.log('\nThe following git dependencies can be updated:') + for (const update of updates) { + console.log(`\n${update.name}:`) + console.log(` Current: ${update.currentHash}`) + console.log(` Latest: ${update.latestHash}`) + console.log(` Repo: ${update.gitInfo!.owner}/${update.gitInfo!.repo}`) + } + + const answer = await prompt('\nWould you like to update these dependencies? (y/N): ') + if (answer === 'y' || answer === 'yes') { + let newLockfileContent = lockfileContent + for (const update of updates) { + newLockfileContent = newLockfileContent.replace( + new RegExp(update.currentHash, 'g'), + update.latestHash + ) + } + fs.writeFileSync(lockfilePath, newLockfileContent) + console.log('\nUpdated pnpm-lock.yaml with new commit hashes') + // console.log('Running pnpm install to apply changes...') + // execSync('pnpm install', { stdio: 'inherit' }) + console.log('Done!') + } else { + console.log('\nNo changes were made.') + } +} + +main().catch(console.error) diff --git a/scripts/updateHandledPackets.mjs b/scripts/updateHandledPackets.mjs new file mode 100644 index 00000000..080eaf44 --- /dev/null +++ b/scripts/updateHandledPackets.mjs @@ -0,0 +1,60 @@ +import fs from 'fs' +import path from 'path' +import minecraftData from 'minecraft-data' + +const lastVersion = minecraftData.versions.pc[0] +// console.log('last proto ver', lastVersion.minecraftVersion) +const allPackets = minecraftData(lastVersion.minecraftVersion).protocol +const getPackets = ({ types }) => { + return Object.keys(types).map(type => type.replace('packet_', '')) +} +// todo test against all versions +const allFromServerPackets = getPackets(allPackets.play.toClient) +const allToServerPackets = getPackets(allPackets.play.toServer).filter(x => !['packet'].includes(x)) + +const buildFile = './dist/index.js' + +const file = fs.readFileSync(buildFile, 'utf8') + +const packetsReceiveRegex = /client\.on\("(\w+)"/g +const packetsReceiveSend = /client\.write\("(\w+)"/g + +let allSupportedReceive = [...new Set([...file.matchAll(packetsReceiveRegex)].map(x => x[1]))] +let allSupportedSend = [...new Set([...file.matchAll(packetsReceiveSend)].map(x => x[1]))] + +let md = '# Handled Packets\n' + +md += '\n## Server -> Client\n\n' +let notSupportedRows = [] +let supportedRows = [] +for (const packet of allFromServerPackets) { + const includes = allSupportedReceive.includes(packet); + (includes ? supportedRows : notSupportedRows).push(packet) +} + +for (const row of notSupportedRows) { + md += `❌ ${row}\n` +} +for (const row of supportedRows) { + md += `✅ ${row}\n` +} + +md += '\n' + +notSupportedRows = [] +supportedRows = [] + +md += '## Client -> Server\n\n' +for (const packet of allToServerPackets) { + const includes = allSupportedSend.includes(packet); + (includes ? supportedRows : notSupportedRows).push(packet) +} + +for (const row of notSupportedRows) { + md += `❌ ${row}\n` +} +for (const row of supportedRows) { + md += `✅ ${row}\n` +} + +fs.writeFileSync('./docs-assets/handled-packets.md', md) diff --git a/scripts/uploadSoundFiles.ts b/scripts/uploadSoundFiles.ts new file mode 100644 index 00000000..e8677c87 --- /dev/null +++ b/scripts/uploadSoundFiles.ts @@ -0,0 +1,109 @@ +import fetch from 'node-fetch'; +import * as fs from 'fs'; +import * as path from 'path'; +import { glob } from 'glob'; + +// Git details +const REPO_SLUG = process.env.REPO_SLUG; +const owner = REPO_SLUG.split('/')[0]; +const repo = REPO_SLUG.split('/')[1]; +const branch = "sounds"; + +// GitHub token for authentication +const token = process.env.GITHUB_TOKEN; + +// GitHub API endpoint +const baseUrl = `https://api.github.com/repos/${owner}/${repo}/contents`; + +const headers = { + Authorization: `token ${token}`, + 'Content-Type': 'application/json' +}; + +async function getShaForExistingFile(repoFilePath: string): Promise { + const url = `${baseUrl}/${repoFilePath}?ref=${branch}`; + const response = await fetch(url, { headers }); + if (response.status === 404) { + return null; // File does not exist + } + if (!response.ok) { + throw new Error(`Failed to fetch ${url}: ${response.statusText}`); + } + const data = await response.json(); + return data.sha; +} + +async function uploadFiles() { + const commitMessage = "Upload multiple files via script"; + const committer = { + name: "GitHub", + email: "noreply@github.com" + }; + + const filesToUpload = glob.sync("generated/sounds/**/*.mp3").map(localPath => { + const repoPath = localPath.replace(/^generated\//, ''); + return { localPath, repoPath }; + }); + + const files = await Promise.all(filesToUpload.map(async file => { + const content = fs.readFileSync(file.localPath, 'base64'); + const sha = await getShaForExistingFile(file.repoPath); + return { + path: file.repoPath, + mode: "100644", + type: "blob", + sha: sha || undefined, + content: content + }; + })); + + const treeResponse = await fetch(`${baseUrl}/git/trees`, { + method: 'POST', + headers: headers, + body: JSON.stringify({ + base_tree: null, + tree: files + }) + }); + + if (!treeResponse.ok) { + throw new Error(`Failed to create tree: ${treeResponse.statusText}`); + } + + const treeData = await treeResponse.json(); + + const commitResponse = await fetch(`${baseUrl}/git/commits`, { + method: 'POST', + headers: headers, + body: JSON.stringify({ + message: commitMessage, + tree: treeData.sha, + parents: [branch], + committer: committer + }) + }); + + if (!commitResponse.ok) { + throw new Error(`Failed to create commit: ${commitResponse.statusText}`); + } + + const commitData = await commitResponse.json(); + + const updateRefResponse = await fetch(`${baseUrl}/git/refs/heads/${branch}`, { + method: 'PATCH', + headers: headers, + body: JSON.stringify({ + sha: commitData.sha + }) + }); + + if (!updateRefResponse.ok) { + throw new Error(`Failed to update ref: ${updateRefResponse.statusText}`); + } + + console.log("Files uploaded successfully"); +} + +uploadFiles().catch(error => { + console.error("Error uploading files:", error); +}); diff --git a/scripts/uploadSounds.ts b/scripts/uploadSounds.ts new file mode 100644 index 00000000..b0e9ecd7 --- /dev/null +++ b/scripts/uploadSounds.ts @@ -0,0 +1,67 @@ +import fs from 'fs' + +// GitHub details +const owner = "zardoy"; +const repo = "minecraft-web-client"; +const branch = "sounds-generated"; +const filePath = "dist/sounds.js"; // Local file path +const repoFilePath = "sounds-v2.js"; // Path in the repo + +// GitHub token for authentication +const token = process.env.GITHUB_TOKEN; + +// GitHub API endpoint +const baseUrl = `https://api.github.com/repos/${owner}/${repo}/contents/${repoFilePath}`; + +const headers = { + Authorization: `token ${token}`, + 'Content-Type': 'application/json' +}; + +async function getShaForExistingFile(): Promise { + const url = `${baseUrl}?ref=${branch}`; + const response = await fetch(url, { headers }); + if (response.status === 404) { + return null; // File does not exist + } + if (!response.ok) { + throw new Error(`Failed to fetch ${url}: ${response.statusText}`); + } + const data = await response.json(); + return data.sha; +} + +async function uploadFile() { + const content = fs.readFileSync(filePath, 'utf8'); + const base64Content = Buffer.from(content).toString('base64'); + const sha = await getShaForExistingFile(); + console.log('got sha') + + const body = { + message: "Update sounds.js", + content: base64Content, + branch: branch, + committer: { + name: "GitHub", + email: "noreply@github.com" + }, + sha: sha || undefined + }; + + const response = await fetch(baseUrl, { + method: 'PUT', + headers: headers, + body: JSON.stringify(body) + }); + + if (!response.ok) { + throw new Error(`Failed to upload file: ${response.statusText}`); + } + + const responseData = await response.json(); + console.log("File uploaded successfully:", responseData); +} + +uploadFile().catch(error => { + console.error("Error uploading file:", error); +}); diff --git a/scripts/wsServer.ts b/scripts/wsServer.ts new file mode 100644 index 00000000..43035f52 --- /dev/null +++ b/scripts/wsServer.ts @@ -0,0 +1,45 @@ +import {WebSocketServer} from 'ws' + +export function startWsServer(port: number = 8081, tryOtherPort: boolean = true): Promise { + return new Promise((resolve, reject) => { + const tryPort = (currentPort: number) => { + const wss = new WebSocketServer({ port: currentPort }) + .on('listening', () => { + console.log(`WebSocket server started on port ${currentPort}`) + resolve(currentPort) + }) + .on('error', (err: any) => { + if (err.code === 'EADDRINUSE' && tryOtherPort) { + console.log(`Port ${currentPort} in use, trying ${currentPort + 1}`) + wss.close() + tryPort(currentPort + 1) + } else { + reject(err) + } + }) + + wss.on('connection', (ws) => { + console.log('Client connected') + + ws.on('message', (message) => { + try { + // Simply relay the message to all connected clients except sender + wss.clients.forEach(client => { + if (client !== ws && client.readyState === WebSocket.OPEN) { + client.send(message.toString()) + } + }) + } catch (error) { + console.error('Error processing message:', error) + } + }) + + ws.on('close', () => { + console.log('Client disconnected') + }) + }) + } + + tryPort(port) + }) +} diff --git a/server.js b/server.js new file mode 100644 index 00000000..49699cdb --- /dev/null +++ b/server.js @@ -0,0 +1,97 @@ +#!/usr/bin/env node + +const express = require('express') +const netApi = require('net-browserify') +const compression = require('compression') +const path = require('path') +const cors = require('cors') +const https = require('https') +const fs = require('fs') +let siModule +try { + siModule = require('systeminformation') +} catch (err) { } + +// Create our app +const app = express() + +const isProd = process.argv.includes('--prod') || process.env.NODE_ENV === 'production' +const timeoutIndex = process.argv.indexOf('--timeout') +let timeout = timeoutIndex > -1 && timeoutIndex + 1 < process.argv.length + ? parseInt(process.argv[timeoutIndex + 1]) + : process.env.TIMEOUT + ? parseInt(process.env.TIMEOUT) + : 10000 +if (isNaN(timeout) || timeout < 0) { + console.warn('Invalid timeout value provided, using default of 10000ms') + timeout = 10000 +} +app.use(compression()) +app.use(cors()) +app.use(netApi({ + allowOrigin: '*', + log: process.argv.includes('--log') || process.env.LOG === 'true', + timeout +})) +if (!isProd) { + app.use('/sounds', express.static(path.join(__dirname, './generated/sounds/'))) +} +// patch config +app.get('/config.json', (req, res, next) => { + // read original file config + let config = {} + let publicConfig = {} + try { + config = require('./config.json') + } catch { + try { + config = require('./dist/config.json') + } catch { } + } + try { + publicConfig = require('./public/config.json') + } catch { } + res.json({ + ...config, + 'defaultProxy': '', // use current url (this server) + ...publicConfig, + }) +}) +if (isProd) { + // add headers to enable shared array buffer + app.use((req, res, next) => { + res.setHeader('Cross-Origin-Opener-Policy', 'same-origin') + res.setHeader('Cross-Origin-Embedder-Policy', 'require-corp') + next() + }) + + // First serve from the override directory (volume mount) + app.use(express.static(path.join(__dirname, './public'))) + + // Then fallback to the original dist directory + app.use(express.static(path.join(__dirname, './dist'))) +} + +const numArg = process.argv.find(x => x.match(/^\d+$/)) +const port = (require.main === module ? numArg : undefined) || 8080 + +// Start the server +const server = + app.listen(port, async function () { + console.log('Proxy server listening on port ' + server.address().port) + if (siModule && isProd) { + const _interfaces = await siModule.networkInterfaces() + const interfaces = Array.isArray(_interfaces) ? _interfaces : [_interfaces] + let netInterface = interfaces.find(int => int.default) + if (!netInterface) { + netInterface = interfaces.find(int => !int.virtual) ?? interfaces[0] + console.warn('Failed to get the default network interface, searching for fallback') + } + if (netInterface) { + const address = netInterface.ip4 + console.log(`You can access the server on http://localhost:${port} or http://${address}:${port}`) + } + } + }) + +module.exports = { app } diff --git a/sounds-v2.js b/sounds-v2.js deleted file mode 100644 index 03b36299..00000000 --- a/sounds-v2.js +++ /dev/null @@ -1,6 +0,0 @@ -(() => { - // scripts/sounds.js - window.allSoundsMap = {"1.8":{},"1.9.4":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1","1;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","2;block.anvil.destroy":"1;random/anvil_break;1","3;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","4;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","5;block.anvil.land":"1;random/anvil_land;1","6;block.anvil.place":"1;random/anvil_land;1","7;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","8;block.anvil.use":"1;random/anvil_use;1","9;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","10;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","11;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","12;block.chest.open":"1;block/chest/open;1","13;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","14;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","15;block.cloth.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","16;block.cloth.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","17;block.cloth.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","18;block.cloth.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","19;block.cloth.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","20;block.comparator.click":"1;random/click;1","21;block.dispenser.dispense":"1;random/click;1","22;block.dispenser.fail":"1;random/click;1","23;block.dispenser.launch":"1;random/bow;1","24;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","25;block.enderchest.close":"1;random/chestclosed;1","26;block.enderchest.open":"1;random/chestopen;1","27;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","28;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","29;block.fire.ambient":"1;fire/fire;1","30;block.fire.extinguish":"1;random/fizz;1","31;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","32;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","33;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","34;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","35;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","36;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","37;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","38;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","39;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","40;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","41;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","42;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","43;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","44;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","45;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","46;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","47;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","48;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","49;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","50;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","51;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","52;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","53;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","54;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","55;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","56;block.lava.ambient":"1;liquid/lava;1","57;block.lava.extinguish":"1;random/fizz;1","58;block.lava.pop":"1;liquid/lavapop;1","59;block.lever.click":"1;random/click;1","60;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","61;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","62;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","63;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","64;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","65;block.metal_pressureplate.click_off":"1;random/click;1","66;block.metal_pressureplate.click_on":"1;random/click;1","67;block.note.basedrum":"1;note/bd;1","68;block.note.bass":"1;note/bassattack;1","69;block.note.harp":"1;note/harp;1","70;block.note.hat":"1;note/hat;1","71;block.note.pling":"1;note/pling;1","72;block.note.snare":"1;note/snare;1","73;block.piston.contract":"1;tile/piston/in;1","74;block.piston.extend":"1;tile/piston/out;1","75;block.portal.ambient":"1;portal/portal;1","76;block.portal.travel":"1;portal/travel;1","77;block.portal.trigger":"1;portal/trigger;1","78;block.redstone_torch.burnout":"1;random/fizz;1","79;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","80;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","81;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","82;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","83;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","84;block.slime.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","85;block.slime.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","86;block.slime.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","87;block.slime.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","88;block.slime.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","89;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","90;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","91;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","92;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","93;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","94;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","95;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","96;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","97;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","98;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","99;block.stone_button.click_off":"1;random/click;1","100;block.stone_button.click_on":"1;random/click;1","101;block.stone_pressureplate.click_off":"1;random/click;1","102;block.stone_pressureplate.click_on":"1;random/click;1","103;block.tripwire.attach":"1;random/click;1","104;block.tripwire.click_off":"1;random/click;1","105;block.tripwire.click_on":"1;random/click;1","106;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","107;block.water.ambient":"1;liquid/water;1","108;block.waterlily.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","109;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","110;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","111;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","112;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","113;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","114;block.wood_button.click_off":"1;random/wood_click;1","115;block.wood_button.click_on":"1;random/wood_click;1","116;block.wood_pressureplate.click_off":"1;random/click;1","117;block.wood_pressureplate.click_on":"1;random/click;1","118;block.wooden_door.close":"1;block/wooden_door/close;1,1;block/wooden_door/close2;1,1;block/wooden_door/close3;1,1;block/wooden_door/close4;1","119;block.wooden_door.open":"1;block/wooden_door/open;1,1;block/wooden_door/open2;1,1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","120;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","121;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","122;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","123;entity.armorstand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","124;entity.armorstand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","125;entity.armorstand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","126;entity.armorstand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","127;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","128;entity.arrow.hit_player":"1;random/successful_hit;1","129;entity.arrow.shoot":"1;random/bow;1","130;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","131;entity.bat.death":"1;mob/bat/death;1","132;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","133;entity.bat.loop":"1;mob/bat/loop;1","134;entity.bat.takeoff":"1;mob/bat/takeoff;1","135;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","136;entity.blaze.burn":"1;fire/fire;1","137;entity.blaze.death":"1;mob/blaze/death;1","138;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","139;entity.blaze.shoot":"1;mob/ghast/fireball4;1","140;entity.bobber.splash":"1;random/splash;1","141;entity.bobber.throw":"1;random/bow;1","142;entity.cat.ambient":"1;mob/cat/meow1;1,1;mob/cat/meow2;1,1;mob/cat/meow3;1,1;mob/cat/meow4;1","143;entity.cat.death":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","144;entity.cat.hiss":"1;mob/cat/hiss1;1,1;mob/cat/hiss2;1,1;mob/cat/hiss3;1","145;entity.cat.hurt":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","146;entity.cat.purr":"1;mob/cat/purr1;1,1;mob/cat/purr2;1,1;mob/cat/purr3;1","147;entity.cat.purreow":"1;mob/cat/purreow1;1,1;mob/cat/purreow2;1","148;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","149;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","150;entity.chicken.egg":"1;mob/chicken/plop;1","151;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","152;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","153;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","154;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","155;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","156;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","157;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","158;entity.creeper.death":"1;mob/creeper/death;1","159;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","160;entity.creeper.primed":"1;random/fuse;1","161;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","162;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","163;entity.donkey.chest":"1;mob/chicken/plop;1","164;entity.donkey.death":"1;mob/horse/donkey/death;1","165;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","166;entity.egg.throw":"1;random/bow;1","167;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","168;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","169;entity.elder_guardian.curse":"1;mob/guardian/curse;1","170;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","171;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","172;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","173;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","174;entity.enderdragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","175;entity.enderdragon.death":"1;mob/enderdragon/end;1","176;entity.enderdragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","177;entity.enderdragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","178;entity.enderdragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","179;entity.enderdragon.shoot":"1;mob/ghast/fireball4;1","180;entity.enderdragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","181;entity.endereye.launch":"1;random/bow;1","182;entity.endermen.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","183;entity.endermen.death":"1;mob/endermen/death;1","184;entity.endermen.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","185;entity.endermen.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","186;entity.endermen.stare":"1;mob/endermen/stare;1","187;entity.endermen.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","188;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","189;entity.endermite.death":"1;mob/silverfish/kill;1","190;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","191;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","192;entity.enderpearl.throw":"1;random/bow;1","193;entity.experience_bottle.throw":"1;random/bow;1","194;entity.experience_orb.pickup":"1;random/orb;1","195;entity.experience_orb.touch":"1;random/orb;1","196;entity.firework.blast":"1;fireworks/blast1;1","197;entity.firework.blast_far":"1;fireworks/blast_far1;1","198;entity.firework.large_blast":"1;fireworks/largeBlast1;1","199;entity.firework.large_blast_far":"1;fireworks/largeBlast_far1;1","200;entity.firework.launch":"1;fireworks/launch1;1","201;entity.firework.shoot":"1;random/bow;1","202;entity.firework.twinkle":"1;fireworks/twinkle1;1","203;entity.firework.twinkle_far":"1;fireworks/twinkle_far1;1","204;entity.generic.big_fall":"1;damage/fallbig;1","205;entity.generic.burn":"1;random/fizz;1","206;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","207;entity.generic.drink":"1;random/drink;1","208;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","209;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","210;entity.generic.extinguish_fire":"1;random/fizz;1","211;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","212;entity.generic.small_fall":"1;damage/fallsmall;1","213;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","214;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","215;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","216;entity.ghast.death":"1;mob/ghast/death;1","217;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","218;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","219;entity.ghast.shoot":"1;mob/ghast/fireball4;1","220;entity.ghast.warn":"1;mob/ghast/charge;1","221;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","222;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","223;entity.guardian.attack":"1;mob/guardian/attack_loop;1","224;entity.guardian.death":"1;mob/guardian/guardian_death;1","225;entity.guardian.death_land":"1;mob/guardian/land_death;1","226;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","227;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","228;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","229;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","230;entity.horse.angry":"1;mob/horse/angry1;1","231;entity.horse.armor":"1;mob/horse/armor;1","232;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","233;entity.horse.death":"1;mob/horse/death;1","234;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","235;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","236;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","237;entity.horse.jump":"1;mob/horse/jump;1","238;entity.horse.land":"1;mob/horse/land;1","239;entity.horse.saddle":"1;mob/horse/leather;1","240;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","241;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","242;entity.hostile.big_fall":"1;damage/fallbig;1","243;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","244;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","245;entity.hostile.small_fall":"1;damage/fallsmall;1","246;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","247;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","248;entity.irongolem.attack":"1;mob/irongolem/throw;1","249;entity.irongolem.death":"1;mob/irongolem/death;1","250;entity.irongolem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","251;entity.irongolem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","252;entity.item.break":"1;random/break;1","253;entity.item.pickup":"1;random/pop;1","254;entity.itemframe.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","255;entity.itemframe.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","256;entity.itemframe.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","257;entity.itemframe.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","258;entity.itemframe.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","259;entity.leashknot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","260;entity.leashknot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","261;entity.lightning.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","262;entity.lightning.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","263;entity.lingeringpotion.throw":"1;random/bow;1","264;entity.magmacube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","265;entity.magmacube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","266;entity.magmacube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","267;entity.magmacube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","268;entity.minecart.inside":"1;minecart/inside;1","269;entity.minecart.riding":"1;minecart/base;1","270;entity.mooshroom.shear":"1;mob/sheep/shear;1","271;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","272;entity.mule.death":"1;mob/horse/donkey/death;1","273;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","274;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","275;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","276;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","277;entity.pig.death":"1;mob/pig/death;1","278;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","279;entity.pig.saddle":"1;mob/horse/leather;1","280;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","281;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","282;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","283;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","284;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","285;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","286;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","287;entity.player.big_fall":"1;damage/fallbig;1","288;entity.player.breath":"1;random/breath;1","289;entity.player.burp":"1;random/burp;1","290;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","291;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","292;entity.player.levelup":"1;random/levelup;1","293;entity.player.small_fall":"1;damage/fallsmall;1","294;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","295;entity.player.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","296;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","297;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","298;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","299;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","300;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","301;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","302;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","303;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","304;entity.sheep.shear":"1;mob/sheep/shear;1","305;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","306;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","307;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","308;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","309;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","310;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","311;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","312;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","313;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","314;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","315;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","316;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","317;entity.silverfish.death":"1;mob/silverfish/kill;1","318;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","319;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","320;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","321;entity.skeleton.death":"1;mob/skeleton/death;1","322;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","323;entity.skeleton.shoot":"1;random/bow;1","324;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","325;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","326;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","327;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","328;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","329;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","330;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","331;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","332;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","333;entity.small_magmacube.death":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","334;entity.small_magmacube.hurt":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","335;entity.small_magmacube.squish":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","336;entity.small_slime.death":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","337;entity.small_slime.hurt":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","340;entity.snowball.throw":"1;random/bow;1","342;entity.snowman.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","343;entity.snowman.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","344;entity.snowman.shoot":"1;random/bow;1","345;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","346;entity.spider.death":"1;mob/spider/death;1","347;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","348;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","349;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","350;entity.splash_potion.throw":"1;random/bow;1","351;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","352;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","353;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","354;entity.tnt.primed":"1;random/fuse;1","355;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","356;entity.villager.death":"1;mob/villager/death;1","357;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","358;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","359;entity.villager.trading":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","360;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","361;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","362;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","363;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","364;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","365;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","366;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","367;entity.wither.break_block":"1;mob/zombie/woodbreak;1","368;entity.wither.death":"1;mob/wither/death;1","369;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","370;entity.wither.shoot":"1;mob/wither/shoot;1","371;entity.wither.spawn":"1;mob/wither/spawn;1","372;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","373;entity.wolf.death":"1;mob/wolf/death;1","374;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","375;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","376;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","377;entity.wolf.pant":"1;mob/wolf/panting;1","378;entity.wolf.shake":"1;mob/wolf/shake;1","379;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","380;entity.wolf.whine":"1;mob/wolf/whine;1","381;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","382;entity.zombie.attack_door_wood":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","383;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","384;entity.zombie.break_door_wood":"1;mob/zombie/woodbreak;1","385;entity.zombie.death":"1;mob/zombie/death;1","386;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","387;entity.zombie.infect":"1;mob/zombie/infect;1","388;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","389;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","390;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","391;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","392;entity.zombie_pig.ambient":"1;mob/zombiepig/zpig1;1,1;mob/zombiepig/zpig2;1,1;mob/zombiepig/zpig3;1,1;mob/zombiepig/zpig4;1","393;entity.zombie_pig.angry":"1;mob/zombiepig/zpigangry1;1,1;mob/zombiepig/zpigangry2;1,1;mob/zombiepig/zpigangry3;1,1;mob/zombiepig/zpigangry4;1","394;entity.zombie_pig.death":"1;mob/zombiepig/zpigdeath;1","395;entity.zombie_pig.hurt":"1;mob/zombiepig/zpighurt1;1,1;mob/zombiepig/zpighurt2;1","396;entity.zombie_villager.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","397;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","398;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","399;entity.zombie_villager.death":"1;mob/zombie/death;1","400;entity.zombie_villager.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","401;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","402;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","403;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","404;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","405;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","406;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","407;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","408;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","409;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","410;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","411;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","412;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","413;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","414;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","415;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","416;item.firecharge.use":"1;mob/ghast/fireball4;1","417;item.flintandsteel.use":"1;fire/ignite;1","418;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","419;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","420;item.shield.break":"1;random/break;1","421;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","422;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","423;music.credits":"1;music/game/end/credits;1","424;music.dragon":"1;music/game/end/boss;1","425;music.end":"1;music/game/end/end;1","426;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","427;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","428;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","429;record.11":"1;records/11;1","430;record.13":"1;records/13;1","431;record.blocks":"1;records/blocks;1","432;record.cat":"1;records/cat;1","433;record.chirp":"1;records/chirp;1","434;record.far":"1;records/far;1","435;record.mall":"1;records/mall;1","436;record.mellohi":"1;records/mellohi;1","437;record.stal":"1;records/stal;1","438;record.strad":"1;records/strad;1","439;record.wait":"1;records/wait;1","440;record.ward":"1;records/ward;1","441;ui.button.click":"1;random/click;1","442;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","443;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.10":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1","1;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","2;block.anvil.destroy":"1;random/anvil_break;1","3;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","4;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","5;block.anvil.land":"1;random/anvil_land;1","6;block.anvil.place":"1;random/anvil_land;1","7;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","8;block.anvil.use":"1;random/anvil_use;1","9;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","10;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","11;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","12;block.chest.open":"1;block/chest/open;1","13;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","14;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","15;block.cloth.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","16;block.cloth.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","17;block.cloth.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","18;block.cloth.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","19;block.cloth.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","20;block.comparator.click":"1;random/click;1","21;block.dispenser.dispense":"1;random/click;1","22;block.dispenser.fail":"1;random/click;1","23;block.dispenser.launch":"1;random/bow;1","24;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","25;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","26;block.enderchest.close":"1;block/enderchest/close;1","27;block.enderchest.open":"1;block/enderchest/open;1","28;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","29;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","30;block.fire.ambient":"1;fire/fire;1","31;block.fire.extinguish":"1;random/fizz;1","32;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","33;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","34;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","35;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","36;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","37;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","38;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","39;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","40;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","41;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","42;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","43;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","44;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","45;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","46;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","47;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","48;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","49;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","50;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","51;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","52;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","53;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","54;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","55;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","56;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","57;block.lava.ambient":"1;liquid/lava;1","58;block.lava.extinguish":"1;random/fizz;1","59;block.lava.pop":"1;liquid/lavapop;1","60;block.lever.click":"1;random/click;1","61;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","62;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","63;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","64;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","65;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","66;block.metal_pressureplate.click_off":"1;random/click;1","67;block.metal_pressureplate.click_on":"1;random/click;1","68;block.note.basedrum":"1;note/bd;1","69;block.note.bass":"1;note/bassattack;1","70;block.note.harp":"1;note/harp;1","71;block.note.hat":"1;note/hat;1","72;block.note.pling":"1;note/pling;1","73;block.note.snare":"1;note/snare;1","74;block.piston.contract":"1;tile/piston/in;1","75;block.piston.extend":"1;tile/piston/out;1","76;block.portal.ambient":"1;portal/portal;1","77;block.portal.travel":"1;portal/travel;1","78;block.portal.trigger":"1;portal/trigger;1","79;block.redstone_torch.burnout":"1;random/fizz;1","80;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","81;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","82;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","83;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","84;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","85;block.slime.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","86;block.slime.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","87;block.slime.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","88;block.slime.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","89;block.slime.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","90;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","91;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","92;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","93;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","94;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","95;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","96;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","97;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","98;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","99;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","100;block.stone_button.click_off":"1;random/click;1","101;block.stone_button.click_on":"1;random/click;1","102;block.stone_pressureplate.click_off":"1;random/click;1","103;block.stone_pressureplate.click_on":"1;random/click;1","104;block.tripwire.attach":"1;random/click;1","105;block.tripwire.click_off":"1;random/click;1","106;block.tripwire.click_on":"1;random/click;1","107;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","108;block.water.ambient":"1;liquid/water;1","109;block.waterlily.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","110;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","111;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","112;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","113;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","114;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","115;block.wood_button.click_off":"1;random/wood_click;1","116;block.wood_button.click_on":"1;random/wood_click;1","117;block.wood_pressureplate.click_off":"1;random/click;1","118;block.wood_pressureplate.click_on":"1;random/click;1","119;block.wooden_door.close":"1;block/wooden_door/close;1,1;block/wooden_door/close2;1,1;block/wooden_door/close3;1,1;block/wooden_door/close4;1","120;block.wooden_door.open":"1;block/wooden_door/open;1,1;block/wooden_door/open2;1,1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","121;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","122;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","123;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","124;entity.armorstand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","125;entity.armorstand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","126;entity.armorstand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","127;entity.armorstand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","128;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","129;entity.arrow.hit_player":"1;random/successful_hit;1","130;entity.arrow.shoot":"1;random/bow;1","131;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","132;entity.bat.death":"1;mob/bat/death;1","133;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","134;entity.bat.loop":"1;mob/bat/loop;1","135;entity.bat.takeoff":"1;mob/bat/takeoff;1","136;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","137;entity.blaze.burn":"1;fire/fire;1","138;entity.blaze.death":"1;mob/blaze/death;1","139;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","140;entity.blaze.shoot":"1;mob/ghast/fireball4;1","141;entity.bobber.splash":"1;random/splash;1","142;entity.bobber.throw":"1;random/bow;1","143;entity.cat.ambient":"1;mob/cat/meow1;1,1;mob/cat/meow2;1,1;mob/cat/meow3;1,1;mob/cat/meow4;1","144;entity.cat.death":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","145;entity.cat.hiss":"1;mob/cat/hiss1;1,1;mob/cat/hiss2;1,1;mob/cat/hiss3;1","146;entity.cat.hurt":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","147;entity.cat.purr":"1;mob/cat/purr1;1,1;mob/cat/purr2;1,1;mob/cat/purr3;1","148;entity.cat.purreow":"1;mob/cat/purreow1;1,1;mob/cat/purreow2;1","149;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","150;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","151;entity.chicken.egg":"1;mob/chicken/plop;1","152;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","153;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","154;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","155;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","156;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","157;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","158;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","159;entity.creeper.death":"1;mob/creeper/death;1","160;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","161;entity.creeper.primed":"1;random/fuse;1","162;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","163;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","164;entity.donkey.chest":"1;mob/chicken/plop;1","165;entity.donkey.death":"1;mob/horse/donkey/death;1","166;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","167;entity.egg.throw":"1;random/bow;1","168;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","169;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","170;entity.elder_guardian.curse":"1;mob/guardian/curse;1","171;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","172;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","173;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","174;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","175;entity.enderdragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","176;entity.enderdragon.death":"1;mob/enderdragon/end;1","177;entity.enderdragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","178;entity.enderdragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","179;entity.enderdragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","180;entity.enderdragon.shoot":"1;mob/ghast/fireball4;1","181;entity.enderdragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","182;entity.endereye.launch":"1;random/bow;1","183;entity.endermen.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","184;entity.endermen.death":"1;mob/endermen/death;1","185;entity.endermen.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","186;entity.endermen.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","187;entity.endermen.stare":"1;mob/endermen/stare;1","188;entity.endermen.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","189;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","190;entity.endermite.death":"1;mob/silverfish/kill;1","191;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","192;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","193;entity.enderpearl.throw":"1;random/bow;1","194;entity.experience_bottle.throw":"1;random/bow;1","195;entity.experience_orb.pickup":"1;random/orb;1","196;entity.experience_orb.touch":"1;random/orb;1","197;entity.firework.blast":"1;fireworks/blast1;1","198;entity.firework.blast_far":"1;fireworks/blast_far1;1","199;entity.firework.large_blast":"1;fireworks/largeBlast1;1","200;entity.firework.large_blast_far":"1;fireworks/largeBlast_far1;1","201;entity.firework.launch":"1;fireworks/launch1;1","202;entity.firework.shoot":"1;random/bow;1","203;entity.firework.twinkle":"1;fireworks/twinkle1;1","204;entity.firework.twinkle_far":"1;fireworks/twinkle_far1;1","205;entity.generic.big_fall":"1;damage/fallbig;1","206;entity.generic.burn":"1;random/fizz;1","207;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","208;entity.generic.drink":"1;random/drink;1","209;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","210;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","211;entity.generic.extinguish_fire":"1;random/fizz;1","212;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","213;entity.generic.small_fall":"1;damage/fallsmall;1","214;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","215;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","216;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","217;entity.ghast.death":"1;mob/ghast/death;1","218;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","219;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","220;entity.ghast.shoot":"1;mob/ghast/fireball4;1","221;entity.ghast.warn":"1;mob/ghast/charge;1","222;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","223;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","224;entity.guardian.attack":"1;mob/guardian/attack_loop;1","225;entity.guardian.death":"1;mob/guardian/guardian_death;1","226;entity.guardian.death_land":"1;mob/guardian/land_death;1","227;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","228;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","229;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","230;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","231;entity.horse.angry":"1;mob/horse/angry1;1","232;entity.horse.armor":"1;mob/horse/armor;1","233;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","234;entity.horse.death":"1;mob/horse/death;1","235;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","236;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","237;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","238;entity.horse.jump":"1;mob/horse/jump;1","239;entity.horse.land":"1;mob/horse/land;1","240;entity.horse.saddle":"1;mob/horse/leather;1","241;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","242;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","243;entity.hostile.big_fall":"1;damage/fallbig;1","244;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","245;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","246;entity.hostile.small_fall":"1;damage/fallsmall;1","247;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","248;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","249;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","250;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","251;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","252;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","253;entity.irongolem.attack":"1;mob/irongolem/throw;1","254;entity.irongolem.death":"1;mob/irongolem/death;1","255;entity.irongolem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","256;entity.irongolem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","257;entity.item.break":"1;random/break;1","258;entity.item.pickup":"1;random/pop;1","259;entity.itemframe.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","260;entity.itemframe.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","261;entity.itemframe.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","262;entity.itemframe.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","263;entity.itemframe.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","264;entity.leashknot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","265;entity.leashknot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","266;entity.lightning.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","267;entity.lightning.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","268;entity.lingeringpotion.throw":"1;random/bow;1","269;entity.magmacube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","270;entity.magmacube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","271;entity.magmacube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","272;entity.magmacube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","273;entity.minecart.inside":"1;minecart/inside;1","274;entity.minecart.riding":"1;minecart/base;1","275;entity.mooshroom.shear":"1;mob/sheep/shear;1","276;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","277;entity.mule.death":"1;mob/horse/donkey/death;1","278;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","279;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","280;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","281;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","282;entity.pig.death":"1;mob/pig/death;1","283;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","284;entity.pig.saddle":"1;mob/horse/leather;1","285;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","286;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","287;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","288;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","289;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","290;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","291;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","292;entity.player.big_fall":"1;damage/fallbig;1","293;entity.player.breath":"1;random/breath;1","294;entity.player.burp":"1;random/burp;1","295;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","296;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","297;entity.player.levelup":"1;random/levelup;1","298;entity.player.small_fall":"1;damage/fallsmall;1","299;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","300;entity.player.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","301;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","302;entity.polar_bear.baby_ambient":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","303;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","304;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","305;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","306;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","307;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","308;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","309;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","310;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","311;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","312;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","313;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","314;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","315;entity.sheep.shear":"1;mob/sheep/shear;1","316;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","317;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","318;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","319;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","320;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","321;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","322;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","323;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","324;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","325;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","326;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","327;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","328;entity.silverfish.death":"1;mob/silverfish/kill;1","329;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","330;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","331;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","332;entity.skeleton.death":"1;mob/skeleton/death;1","333;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","334;entity.skeleton.shoot":"1;random/bow;1","335;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","336;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","337;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","338;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","339;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","340;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","341;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","342;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","343;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","344;entity.small_magmacube.death":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","345;entity.small_magmacube.hurt":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","346;entity.small_magmacube.squish":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","347;entity.small_slime.death":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","348;entity.small_slime.hurt":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","351;entity.snowball.throw":"1;random/bow;1","353;entity.snowman.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","354;entity.snowman.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","355;entity.snowman.shoot":"1;random/bow;1","356;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","357;entity.spider.death":"1;mob/spider/death;1","358;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","359;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","360;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","361;entity.splash_potion.throw":"1;random/bow;1","362;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","363;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","364;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","365;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","366;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","367;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","368;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","369;entity.tnt.primed":"1;random/fuse;1","370;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","371;entity.villager.death":"1;mob/villager/death;1","372;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","373;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","374;entity.villager.trading":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","375;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","376;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","377;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","378;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","379;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","380;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","381;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","382;entity.wither.break_block":"1;mob/zombie/woodbreak;1","383;entity.wither.death":"1;mob/wither/death;1","384;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","385;entity.wither.shoot":"1;mob/wither/shoot;1","386;entity.wither.spawn":"1;mob/wither/spawn;1","387;entity.wither_skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","388;entity.wither_skeleton.death":"1;mob/skeleton/death;1","389;entity.wither_skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","390;entity.wither_skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","391;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","392;entity.wolf.death":"1;mob/wolf/death;1","393;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","394;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","395;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","396;entity.wolf.pant":"1;mob/wolf/panting;1","397;entity.wolf.shake":"1;mob/wolf/shake;1","398;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","399;entity.wolf.whine":"1;mob/wolf/whine;1","400;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","401;entity.zombie.attack_door_wood":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","402;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","403;entity.zombie.break_door_wood":"1;mob/zombie/woodbreak;1","404;entity.zombie.death":"1;mob/zombie/death;1","405;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","406;entity.zombie.infect":"1;mob/zombie/infect;1","407;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","408;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","409;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","410;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","411;entity.zombie_pig.ambient":"1;mob/zombiepig/zpig1;1,1;mob/zombiepig/zpig2;1,1;mob/zombiepig/zpig3;1,1;mob/zombiepig/zpig4;1","412;entity.zombie_pig.angry":"1;mob/zombiepig/zpigangry1;1,1;mob/zombiepig/zpigangry2;1,1;mob/zombiepig/zpigangry3;1,1;mob/zombiepig/zpigangry4;1","413;entity.zombie_pig.death":"1;mob/zombiepig/zpigdeath;1","414;entity.zombie_pig.hurt":"1;mob/zombiepig/zpighurt1;1,1;mob/zombiepig/zpighurt2;1","415;entity.zombie_villager.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","416;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","417;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","418;entity.zombie_villager.death":"1;mob/zombie/death;1","419;entity.zombie_villager.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","420;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","421;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","422;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","423;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","424;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","425;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","426;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","427;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","428;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","429;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","430;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","431;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","432;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","433;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","434;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","435;item.firecharge.use":"1;mob/ghast/fireball4;1","436;item.flintandsteel.use":"1;fire/ignite;1","437;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","438;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","439;item.shield.break":"1;random/break;1","440;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","441;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","442;music.credits":"1;music/game/end/credits;1","443;music.dragon":"1;music/game/end/boss;1","444;music.end":"1;music/game/end/end;1","445;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","446;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","447;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","448;record.11":"1;records/11;1","449;record.13":"1;records/13;1","450;record.blocks":"1;records/blocks;1","451;record.cat":"1;records/cat;1","452;record.chirp":"1;records/chirp;1","453;record.far":"1;records/far;1","454;record.mall":"1;records/mall;1","455;record.mellohi":"1;records/mellohi;1","456;record.stal":"1;records/stal;1","457;record.strad":"1;records/strad;1","458;record.wait":"1;records/wait;1","459;record.ward":"1;records/ward;1","460;ui.button.click":"1;random/click;1","461;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","462;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.11":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1","1;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","2;block.anvil.destroy":"1;random/anvil_break;1","3;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","4;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","5;block.anvil.land":"1;random/anvil_land;1","6;block.anvil.place":"1;random/anvil_land;1","7;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","8;block.anvil.use":"1;random/anvil_use;1","9;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","10;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","11;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","12;block.chest.open":"1;block/chest/open;1","13;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","14;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","15;block.cloth.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","16;block.cloth.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","17;block.cloth.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","18;block.cloth.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","19;block.cloth.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","20;block.comparator.click":"1;random/click;1","21;block.dispenser.dispense":"1;random/click;1","22;block.dispenser.fail":"1;random/click;1","23;block.dispenser.launch":"1;random/bow;1","24;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","25;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","26;block.enderchest.close":"1;block/enderchest/close;1","27;block.enderchest.open":"1;block/enderchest/open;1","28;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","29;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","30;block.fire.ambient":"1;fire/fire;1","31;block.fire.extinguish":"1;random/fizz;1","32;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","33;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","34;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","35;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","36;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","37;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","38;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","39;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","40;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","41;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","42;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","43;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","44;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","45;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","46;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","47;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","48;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","49;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","50;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","51;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","52;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","53;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","54;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","55;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","56;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","57;block.lava.ambient":"1;liquid/lava;1","58;block.lava.extinguish":"1;random/fizz;1","59;block.lava.pop":"1;liquid/lavapop;1","60;block.lever.click":"1;random/click;1","61;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","62;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","63;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","64;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","65;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","66;block.metal_pressureplate.click_off":"1;random/click;1","67;block.metal_pressureplate.click_on":"1;random/click;1","68;block.note.basedrum":"1;note/bd;1","69;block.note.bass":"1;note/bassattack;1","70;block.note.harp":"1;note/harp;1","71;block.note.hat":"1;note/hat;1","72;block.note.pling":"1;note/pling;1","73;block.note.snare":"1;note/snare;1","74;block.piston.contract":"1;tile/piston/in;1","75;block.piston.extend":"1;tile/piston/out;1","76;block.portal.ambient":"1;portal/portal;1","77;block.portal.travel":"1;portal/travel;1","78;block.portal.trigger":"1;portal/trigger;1","79;block.redstone_torch.burnout":"1;random/fizz;1","80;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","81;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","82;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","83;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","84;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","85;block.shulker_box.close":"1;block/shulker_box/close;1","86;block.shulker_box.open":"1;block/shulker_box/open;1","87;block.slime.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","88;block.slime.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","89;block.slime.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","90;block.slime.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","91;block.slime.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","92;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","93;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","94;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","95;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","96;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","97;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","98;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","99;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","100;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","101;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","102;block.stone_button.click_off":"1;random/click;1","103;block.stone_button.click_on":"1;random/click;1","104;block.stone_pressureplate.click_off":"1;random/click;1","105;block.stone_pressureplate.click_on":"1;random/click;1","106;block.tripwire.attach":"1;random/click;1","107;block.tripwire.click_off":"1;random/click;1","108;block.tripwire.click_on":"1;random/click;1","109;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","110;block.water.ambient":"1;liquid/water;1","111;block.waterlily.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","112;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","113;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","114;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","115;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","116;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","117;block.wood_button.click_off":"1;random/wood_click;1","118;block.wood_button.click_on":"1;random/wood_click;1","119;block.wood_pressureplate.click_off":"1;random/click;1","120;block.wood_pressureplate.click_on":"1;random/click;1","121;block.wooden_door.close":"1;block/wooden_door/close;1,1;block/wooden_door/close2;1,1;block/wooden_door/close3;1,1;block/wooden_door/close4;1","122;block.wooden_door.open":"1;block/wooden_door/open;1,1;block/wooden_door/open2;1,1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","123;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","124;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","125;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","126;entity.armorstand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","127;entity.armorstand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","128;entity.armorstand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","129;entity.armorstand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","130;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","131;entity.arrow.hit_player":"1;random/successful_hit;1","132;entity.arrow.shoot":"1;random/bow;1","133;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","134;entity.bat.death":"1;mob/bat/death;1","135;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","136;entity.bat.loop":"1;mob/bat/loop;1","137;entity.bat.takeoff":"1;mob/bat/takeoff;1","138;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","139;entity.blaze.burn":"1;fire/fire;1","140;entity.blaze.death":"1;mob/blaze/death;1","141;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","142;entity.blaze.shoot":"1;mob/ghast/fireball4;1","143;entity.bobber.splash":"1;random/splash;1","144;entity.bobber.throw":"1;random/bow;1","145;entity.cat.ambient":"1;mob/cat/meow1;1,1;mob/cat/meow2;1,1;mob/cat/meow3;1,1;mob/cat/meow4;1","146;entity.cat.death":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","147;entity.cat.hiss":"1;mob/cat/hiss1;1,1;mob/cat/hiss2;1,1;mob/cat/hiss3;1","148;entity.cat.hurt":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","149;entity.cat.purr":"1;mob/cat/purr1;1,1;mob/cat/purr2;1,1;mob/cat/purr3;1","150;entity.cat.purreow":"1;mob/cat/purreow1;1,1;mob/cat/purreow2;1","151;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","152;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","153;entity.chicken.egg":"1;mob/chicken/plop;1","154;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","155;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","156;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","157;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","158;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","159;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","160;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","161;entity.creeper.death":"1;mob/creeper/death;1","162;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","163;entity.creeper.primed":"1;random/fuse;1","164;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","165;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","166;entity.donkey.chest":"1;mob/chicken/plop;1","167;entity.donkey.death":"1;mob/horse/donkey/death;1","168;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","169;entity.egg.throw":"1;random/bow;1","170;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","171;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","172;entity.elder_guardian.curse":"1;mob/guardian/curse;1","173;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","174;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","176;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","175;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","177;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","178;entity.enderdragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","179;entity.enderdragon.death":"1;mob/enderdragon/end;1","180;entity.enderdragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","181;entity.enderdragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","182;entity.enderdragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","183;entity.enderdragon.shoot":"1;mob/ghast/fireball4;1","184;entity.enderdragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","185;entity.endereye.launch":"1;random/bow;1","186;entity.endermen.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","187;entity.endermen.death":"1;mob/endermen/death;1","188;entity.endermen.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","189;entity.endermen.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","190;entity.endermen.stare":"1;mob/endermen/stare;1","191;entity.endermen.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","192;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","193;entity.endermite.death":"1;mob/silverfish/kill;1","194;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","195;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","196;entity.enderpearl.throw":"1;random/bow;1","197;entity.evocation_fangs.attack":"1;mob/evocation_illager/fangs;1","198;entity.evocation_illager.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","199;entity.evocation_illager.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","200;entity.evocation_illager.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","201;entity.evocation_illager.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","202;entity.evocation_illager.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","203;entity.evocation_illager.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","204;entity.evocation_illager.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","205;entity.experience_bottle.throw":"1;random/bow;1","206;entity.experience_orb.pickup":"1;random/orb;1","207;entity.firework.blast":"1;fireworks/blast1;1","208;entity.firework.blast_far":"1;fireworks/blast_far1;1","209;entity.firework.large_blast":"1;fireworks/largeblast1;1","210;entity.firework.large_blast_far":"1;fireworks/largeblast_far1;1","211;entity.firework.launch":"1;fireworks/launch1;1","212;entity.firework.shoot":"1;random/bow;1","213;entity.firework.twinkle":"1;fireworks/twinkle1;1","214;entity.firework.twinkle_far":"1;fireworks/twinkle_far1;1","215;entity.generic.big_fall":"1;damage/fallbig;1","216;entity.generic.burn":"1;random/fizz;1","217;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","218;entity.generic.drink":"1;random/drink;1","219;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","220;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","221;entity.generic.extinguish_fire":"1;random/fizz;1","222;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","223;entity.generic.small_fall":"1;damage/fallsmall;1","224;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","225;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","226;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","227;entity.ghast.death":"1;mob/ghast/death;1","228;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","229;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","230;entity.ghast.shoot":"1;mob/ghast/fireball4;1","231;entity.ghast.warn":"1;mob/ghast/charge;1","232;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","233;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","234;entity.guardian.attack":"1;mob/guardian/attack_loop;1","235;entity.guardian.death":"1;mob/guardian/guardian_death;1","236;entity.guardian.death_land":"1;mob/guardian/land_death;1","237;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","238;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","239;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","240;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","241;entity.horse.angry":"1;mob/horse/angry1;1","242;entity.horse.armor":"1;mob/horse/armor;1","243;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","244;entity.horse.death":"1;mob/horse/death;1","245;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","246;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","247;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","248;entity.horse.jump":"1;mob/horse/jump;1","249;entity.horse.land":"1;mob/horse/land;1","250;entity.horse.saddle":"1;mob/horse/leather;1","251;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","252;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","253;entity.hostile.big_fall":"1;damage/fallbig;1","254;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","255;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","256;entity.hostile.small_fall":"1;damage/fallsmall;1","257;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","258;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","259;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","260;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","261;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","262;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","263;entity.irongolem.attack":"1;mob/irongolem/throw;1","264;entity.irongolem.death":"1;mob/irongolem/death;1","265;entity.irongolem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","266;entity.irongolem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","267;entity.item.break":"1;random/break;1","268;entity.item.pickup":"1;random/pop;1","269;entity.itemframe.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","270;entity.itemframe.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","271;entity.itemframe.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","272;entity.itemframe.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","273;entity.itemframe.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","274;entity.leashknot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","275;entity.leashknot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","276;entity.lightning.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","277;entity.lightning.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","278;entity.lingeringpotion.throw":"1;random/bow;1","279;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","280;entity.llama.angry":"1;mob/llama/angry1;1","281;entity.llama.chest":"1;mob/chicken/plop;1","282;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","283;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","284;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","285;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","286;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","287;entity.llama.swag":"1;mob/llama/swag;1","288;entity.magmacube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","289;entity.magmacube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","290;entity.magmacube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","291;entity.magmacube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","292;entity.minecart.inside":"1;minecart/inside;1","293;entity.minecart.riding":"1;minecart/base;1","294;entity.mooshroom.shear":"1;mob/sheep/shear;1","295;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","296;entity.mule.chest":"1;mob/chicken/plop;1","297;entity.mule.death":"1;mob/horse/donkey/death;1","298;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","299;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","300;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","301;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","302;entity.pig.death":"1;mob/pig/death;1","303;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","304;entity.pig.saddle":"1;mob/horse/leather;1","305;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","306;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","307;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","308;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","309;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","310;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","311;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","312;entity.player.big_fall":"1;damage/fallbig;1","313;entity.player.breath":"1;random/breath;1","314;entity.player.burp":"1;random/burp;1","315;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","316;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","317;entity.player.levelup":"1;random/levelup;1","318;entity.player.small_fall":"1;damage/fallsmall;1","319;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","320;entity.player.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","321;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","322;entity.polar_bear.baby_ambient":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","323;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","324;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","325;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","326;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","327;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","328;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","329;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","330;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","331;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","332;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","333;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","334;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","335;entity.sheep.shear":"1;mob/sheep/shear;1","336;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","337;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","338;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","339;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","340;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","341;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","342;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","343;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","344;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","345;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","346;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","347;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","348;entity.silverfish.death":"1;mob/silverfish/kill;1","349;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","350;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","351;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","352;entity.skeleton.death":"1;mob/skeleton/death;1","353;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","354;entity.skeleton.shoot":"1;random/bow;1","355;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","356;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","357;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","358;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","359;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","360;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","361;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","362;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","363;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","364;entity.small_magmacube.death":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","365;entity.small_magmacube.hurt":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","366;entity.small_magmacube.squish":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","367;entity.small_slime.death":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","368;entity.small_slime.hurt":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","371;entity.snowball.throw":"1;random/bow;1","373;entity.snowman.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","374;entity.snowman.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","375;entity.snowman.shoot":"1;random/bow;1","376;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","377;entity.spider.death":"1;mob/spider/death;1","378;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","379;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","380;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","381;entity.splash_potion.throw":"1;random/bow;1","382;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","383;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","384;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","385;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","386;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","387;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","388;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","389;entity.tnt.primed":"1;random/fuse;1","390;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","391;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","392;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","393;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","394;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","395;entity.villager.death":"1;mob/villager/death;1","396;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","397;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","398;entity.villager.trading":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","399;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","400;entity.vindication_illager.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1","401;entity.vindication_illager.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","402;entity.vindication_illager.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","403;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","404;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","405;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","406;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","407;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","408;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","409;entity.wither.break_block":"1;mob/zombie/woodbreak;1","410;entity.wither.death":"1;mob/wither/death;1","411;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","412;entity.wither.shoot":"1;mob/wither/shoot;1","413;entity.wither.spawn":"1;mob/wither/spawn;1","414;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","415;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","416;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","417;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","418;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","419;entity.wolf.death":"1;mob/wolf/death;1","420;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","421;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","422;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","423;entity.wolf.pant":"1;mob/wolf/panting;1","424;entity.wolf.shake":"1;mob/wolf/shake;1","425;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","426;entity.wolf.whine":"1;mob/wolf/whine;1","427;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","428;entity.zombie.attack_door_wood":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","429;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","430;entity.zombie.break_door_wood":"1;mob/zombie/woodbreak;1","431;entity.zombie.death":"1;mob/zombie/death;1","432;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","433;entity.zombie.infect":"1;mob/zombie/infect;1","434;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","435;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","436;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","437;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","438;entity.zombie_pig.ambient":"1;mob/zombiepig/zpig1;1,1;mob/zombiepig/zpig2;1,1;mob/zombiepig/zpig3;1,1;mob/zombiepig/zpig4;1","439;entity.zombie_pig.angry":"1;mob/zombiepig/zpigangry1;1,1;mob/zombiepig/zpigangry2;1,1;mob/zombiepig/zpigangry3;1,1;mob/zombiepig/zpigangry4;1","440;entity.zombie_pig.death":"1;mob/zombiepig/zpigdeath;1","441;entity.zombie_pig.hurt":"1;mob/zombiepig/zpighurt1;1,1;mob/zombiepig/zpighurt2;1","442;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","443;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","444;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","445;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","446;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","447;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","448;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","449;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","450;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","451;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","452;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","453;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","454;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","455;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","456;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","457;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","458;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","459;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","460;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","461;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","462;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","463;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","464;item.firecharge.use":"1;mob/ghast/fireball4;1","465;item.flintandsteel.use":"1;fire/ignite;1","466;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","467;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","468;item.shield.break":"1;random/break;1","469;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","470;item.totem.use":"1;item/totem/use_totem;1","471;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","472;music.credits":"1;music/game/end/credits;1","473;music.dragon":"1;music/game/end/boss;1","474;music.end":"1;music/game/end/end;1","475;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","476;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","477;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","478;record.11":"1;records/11;1","479;record.13":"1;records/13;1","480;record.blocks":"1;records/blocks;1","481;record.cat":"1;records/cat;1","482;record.chirp":"1;records/chirp;1","483;record.far":"1;records/far;1","484;record.mall":"1;records/mall;1","485;record.mellohi":"1;records/mellohi;1","486;record.stal":"1;records/stal;1","487;record.strad":"1;records/strad;1","488;record.wait":"1;records/wait;1","489;record.ward":"1;records/ward;1","490;ui.button.click":"1;random/click;1","491;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","492;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.12":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1","1;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","2;block.anvil.destroy":"1;random/anvil_break;1","3;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","4;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","5;block.anvil.land":"1;random/anvil_land;1","6;block.anvil.place":"1;random/anvil_land;1","7;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","8;block.anvil.use":"1;random/anvil_use;1","9;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","10;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","11;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","12;block.chest.open":"1;block/chest/open;1","13;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","14;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","20;block.comparator.click":"1;random/click;1","21;block.dispenser.dispense":"1;random/click;1","22;block.dispenser.fail":"1;random/click;1","23;block.dispenser.launch":"1;random/bow;1","24;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","25;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","26;block.end_portal.spawn":"1;block/end_portal/endportal;1","27;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","30;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","31;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","32;block.fire.ambient":"1;fire/fire;1","33;block.fire.extinguish":"1;random/fizz;1","34;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","35;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","36;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","37;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","38;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","39;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","40;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","41;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","42;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","43;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","44;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","45;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","46;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","47;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","48;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","49;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","50;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","51;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","52;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","53;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","54;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","55;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","56;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","57;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","58;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","59;block.lava.ambient":"1;liquid/lava;1","60;block.lava.extinguish":"1;random/fizz;1","61;block.lava.pop":"1;liquid/lavapop;1","62;block.lever.click":"1;random/click;1","63;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","64;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","65;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","66;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","67;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","81;block.piston.contract":"1;tile/piston/in;1","82;block.piston.extend":"1;tile/piston/out;1","83;block.portal.ambient":"1;portal/portal;1","84;block.portal.travel":"1;portal/travel;1","85;block.portal.trigger":"1;portal/trigger;1","86;block.redstone_torch.burnout":"1;random/fizz;1","87;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","88;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","89;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","90;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","91;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","92;block.shulker_box.close":"1;block/shulker_box/close;1","93;block.shulker_box.open":"1;block/shulker_box/open;1","99;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","100;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","101;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","102;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","103;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","104;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","105;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","106;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","107;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","108;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","109;block.stone_button.click_off":"1;random/click;1","110;block.stone_button.click_on":"1;random/click;1","113;block.tripwire.attach":"1;random/click;1","114;block.tripwire.click_off":"1;random/click;1","115;block.tripwire.click_on":"1;random/click;1","116;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","117;block.water.ambient":"1;liquid/water;1","119;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","120;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","121;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","122;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","123;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","128;block.wooden_door.close":"1;block/wooden_door/close;1,1;block/wooden_door/close2;1,1;block/wooden_door/close3;1,1;block/wooden_door/close4;1","129;block.wooden_door.open":"1;block/wooden_door/open;1,1;block/wooden_door/open2;1,1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","130;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","131;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","132;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","137;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","138;entity.arrow.hit_player":"1;random/successful_hit;1","139;entity.arrow.shoot":"1;random/bow;1","140;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","141;entity.bat.death":"1;mob/bat/death;1","142;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","143;entity.bat.loop":"1;mob/bat/loop;1","144;entity.bat.takeoff":"1;mob/bat/takeoff;1","145;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","146;entity.blaze.burn":"1;fire/fire;1","147;entity.blaze.death":"1;mob/blaze/death;1","148;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","149;entity.blaze.shoot":"1;mob/ghast/fireball4;1","150;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","151;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","155;entity.cat.ambient":"1;mob/cat/meow1;1,1;mob/cat/meow2;1,1;mob/cat/meow3;1,1;mob/cat/meow4;1","156;entity.cat.death":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","157;entity.cat.hiss":"1;mob/cat/hiss1;1,1;mob/cat/hiss2;1,1;mob/cat/hiss3;1","158;entity.cat.hurt":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","159;entity.cat.purr":"1;mob/cat/purr1;1,1;mob/cat/purr2;1,1;mob/cat/purr3;1","160;entity.cat.purreow":"1;mob/cat/purreow1;1,1;mob/cat/purreow2;1","161;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","162;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","163;entity.chicken.egg":"1;mob/chicken/plop;1","164;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","165;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","166;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","167;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","168;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","169;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","170;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","171;entity.creeper.death":"1;mob/creeper/death;1","172;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","173;entity.creeper.primed":"1;random/fuse;1","174;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","175;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","176;entity.donkey.chest":"1;mob/chicken/plop;1","177;entity.donkey.death":"1;mob/horse/donkey/death;1","178;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","179;entity.egg.throw":"1;random/bow;1","180;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","181;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","182;entity.elder_guardian.curse":"1;mob/guardian/curse;1","183;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","184;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","185;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","186;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","187;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","203;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","204;entity.endermite.death":"1;mob/silverfish/kill;1","205;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","206;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","216;entity.experience_bottle.throw":"1;random/bow;1","217;entity.experience_orb.pickup":"1;random/orb;1","226;entity.generic.big_fall":"1;damage/fallbig;1","227;entity.generic.burn":"1;random/fizz;1","228;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","229;entity.generic.drink":"1;random/drink;1","230;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","231;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","232;entity.generic.extinguish_fire":"1;random/fizz;1","233;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","234;entity.generic.small_fall":"1;damage/fallsmall;1","235;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","236;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","237;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","238;entity.ghast.death":"1;mob/ghast/death;1","239;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","240;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","241;entity.ghast.shoot":"1;mob/ghast/fireball4;1","242;entity.ghast.warn":"1;mob/ghast/charge;1","243;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","244;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","245;entity.guardian.attack":"1;mob/guardian/attack_loop;1","246;entity.guardian.death":"1;mob/guardian/guardian_death;1","247;entity.guardian.death_land":"1;mob/guardian/land_death;1","248;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","249;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","250;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","251;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","252;entity.horse.angry":"1;mob/horse/angry1;1","253;entity.horse.armor":"1;mob/horse/armor;1","254;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","255;entity.horse.death":"1;mob/horse/death;1","256;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","257;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","258;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","259;entity.horse.jump":"1;mob/horse/jump;1","260;entity.horse.land":"1;mob/horse/land;1","261;entity.horse.saddle":"1;mob/horse/leather;1","262;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","263;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","264;entity.hostile.big_fall":"1;damage/fallbig;1","265;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","266;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","267;entity.hostile.small_fall":"1;damage/fallsmall;1","268;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","269;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","270;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","271;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","272;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","273;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","285;entity.item.break":"1;random/break;1","286;entity.item.pickup":"1;random/pop;1","297;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","298;entity.llama.angry":"1;mob/llama/angry1;1","299;entity.llama.chest":"1;mob/chicken/plop;1","300;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","301;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","302;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","303;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","304;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","305;entity.llama.swag":"1;mob/llama/swag;1","310;entity.minecart.inside":"1;minecart/inside;1","311;entity.minecart.riding":"1;minecart/base;1","312;entity.mooshroom.shear":"1;mob/sheep/shear;1","313;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","314;entity.mule.chest":"1;mob/chicken/plop;1","315;entity.mule.death":"1;mob/horse/donkey/death;1","316;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","317;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","318;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","319;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","320;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","321;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","322;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","323;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","324;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","325;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","326;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","328;entity.parrot.imitate.enderman":"0.5;entity.endermen.ambient;1","329;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","331;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","332;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","335;entity.parrot.imitate.polar_bear":"0.7;entity.polar_bear.ambient;1","336;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","337;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","338;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","339;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","340;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","341;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","342;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","344;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","345;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","346;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","347;entity.parrot.imitate.wolf":"0.6;entity.wolf.ambient;1","348;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","349;entity.parrot.imitate.zombie_pigman":"0.4;entity.zombie_pig.ambient;1","350;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","351;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","352;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","353;entity.pig.death":"1;mob/pig/death;1","354;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","355;entity.pig.saddle":"1;mob/horse/leather;1","356;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","357;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","358;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","359;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","360;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","361;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","362;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","363;entity.player.big_fall":"1;damage/fallbig;1","364;entity.player.breath":"1;random/breath;1","365;entity.player.burp":"1;random/burp;1","366;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","367;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","368;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","369;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","370;entity.player.levelup":"1;random/levelup;1","371;entity.player.small_fall":"1;damage/fallsmall;1","372;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","373;entity.player.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","374;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","376;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","377;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","378;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","379;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","380;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","381;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","382;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","383;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","384;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","385;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","386;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","387;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","388;entity.sheep.shear":"1;mob/sheep/shear;1","389;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","390;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","391;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","392;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","393;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","394;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","395;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","396;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","397;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","398;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","399;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","400;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","401;entity.silverfish.death":"1;mob/silverfish/kill;1","402;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","403;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","404;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","405;entity.skeleton.death":"1;mob/skeleton/death;1","406;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","407;entity.skeleton.shoot":"1;random/bow;1","408;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","409;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","410;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","411;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","412;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","413;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","414;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","415;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","416;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","424;entity.snowball.throw":"1;random/bow;1","429;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","430;entity.spider.death":"1;mob/spider/death;1","431;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","432;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","433;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","434;entity.splash_potion.throw":"1;random/bow;1","435;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","436;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","437;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","438;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","439;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","440;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","441;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","442;entity.tnt.primed":"1;random/fuse;1","443;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","444;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","445;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","446;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","447;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","448;entity.villager.death":"1;mob/villager/death;1","449;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","450;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","452;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","456;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","457;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","458;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","459;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","460;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","461;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","462;entity.wither.break_block":"1;mob/zombie/woodbreak;1","463;entity.wither.death":"1;mob/wither/death;1","464;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","465;entity.wither.shoot":"1;mob/wither/shoot;1","466;entity.wither.spawn":"1;mob/wither/spawn;1","467;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","468;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","469;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","470;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","471;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","472;entity.wolf.death":"1;mob/wolf/death;1","473;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","474;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","475;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","476;entity.wolf.pant":"1;mob/wolf/panting;1","477;entity.wolf.shake":"1;mob/wolf/shake;1","478;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","479;entity.wolf.whine":"1;mob/wolf/whine;1","480;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","482;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","484;entity.zombie.death":"1;mob/zombie/death;1","485;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","486;entity.zombie.infect":"1;mob/zombie/infect;1","487;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","488;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","489;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","490;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","495;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","496;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","497;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","498;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","499;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","500;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","501;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","502;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","503;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","504;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","505;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","506;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","507;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","508;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","509;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","510;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","511;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","512;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","513;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","514;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","515;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","516;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","517;item.firecharge.use":"1;mob/ghast/fireball4;1","518;item.flintandsteel.use":"1;fire/ignite;1","519;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","520;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","521;item.shield.break":"1;random/break;1","522;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","523;item.totem.use":"1;item/totem/use_totem;1","524;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","525;music.credits":"1;music/game/end/credits;1","526;music.dragon":"1;music/game/end/boss;1","527;music.end":"1;music/game/end/end;1","528;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","529;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","530;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","543;ui.button.click":"1;random/click;1","546;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","544;ui.toast.in":"0.4;ui/toast/in;1","545;ui.toast.out":"0.4;ui/toast/out;1","547;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","548;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.13":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","1;ambient.underwater.enter":"1;ambient/underwater/enter1;1,1;ambient/underwater/enter2;1,1;ambient/underwater/enter3;1","2;ambient.underwater.exit":"1;ambient/underwater/exit1;1,1;ambient/underwater/exit2;1,1;ambient/underwater/exit3;1","3;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","4;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","5;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,1;ambient/underwater/additions/earth_crack;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1","6;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","7;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","8;block.anvil.destroy":"1;random/anvil_break;1","9;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","10;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","11;block.anvil.land":"1;random/anvil_land;1","12;block.anvil.place":"1;random/anvil_land;1","13;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","14;block.anvil.use":"1;random/anvil_use;1","15;block.beacon.activate":"1;block/beacon/activate;1","16;block.beacon.ambient":"0.9;block/beacon/ambient;1","17;block.beacon.deactivate":"1;block/beacon/deactivate;1","18;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","19;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","20;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","21;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","22;block.bubble_column.upwards_inside":"1;block/bubble_column/upwards_inside;1","23;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","24;block.bubble_column.whirlpool_inside":"1;block/bubble_column/whirlpool_inside;1","25;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","26;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","27;block.chest.open":"1;block/chest/open;1","28;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","29;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","35;block.comparator.click":"1;random/click;1","36;block.conduit.activate":"0.9;block/conduit/activate;1","37;block.conduit.ambient":"1;block/conduit/ambient;1","38;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","39;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","40;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","70;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","71;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","72;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","73;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","74;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","41;block.dispenser.dispense":"1;random/click;1","42;block.dispenser.fail":"1;random/click;1","43;block.dispenser.launch":"1;random/bow;1","44;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","45;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","46;block.end_portal.spawn":"1;block/end_portal/endportal;1","47;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","48;block.ender_chest.close":"1;block/enderchest/close;1","49;block.ender_chest.open":"1;block/enderchest/open;1","50;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","51;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","52;block.fire.ambient":"1;fire/fire;1","53;block.fire.extinguish":"1;random/fizz;1","54;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","55;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","56;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","57;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","58;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","59;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","60;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","61;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","62;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","63;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","64;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","75;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","76;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","77;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","78;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","79;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","80;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","81;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","82;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","83;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","84;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","85;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","86;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","87;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","88;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","89;block.lava.ambient":"1;liquid/lava;1","90;block.lava.extinguish":"1;random/fizz;1","91;block.lava.pop":"1;liquid/lavapop;1","92;block.lever.click":"1;random/click;1","149;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","93;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","94;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","95;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","96;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","97;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","98;block.metal_pressure_plate.click_off":"1;random/click;1","99;block.metal_pressure_plate.click_on":"1;random/click;1","100;block.note_block.basedrum":"1;note/bd;1","101;block.note_block.bass":"1;note/bassattack;1","102;block.note_block.bell":"1;note/bell;1","103;block.note_block.chime":"1;note/icechime;1","104;block.note_block.flute":"1;note/flute;1","105;block.note_block.guitar":"1;note/guitar;1","106;block.note_block.harp":"1;note/harp2;1","107;block.note_block.hat":"1;note/hat;1","108;block.note_block.pling":"1;note/pling;1","109;block.note_block.snare":"1;note/snare;1","110;block.note_block.xylophone":"1;note/xylobone;1","111;block.piston.contract":"1;tile/piston/in;1","112;block.piston.extend":"1;tile/piston/out;1","113;block.portal.ambient":"1;portal/portal;1","114;block.portal.travel":"1;portal/travel;1","115;block.portal.trigger":"1;portal/trigger;1","116;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","117;block.redstone_torch.burnout":"1;random/fizz;1","118;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","119;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","120;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","121;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","122;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","123;block.shulker_box.close":"1;block/shulker_box/close;1","124;block.shulker_box.open":"1;block/shulker_box/open;1","125;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","126;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","127;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","128;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","129;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","130;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","131;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","132;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","133;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","134;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","135;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","136;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","137;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","138;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","139;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","140;block.stone_button.click_off":"1;random/click;1","141;block.stone_button.click_on":"1;random/click;1","142;block.stone_pressure_plate.click_off":"1;random/click;1","143;block.stone_pressure_plate.click_on":"1;random/click;1","144;block.tripwire.attach":"1;random/click;1","145;block.tripwire.click_off":"1;random/click;1","146;block.tripwire.click_on":"1;random/click;1","147;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","148;block.water.ambient":"1;liquid/water;1","65;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","66;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","67;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","68;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","69;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","150;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","151;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","152;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","153;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","154;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","155;block.wooden_button.click_off":"1;random/wood_click;1","156;block.wooden_button.click_on":"1;random/wood_click;1","159;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","160;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","157;block.wooden_pressure_plate.click_off":"1;random/click;1","158;block.wooden_pressure_plate.click_on":"1;random/click;1","161;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","162;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","30;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","31;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","32;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","33;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","34;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","163;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","164;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","165;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","166;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","167;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","168;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","169;entity.arrow.hit_player":"1;random/successful_hit;1","170;entity.arrow.shoot":"1;random/bow;1","171;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","172;entity.bat.death":"1;mob/bat/death;1","173;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","174;entity.bat.loop":"1;mob/bat/loop;1","175;entity.bat.takeoff":"1;mob/bat/takeoff;1","176;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","177;entity.blaze.burn":"1;fire/fire;1","178;entity.blaze.death":"1;mob/blaze/death;1","179;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","180;entity.blaze.shoot":"1;mob/ghast/fireball4;1","181;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","182;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","186;entity.cat.ambient":"1;mob/cat/meow1;1,1;mob/cat/meow2;1,1;mob/cat/meow3;1,1;mob/cat/meow4;1","187;entity.cat.death":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","188;entity.cat.hiss":"1;mob/cat/hiss1;1,1;mob/cat/hiss2;1,1;mob/cat/hiss3;1","189;entity.cat.hurt":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","190;entity.cat.purr":"1;mob/cat/purr1;1,1;mob/cat/purr2;1,1;mob/cat/purr3;1","191;entity.cat.purreow":"1;mob/cat/purreow1;1,1;mob/cat/purreow2;1","192;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","193;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","194;entity.chicken.egg":"1;mob/chicken/plop;1","195;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","196;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","198;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","199;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","200;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","201;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","202;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","203;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","204;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","205;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","206;entity.creeper.death":"1;mob/creeper/death;1","207;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","208;entity.creeper.primed":"1;random/fuse;1","209;entity.dolphin.ambient":"1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1,1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1","210;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","211;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","212;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","213;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","214;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","215;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","216;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","217;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","218;entity.dolphin.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","219;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","220;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","221;entity.donkey.chest":"1;mob/chicken/plop;1","222;entity.donkey.death":"1;mob/horse/donkey/death;1","223;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","248;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","224;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","225;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","226;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","227;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","228;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","229;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","230;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","231;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","232;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","233;entity.egg.throw":"1;random/bow;1","234;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","235;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","236;entity.elder_guardian.curse":"1;mob/guardian/curse;1","237;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","238;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","239;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","240;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","241;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","242;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","243;entity.ender_dragon.death":"1;mob/enderdragon/end;1","244;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","245;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","246;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","247;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","249;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","250;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","261;entity.ender_pearl.throw":"1;random/bow;1","251;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","252;entity.enderman.death":"1;mob/endermen/death;1","253;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","254;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","255;entity.enderman.stare":"1;mob/endermen/stare;1","256;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","257;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","258;entity.endermite.death":"1;mob/silverfish/kill;1","259;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","260;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","262;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","263;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","264;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","265;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","266;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","267;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","268;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","269;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","270;entity.experience_bottle.throw":"1;random/bow;1","271;entity.experience_orb.pickup":"1;random/orb;1","272;entity.firework_rocket.blast":"1;fireworks/blast1;1","273;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","274;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","275;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","276;entity.firework_rocket.launch":"1;fireworks/launch1;1","277;entity.firework_rocket.shoot":"1;random/bow;1","278;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","279;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","280;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","183;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","184;entity.fishing_bobber.splash":"1;random/splash;1","185;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","281;entity.generic.big_fall":"1;damage/fallbig;1","282;entity.generic.burn":"1;random/fizz;1","283;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","284;entity.generic.drink":"1;random/drink;1","285;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","286;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","287;entity.generic.extinguish_fire":"1;random/fizz;1","288;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","289;entity.generic.small_fall":"1;damage/fallsmall;1","290;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","291;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","292;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","293;entity.ghast.death":"1;mob/ghast/death;1","294;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","295;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","296;entity.ghast.shoot":"1;mob/ghast/fireball4;1","297;entity.ghast.warn":"1;mob/ghast/charge;1","298;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","299;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","300;entity.guardian.attack":"1;mob/guardian/attack_loop;1","301;entity.guardian.death":"1;mob/guardian/guardian_death;1","302;entity.guardian.death_land":"1;mob/guardian/land_death;1","303;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","304;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","305;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","306;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","307;entity.horse.angry":"1;mob/horse/angry1;1","308;entity.horse.armor":"1;mob/horse/armor;1","309;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","310;entity.horse.death":"1;mob/horse/death;1","311;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","312;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","313;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","314;entity.horse.jump":"1;mob/horse/jump;1","315;entity.horse.land":"1;mob/horse/land;1","316;entity.horse.saddle":"1;mob/horse/leather;1","317;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","318;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","319;entity.hostile.big_fall":"1;damage/fallbig;1","320;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","321;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","322;entity.hostile.small_fall":"1;damage/fallsmall;1","323;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","324;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","325;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","326;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","327;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","328;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","329;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","330;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","331;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","332;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","333;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","334;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","335;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","336;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","337;entity.iron_golem.attack":"1;mob/irongolem/throw;1","338;entity.iron_golem.death":"1;mob/irongolem/death;1","339;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","340;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","341;entity.item.break":"1;random/break;1","342;entity.item.pickup":"1;random/pop;1","343;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","344;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","345;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","346;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","347;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","348;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","349;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","350;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","351;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","352;entity.lingering_potion.throw":"1;random/bow;1","353;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","354;entity.llama.angry":"1;mob/llama/angry1;1","355;entity.llama.chest":"1;mob/chicken/plop;1","356;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","357;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","358;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","359;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","360;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","361;entity.llama.swag":"1;mob/llama/swag;1","362;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","498;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","363;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","499;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","364;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","365;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","500;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","366;entity.minecart.inside":"1;minecart/inside;1","367;entity.minecart.riding":"1;minecart/base;1","368;entity.mooshroom.shear":"1;mob/sheep/shear;1","369;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","370;entity.mule.chest":"1;mob/chicken/plop;1","371;entity.mule.death":"1;mob/horse/donkey/death;1","372;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","373;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","374;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","375;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","376;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","377;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","378;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","379;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","380;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","381;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","382;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","383;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","384;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","385;entity.parrot.imitate.enderman":"0.5;entity.enderman.ambient;1","386;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","387;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","388;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","389;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","390;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","391;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","392;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","393;entity.parrot.imitate.polar_bear":"0.5;entity.polar_bear.ambient;1","394;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","395;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","396;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","397;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","398;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","399;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","400;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","401;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","402;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","403;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","404;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","405;entity.parrot.imitate.wolf":"0.6;entity.wolf.ambient;1","406;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","407;entity.parrot.imitate.zombie_pigman":"0.4;entity.zombie_pigman.ambient;1","408;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","409;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","410;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","411;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","412;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","413;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","414;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","415;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","416;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","417;entity.pig.death":"1;mob/pig/death;1","418;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","419;entity.pig.saddle":"1;mob/horse/leather;1","420;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","421;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","422;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","423;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","424;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","425;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","426;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","427;entity.player.big_fall":"1;damage/fallbig;1","428;entity.player.breath":"1;random/breath;1","429;entity.player.burp":"1;random/burp;1","430;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","431;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","432;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","433;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","434;entity.player.levelup":"1;random/levelup;1","435;entity.player.small_fall":"1;damage/fallsmall;1","436;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","437;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","438;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","439;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","440;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","441;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","442;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","443;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","444;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","446;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","447;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","448;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","449;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","450;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","451;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","452;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","453;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","454;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","455;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","456;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","458;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","459;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","460;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","461;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","462;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","463;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","464;entity.sheep.shear":"1;mob/sheep/shear;1","465;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","466;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","467;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","468;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","469;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","470;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","471;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","472;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","473;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","474;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","475;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","476;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","477;entity.silverfish.death":"1;mob/silverfish/kill;1","478;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","479;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","480;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","481;entity.skeleton.death":"1;mob/skeleton/death;1","482;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","483;entity.skeleton.shoot":"1;random/bow;1","484;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","485;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","489;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","486;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","490;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","487;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","491;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","492;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","488;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","493;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","494;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","501;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","495;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","502;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","496;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","497;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","506;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","507;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","508;entity.snow_golem.shoot":"1;random/bow;1","509;entity.snowball.throw":"1;random/bow;1","510;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","511;entity.spider.death":"1;mob/spider/death;1","512;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","513;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","514;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","515;entity.splash_potion.throw":"1;random/bow;1","516;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","517;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","518;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","519;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","520;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","521;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","522;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","523;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","524;entity.tnt.primed":"1;random/fuse;1","526;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","527;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","528;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","529;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","530;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","531;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","532;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","533;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","534;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","535;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","536;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","537;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","538;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","539;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","540;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","541;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","542;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","543;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","544;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","545;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","546;entity.villager.death":"1;mob/villager/death;1","547;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","548;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","549;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","550;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","551;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1","552;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","553;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","554;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","555;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","556;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","557;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","558;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","559;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","560;entity.wither.break_block":"1;mob/zombie/woodbreak;1","561;entity.wither.death":"1;mob/wither/death;1","562;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","563;entity.wither.shoot":"1;mob/wither/shoot;1","564;entity.wither.spawn":"1;mob/wither/spawn;1","565;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","566;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","567;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","568;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","569;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","570;entity.wolf.death":"1;mob/wolf/death;1","571;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","572;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","573;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","574;entity.wolf.pant":"1;mob/wolf/panting;1","575;entity.wolf.shake":"1;mob/wolf/shake;1","576;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","577;entity.wolf.whine":"1;mob/wolf/whine;1","578;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","580;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","579;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","581;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","582;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","583;entity.zombie.death":"1;mob/zombie/death;1","584;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","585;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","586;entity.zombie.infect":"1;mob/zombie/infect;1","587;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","588;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","589;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","590;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","591;entity.zombie_pigman.ambient":"1;mob/zombiepig/zpig1;1,1;mob/zombiepig/zpig2;1,1;mob/zombiepig/zpig3;1,1;mob/zombiepig/zpig4;1","592;entity.zombie_pigman.angry":"1;mob/zombiepig/zpigangry1;1,1;mob/zombiepig/zpigangry2;1,1;mob/zombiepig/zpigangry3;1,1;mob/zombiepig/zpigangry4;1","593;entity.zombie_pigman.death":"1;mob/zombiepig/zpigdeath;1","594;entity.zombie_pigman.hurt":"1;mob/zombiepig/zpighurt1;1,1;mob/zombiepig/zpighurt2;1","595;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","596;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","597;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","598;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","599;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","600;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","601;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","602;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","603;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","604;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","605;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","606;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","607;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","608;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","609;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1","610;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","611;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","612;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","613;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","614;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","615;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","616;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","617;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","618;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","619;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","620;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","621;item.firecharge.use":"1;mob/ghast/fireball4;1","622;item.flintandsteel.use":"1;fire/ignite;1","623;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","624;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","625;item.shield.break":"1;random/break;1","626;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","627;item.totem.use":"1;item/totem/use_totem;1","628;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","629;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","630;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","631;item.trident.riptide_1":"1;item/trident/riptide1;1","632;item.trident.riptide_2":"1;item/trident/riptide2;1","633;item.trident.riptide_3":"1;item/trident/riptide3;1","634;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","635;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","636;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","637;music.credits":"1;music/game/end/credits;1","638;music.dragon":"1;music/game/end/boss;1","639;music.end":"1;music/game/end/end;1","640;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","641;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","642;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","643;music.under_water":"0.4;music/game/water/shuniji;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/axolotl;1","644;music_disc.11":"1;records/11;1","645;music_disc.13":"1;records/13;1","646;music_disc.blocks":"1;records/blocks;1","647;music_disc.cat":"1;records/cat;1","648;music_disc.chirp":"1;records/chirp;1","649;music_disc.far":"1;records/far;1","650;music_disc.mall":"1;records/mall;1","651;music_disc.mellohi":"1;records/mellohi;1","652;music_disc.stal":"1;records/stal;1","653;music_disc.strad":"1;records/strad;1","654;music_disc.wait":"1;records/wait;1","655;music_disc.ward":"1;records/ward;1","656;ui.button.click":"1;random/click;1","657;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","658;ui.toast.in":"0.4;ui/toast/in;1","659;ui.toast.out":"0.4;ui/toast/out;1","660;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","661;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.13.2":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","1;ambient.underwater.enter":"1;ambient/underwater/enter1;1,1;ambient/underwater/enter2;1,1;ambient/underwater/enter3;1","2;ambient.underwater.exit":"1;ambient/underwater/exit1;1,1;ambient/underwater/exit2;1,1;ambient/underwater/exit3;1","3;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","4;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","5;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,1;ambient/underwater/additions/earth_crack;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1","6;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","7;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","8;block.anvil.destroy":"1;random/anvil_break;1","9;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","10;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","11;block.anvil.land":"1;random/anvil_land;1","12;block.anvil.place":"1;random/anvil_land;1","13;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","14;block.anvil.use":"1;random/anvil_use;1","15;block.beacon.activate":"1;block/beacon/activate;1","16;block.beacon.ambient":"0.9;block/beacon/ambient;1","17;block.beacon.deactivate":"1;block/beacon/deactivate;1","18;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","19;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","20;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","21;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","22;block.bubble_column.upwards_inside":"1;block/bubble_column/upwards_inside;1","23;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","24;block.bubble_column.whirlpool_inside":"1;block/bubble_column/whirlpool_inside;1","25;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","26;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","27;block.chest.open":"1;block/chest/open;1","28;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","29;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","35;block.comparator.click":"1;random/click;1","36;block.conduit.activate":"0.9;block/conduit/activate;1","37;block.conduit.ambient":"1;block/conduit/ambient;1","38;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","39;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","40;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","70;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","71;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","72;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","73;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","74;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","41;block.dispenser.dispense":"1;random/click;1","42;block.dispenser.fail":"1;random/click;1","43;block.dispenser.launch":"1;random/bow;1","44;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","45;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","46;block.end_portal.spawn":"1;block/end_portal/endportal;1","47;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","48;block.ender_chest.close":"1;block/enderchest/close;1","49;block.ender_chest.open":"1;block/enderchest/open;1","50;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","51;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","52;block.fire.ambient":"1;fire/fire;1","53;block.fire.extinguish":"1;random/fizz;1","54;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","55;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","56;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","57;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","58;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","59;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","60;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","61;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","62;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","63;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","64;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","75;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","76;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","77;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","78;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","79;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","80;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","81;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","82;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","83;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","84;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","85;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","86;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","87;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","88;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","89;block.lava.ambient":"1;liquid/lava;1","90;block.lava.extinguish":"1;random/fizz;1","91;block.lava.pop":"1;liquid/lavapop;1","92;block.lever.click":"1;random/click;1","149;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","93;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","94;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","95;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","96;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","97;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","98;block.metal_pressure_plate.click_off":"1;random/click;1","99;block.metal_pressure_plate.click_on":"1;random/click;1","100;block.note_block.basedrum":"1;note/bd;1","101;block.note_block.bass":"1;note/bassattack;1","102;block.note_block.bell":"1;note/bell;1","103;block.note_block.chime":"1;note/icechime;1","104;block.note_block.flute":"1;note/flute;1","105;block.note_block.guitar":"1;note/guitar;1","106;block.note_block.harp":"1;note/harp2;1","107;block.note_block.hat":"1;note/hat;1","108;block.note_block.pling":"1;note/pling;1","109;block.note_block.snare":"1;note/snare;1","110;block.note_block.xylophone":"1;note/xylobone;1","111;block.piston.contract":"1;tile/piston/in;1","112;block.piston.extend":"1;tile/piston/out;1","113;block.portal.ambient":"1;portal/portal;1","114;block.portal.travel":"1;portal/travel;1","115;block.portal.trigger":"1;portal/trigger;1","116;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","117;block.redstone_torch.burnout":"1;random/fizz;1","118;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","119;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","120;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","121;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","122;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","123;block.shulker_box.close":"1;block/shulker_box/close;1","124;block.shulker_box.open":"1;block/shulker_box/open;1","125;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","126;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","127;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","128;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","129;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","130;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","131;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","132;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","133;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","134;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","135;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","136;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","137;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","138;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","139;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","140;block.stone_button.click_off":"1;random/click;1","141;block.stone_button.click_on":"1;random/click;1","142;block.stone_pressure_plate.click_off":"1;random/click;1","143;block.stone_pressure_plate.click_on":"1;random/click;1","144;block.tripwire.attach":"1;random/click;1","145;block.tripwire.click_off":"1;random/click;1","146;block.tripwire.click_on":"1;random/click;1","147;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","148;block.water.ambient":"1;liquid/water;1","65;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","66;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","67;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","68;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","69;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","150;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","151;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","152;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","153;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","154;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","155;block.wooden_button.click_off":"1;random/wood_click;1","156;block.wooden_button.click_on":"1;random/wood_click;1","159;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","160;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","157;block.wooden_pressure_plate.click_off":"1;random/click;1","158;block.wooden_pressure_plate.click_on":"1;random/click;1","161;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","162;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","30;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","31;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","32;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","33;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","34;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","163;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","164;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","165;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","166;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","167;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","168;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","169;entity.arrow.hit_player":"1;random/successful_hit;1","170;entity.arrow.shoot":"1;random/bow;1","171;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","172;entity.bat.death":"1;mob/bat/death;1","173;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","174;entity.bat.loop":"1;mob/bat/loop;1","175;entity.bat.takeoff":"1;mob/bat/takeoff;1","176;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","177;entity.blaze.burn":"1;fire/fire;1","178;entity.blaze.death":"1;mob/blaze/death;1","179;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","180;entity.blaze.shoot":"1;mob/ghast/fireball4;1","181;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","182;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","186;entity.cat.ambient":"1;mob/cat/meow1;1,1;mob/cat/meow2;1,1;mob/cat/meow3;1,1;mob/cat/meow4;1","187;entity.cat.death":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","188;entity.cat.hiss":"1;mob/cat/hiss1;1,1;mob/cat/hiss2;1,1;mob/cat/hiss3;1","189;entity.cat.hurt":"1;mob/cat/hitt1;1,1;mob/cat/hitt2;1,1;mob/cat/hitt3;1","190;entity.cat.purr":"1;mob/cat/purr1;1,1;mob/cat/purr2;1,1;mob/cat/purr3;1","191;entity.cat.purreow":"1;mob/cat/purreow1;1,1;mob/cat/purreow2;1","192;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","193;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","194;entity.chicken.egg":"1;mob/chicken/plop;1","195;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","196;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","198;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","199;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","200;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","201;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","202;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","203;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","204;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","205;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","206;entity.creeper.death":"1;mob/creeper/death;1","207;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","208;entity.creeper.primed":"1;random/fuse;1","209;entity.dolphin.ambient":"1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1,1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1","210;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","211;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","212;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","213;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","214;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","215;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","216;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","217;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","218;entity.dolphin.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","219;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","220;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","221;entity.donkey.chest":"1;mob/chicken/plop;1","222;entity.donkey.death":"1;mob/horse/donkey/death;1","223;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","248;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","224;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","225;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","226;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","227;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","228;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","229;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","230;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","231;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","232;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","233;entity.egg.throw":"1;random/bow;1","234;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","235;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","236;entity.elder_guardian.curse":"1;mob/guardian/curse;1","237;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","238;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","239;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","240;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","241;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","242;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","243;entity.ender_dragon.death":"1;mob/enderdragon/end;1","244;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","245;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","246;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","247;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","249;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","250;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","261;entity.ender_pearl.throw":"1;random/bow;1","251;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","252;entity.enderman.death":"1;mob/endermen/death;1","253;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","254;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","255;entity.enderman.stare":"1;mob/endermen/stare;1","256;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","257;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","258;entity.endermite.death":"1;mob/silverfish/kill;1","259;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","260;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","262;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","263;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","264;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","265;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","266;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","267;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","268;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","269;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","270;entity.experience_bottle.throw":"1;random/bow;1","271;entity.experience_orb.pickup":"1;random/orb;1","272;entity.firework_rocket.blast":"1;fireworks/blast1;1","273;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","274;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","275;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","276;entity.firework_rocket.launch":"1;fireworks/launch1;1","277;entity.firework_rocket.shoot":"1;random/bow;1","278;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","279;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","280;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","183;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","184;entity.fishing_bobber.splash":"1;random/splash;1","185;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","281;entity.generic.big_fall":"1;damage/fallbig;1","282;entity.generic.burn":"1;random/fizz;1","283;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","284;entity.generic.drink":"1;random/drink;1","285;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","286;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","287;entity.generic.extinguish_fire":"1;random/fizz;1","288;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","289;entity.generic.small_fall":"1;damage/fallsmall;1","290;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","291;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","292;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","293;entity.ghast.death":"1;mob/ghast/death;1","294;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","295;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","296;entity.ghast.shoot":"1;mob/ghast/fireball4;1","297;entity.ghast.warn":"1;mob/ghast/charge;1","298;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","299;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","300;entity.guardian.attack":"1;mob/guardian/attack_loop;1","301;entity.guardian.death":"1;mob/guardian/guardian_death;1","302;entity.guardian.death_land":"1;mob/guardian/land_death;1","303;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","304;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","305;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","306;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","307;entity.horse.angry":"1;mob/horse/angry1;1","308;entity.horse.armor":"1;mob/horse/armor;1","309;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","310;entity.horse.death":"1;mob/horse/death;1","311;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","312;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","313;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","314;entity.horse.jump":"1;mob/horse/jump;1","315;entity.horse.land":"1;mob/horse/land;1","316;entity.horse.saddle":"1;mob/horse/leather;1","317;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","318;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","319;entity.hostile.big_fall":"1;damage/fallbig;1","320;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","321;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","322;entity.hostile.small_fall":"1;damage/fallsmall;1","323;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","324;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","325;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","326;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","327;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","328;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","329;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","330;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","331;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","332;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","333;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","334;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","335;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","336;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","337;entity.iron_golem.attack":"1;mob/irongolem/throw;1","338;entity.iron_golem.death":"1;mob/irongolem/death;1","339;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","340;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","341;entity.item.break":"1;random/break;1","342;entity.item.pickup":"1;random/pop;1","343;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","344;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","345;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","346;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","347;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","348;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","349;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","350;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","351;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","352;entity.lingering_potion.throw":"1;random/bow;1","353;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","354;entity.llama.angry":"1;mob/llama/angry1;1","355;entity.llama.chest":"1;mob/chicken/plop;1","356;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","357;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","358;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","359;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","360;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","361;entity.llama.swag":"1;mob/llama/swag;1","362;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","498;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","363;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","499;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","364;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","365;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","500;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","366;entity.minecart.inside":"1;minecart/inside;1","367;entity.minecart.riding":"1;minecart/base;1","368;entity.mooshroom.shear":"1;mob/sheep/shear;1","369;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","370;entity.mule.chest":"1;mob/chicken/plop;1","371;entity.mule.death":"1;mob/horse/donkey/death;1","372;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","373;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","374;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","375;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","376;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","377;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","378;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","379;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","380;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","381;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","382;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","383;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","384;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","385;entity.parrot.imitate.enderman":"0.5;entity.enderman.ambient;1","386;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","387;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","388;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","389;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","390;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","391;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","392;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","393;entity.parrot.imitate.polar_bear":"0.5;entity.polar_bear.ambient;1","394;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","395;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","396;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","397;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","398;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","399;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","400;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","401;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","402;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","403;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","404;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","405;entity.parrot.imitate.wolf":"0.6;entity.wolf.ambient;1","406;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","407;entity.parrot.imitate.zombie_pigman":"0.4;entity.zombie_pigman.ambient;1","408;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","409;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","410;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","411;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","412;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","413;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","414;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","415;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","416;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","417;entity.pig.death":"1;mob/pig/death;1","418;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","419;entity.pig.saddle":"1;mob/horse/leather;1","420;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","421;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","422;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","423;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","424;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","425;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","426;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","427;entity.player.big_fall":"1;damage/fallbig;1","428;entity.player.breath":"1;random/breath;1","429;entity.player.burp":"1;random/burp;1","430;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","431;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","432;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","433;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","434;entity.player.levelup":"1;random/levelup;1","435;entity.player.small_fall":"1;damage/fallsmall;1","436;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","437;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","438;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","439;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","440;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","441;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","442;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","443;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","444;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","446;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","447;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","448;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","449;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","450;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","451;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","452;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","453;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","454;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","455;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","456;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","458;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","459;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","460;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","461;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","462;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","463;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","464;entity.sheep.shear":"1;mob/sheep/shear;1","465;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","466;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","467;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","468;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","469;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","470;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","471;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","472;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","473;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","474;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","475;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","476;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","477;entity.silverfish.death":"1;mob/silverfish/kill;1","478;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","479;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","480;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","481;entity.skeleton.death":"1;mob/skeleton/death;1","482;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","483;entity.skeleton.shoot":"1;random/bow;1","484;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","485;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","489;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","486;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","490;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","487;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","491;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","492;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","488;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","493;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","494;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","501;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","495;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","502;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","496;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","497;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","506;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","507;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","508;entity.snow_golem.shoot":"1;random/bow;1","509;entity.snowball.throw":"1;random/bow;1","510;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","511;entity.spider.death":"1;mob/spider/death;1","512;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","513;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","514;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","515;entity.splash_potion.throw":"1;random/bow;1","516;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","517;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","518;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","519;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","520;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","521;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","522;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","523;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","524;entity.tnt.primed":"1;random/fuse;1","526;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","527;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","528;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","529;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","530;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","531;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","532;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","533;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","534;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","535;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","536;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","537;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","538;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","539;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","540;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","541;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","542;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","543;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","544;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","545;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","546;entity.villager.death":"1;mob/villager/death;1","547;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","548;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","549;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","550;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","551;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1","552;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","553;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","554;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","555;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","556;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","557;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","558;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","559;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","560;entity.wither.break_block":"1;mob/zombie/woodbreak;1","561;entity.wither.death":"1;mob/wither/death;1","562;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","563;entity.wither.shoot":"1;mob/wither/shoot;1","564;entity.wither.spawn":"1;mob/wither/spawn;1","565;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","566;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","567;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","568;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","569;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","570;entity.wolf.death":"1;mob/wolf/death;1","571;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","572;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","573;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","574;entity.wolf.pant":"1;mob/wolf/panting;1","575;entity.wolf.shake":"1;mob/wolf/shake;1","576;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","577;entity.wolf.whine":"1;mob/wolf/whine;1","578;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","580;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","579;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","581;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","582;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","583;entity.zombie.death":"1;mob/zombie/death;1","584;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","585;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","586;entity.zombie.infect":"1;mob/zombie/infect;1","587;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","588;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","589;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","590;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","591;entity.zombie_pigman.ambient":"1;mob/zombiepig/zpig1;1,1;mob/zombiepig/zpig2;1,1;mob/zombiepig/zpig3;1,1;mob/zombiepig/zpig4;1","592;entity.zombie_pigman.angry":"1;mob/zombiepig/zpigangry1;1,1;mob/zombiepig/zpigangry2;1,1;mob/zombiepig/zpigangry3;1,1;mob/zombiepig/zpigangry4;1","593;entity.zombie_pigman.death":"1;mob/zombiepig/zpigdeath;1","594;entity.zombie_pigman.hurt":"1;mob/zombiepig/zpighurt1;1,1;mob/zombiepig/zpighurt2;1","595;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","596;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","597;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","598;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","599;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","600;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","601;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","602;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","603;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","604;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","605;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","606;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","607;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","608;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","609;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1","610;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","611;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","612;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","613;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","614;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","615;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","616;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","617;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","618;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","619;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","620;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","621;item.firecharge.use":"1;mob/ghast/fireball4;1","622;item.flintandsteel.use":"1;fire/ignite;1","623;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","624;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","625;item.shield.break":"1;random/break;1","626;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","627;item.totem.use":"1;item/totem/use_totem;1","628;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","629;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","630;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","631;item.trident.riptide_1":"1;item/trident/riptide1;1","632;item.trident.riptide_2":"1;item/trident/riptide2;1","633;item.trident.riptide_3":"1;item/trident/riptide3;1","634;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","635;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","636;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","637;music.credits":"1;music/game/end/credits;1","638;music.dragon":"1;music/game/end/boss;1","639;music.end":"1;music/game/end/end;1","640;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","641;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","642;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","643;music.under_water":"0.4;music/game/water/shuniji;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/axolotl;1","644;music_disc.11":"1;records/11;1","645;music_disc.13":"1;records/13;1","646;music_disc.blocks":"1;records/blocks;1","647;music_disc.cat":"1;records/cat;1","648;music_disc.chirp":"1;records/chirp;1","649;music_disc.far":"1;records/far;1","650;music_disc.mall":"1;records/mall;1","651;music_disc.mellohi":"1;records/mellohi;1","652;music_disc.stal":"1;records/stal;1","653;music_disc.strad":"1;records/strad;1","654;music_disc.wait":"1;records/wait;1","655;music_disc.ward":"1;records/ward;1","656;ui.button.click":"1;random/click;1","657;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","658;ui.toast.in":"0.4;ui/toast/in;1","659;ui.toast.out":"0.4;ui/toast/out;1","660;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","661;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.14":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","1;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","2;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","3;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","4;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","5;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,1;ambient/underwater/additions/earth_crack;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1","6;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","7;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","8;block.anvil.destroy":"1;random/anvil_break;1","9;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","10;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","11;block.anvil.land":"1;random/anvil_land;1","12;block.anvil.place":"1;random/anvil_land;1","13;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","14;block.anvil.use":"1;random/anvil_use;1","31;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","32;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","33;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","34;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","35;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","36;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","37;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","38;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","39;block.barrel.close":"1;block/barrel/close;1","40;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","46;block.beacon.activate":"1;block/beacon/activate;1","47;block.beacon.ambient":"0.9;block/beacon/ambient;1","48;block.beacon.deactivate":"1;block/beacon/deactivate;1","49;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","51;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","50;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1","64;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","68;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","69;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","70;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","71;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","72;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","73;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","80;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","90;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","91;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","92;block.chest.open":"1;block/chest/open;1","98;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","99;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","110;block.comparator.click":"1;random/click;1","111;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","112;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","113;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","114;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","115;block.conduit.activate":"0.9;block/conduit/activate;1","116;block.conduit.ambient":"1;block/conduit/ambient;1","117;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","118;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","119;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","270;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","271;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","272;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","273;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","274;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","128;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","138;block.dispenser.dispense":"1;random/click;1","139;block.dispenser.fail":"1;random/click;1","140;block.dispenser.launch":"1;random/bow;1","175;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","198;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","200;block.end_portal.spawn":"1;block/end_portal/endportal;1","199;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","176;block.ender_chest.close":"1;block/enderchest/close;1","177;block.ender_chest.open":"1;block/enderchest/open;1","212;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","213;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","223;block.fire.ambient":"1;fire/fire;1","224;block.fire.extinguish":"1;random/fizz;1","237;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","255;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","256;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","257;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","258;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","259;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","260;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","261;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","262;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","263;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","264;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","275;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","276;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","277;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","278;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","279;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","280;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","329;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","330;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","335;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","336;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","344;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","345;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","346;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","347;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","348;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","349;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","350;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","351;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","352;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","353;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","354;block.lava.ambient":"1;liquid/lava;1","355;block.lava.extinguish":"1;random/fizz;1","356;block.lava.pop":"1;liquid/lavapop;1","359;block.lever.click":"1;random/click;1","720;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","376;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","377;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","378;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","379;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","382;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","380;block.metal_pressure_plate.click_off":"1;random/click;1","381;block.metal_pressure_plate.click_on":"1;random/click;1","402;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","419;block.note_block.banjo":"1;note/banjo;1","404;block.note_block.basedrum":"1;note/bd;1","405;block.note_block.bass":"1;note/bassattack;1","406;block.note_block.bell":"1;note/bell;1","418;block.note_block.bit":"1;note/bit;1","407;block.note_block.chime":"1;note/icechime;1","416;block.note_block.cow_bell":"1;note/cow_bell;1","417;block.note_block.didgeridoo":"1;note/didgeridoo;1","408;block.note_block.flute":"1;note/flute;1","409;block.note_block.guitar":"1;note/guitar;1","410;block.note_block.harp":"1;note/harp2;1","411;block.note_block.hat":"1;note/hat;1","415;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","412;block.note_block.pling":"1;note/pling;1","413;block.note_block.snare":"1;note/snare;1","414;block.note_block.xylophone":"1;note/xylobone;1","490;block.piston.contract":"1;tile/piston/in;1","491;block.piston.extend":"1;tile/piston/out;1","517;block.portal.ambient":"1;portal/portal;1","518;block.portal.travel":"1;portal/travel;1","519;block.portal.trigger":"1;portal/trigger;1","527;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","546;block.redstone_torch.burnout":"1;random/fizz;1","551;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","552;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","553;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","554;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","555;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","556;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","557;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","558;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","559;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","560;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","570;block.shulker_box.close":"1;block/shulker_box/close;1","571;block.shulker_box.open":"1;block/shulker_box/open;1","603;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","604;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","605;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","606;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","607;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","615;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","617;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","618;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","623;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","624;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","625;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","636;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","639;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","640;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","641;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","644;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","637;block.stone_button.click_off":"1;random/click;1","638;block.stone_button.click_on":"1;random/click;1","642;block.stone_pressure_plate.click_off":"1;random/click;1","643;block.stone_pressure_plate.click_on":"1;random/click;1","649;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","650;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","663;block.tripwire.attach":"1;random/click;1","664;block.tripwire.click_off":"1;random/click;1","665;block.tripwire.click_on":"1;random/click;1","666;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","731;block.water.ambient":"1;liquid/water;1","265;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","266;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","267;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","268;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","269;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","763;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","766;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","767;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","768;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","771;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","764;block.wooden_button.click_off":"1;random/wood_click;1","765;block.wooden_button.click_on":"1;random/wood_click;1","759;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","760;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","769;block.wooden_pressure_plate.click_off":"1;random/click;1","770;block.wooden_pressure_plate.click_on":"1;random/click;1","761;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","762;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","101;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","102;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","103;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","104;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","105;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","652;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","23;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","24;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","25;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","26;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","27;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","28;entity.arrow.hit_player":"1;random/successful_hit;1","29;entity.arrow.shoot":"1;random/bow;1","41;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","42;entity.bat.death":"1;mob/bat/death;1","43;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","44;entity.bat.loop":"1;mob/bat/loop;1","45;entity.bat.takeoff":"1;mob/bat/takeoff;1","52;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","53;entity.blaze.burn":"1;fire/fire;1","54;entity.blaze.death":"1;mob/blaze/death;1","55;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","56;entity.blaze.shoot":"1;mob/ghast/fireball4;1","57;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","58;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","81;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","86;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","83;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","84;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","85;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","87;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","88;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","89;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","82;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","93;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","94;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","95;entity.chicken.egg":"1;mob/chicken/plop;1","96;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","97;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","107;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","108;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","109;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","120;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","121;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","122;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","123;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","124;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","125;entity.creeper.death":"1;mob/creeper/death;1","126;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","127;entity.creeper.primed":"1;random/fuse;1","141;entity.dolphin.ambient":"1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1,1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1","142;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","143;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","144;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","145;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","146;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","147;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","148;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","149;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","150;entity.dolphin.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","151;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","152;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","153;entity.donkey.chest":"1;mob/chicken/plop;1","154;entity.donkey.death":"1;mob/horse/donkey/death;1","155;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","180;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","156;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","157;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","158;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","159;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","160;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","161;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","162;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","163;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","164;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","165;entity.egg.throw":"1;random/bow;1","166;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","167;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","168;entity.elder_guardian.curse":"1;mob/guardian/curse;1","169;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","170;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","171;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","172;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","173;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","178;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","179;entity.ender_dragon.death":"1;mob/enderdragon/end;1","181;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","182;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","183;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","184;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","185;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","186;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","197;entity.ender_pearl.throw":"1;random/bow;1","187;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","188;entity.enderman.death":"1;mob/endermen/death;1","189;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","190;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","191;entity.enderman.stare":"1;mob/endermen/stare;1","192;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","193;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","194;entity.endermite.death":"1;mob/silverfish/kill;1","195;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","196;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","201;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","202;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","203;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","204;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","206;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","207;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","208;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","209;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","205;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","210;entity.experience_bottle.throw":"1;random/bow;1","211;entity.experience_orb.pickup":"1;random/orb;1","215;entity.firework_rocket.blast":"1;fireworks/blast1;1","216;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","217;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","218;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","219;entity.firework_rocket.launch":"1;fireworks/launch1;1","220;entity.firework_rocket.shoot":"1;random/bow;1","221;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","222;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","225;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","61;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","62;entity.fishing_bobber.splash":"1;random/splash;1","63;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","227;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","228;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","229;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","230;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","231;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","232;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","233;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","234;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","235;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","236;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","238;entity.generic.big_fall":"1;damage/fallbig;1","239;entity.generic.burn":"1;random/fizz;1","240;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","241;entity.generic.drink":"1;random/drink;1","242;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","243;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","244;entity.generic.extinguish_fire":"1;random/fizz;1","245;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","246;entity.generic.small_fall":"1;damage/fallsmall;1","247;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","248;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","249;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","250;entity.ghast.death":"1;mob/ghast/death;1","251;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","252;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","253;entity.ghast.shoot":"1;mob/ghast/fireball4;1","254;entity.ghast.warn":"1;mob/ghast/charge;1","281;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","282;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","283;entity.guardian.attack":"1;mob/guardian/attack_loop;1","284;entity.guardian.death":"1;mob/guardian/guardian_death;1","285;entity.guardian.death_land":"1;mob/guardian/land_death;1","286;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","287;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","288;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","290;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","291;entity.horse.angry":"1;mob/horse/angry1;1","292;entity.horse.armor":"1;mob/horse/armor;1","293;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","294;entity.horse.death":"1;mob/horse/death;1","295;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","296;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","297;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","298;entity.horse.jump":"1;mob/horse/jump;1","299;entity.horse.land":"1;mob/horse/land;1","300;entity.horse.saddle":"1;mob/horse/leather;1","301;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","302;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","303;entity.hostile.big_fall":"1;damage/fallbig;1","304;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","305;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","306;entity.hostile.small_fall":"1;damage/fallsmall;1","307;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","308;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","309;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","310;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","311;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","312;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","313;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","322;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","323;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","324;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","325;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","326;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","327;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","328;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","331;entity.iron_golem.attack":"1;mob/irongolem/throw;1","332;entity.iron_golem.death":"1;mob/irongolem/death;1","333;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","334;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","342;entity.item.break":"1;random/break;1","343;entity.item.pickup":"1;random/pop;1","337;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","338;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","339;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","340;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","341;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","357;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","358;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","360;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","361;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","362;entity.lingering_potion.throw":"1;random/bow;1","363;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","364;entity.llama.angry":"1;mob/llama/angry1;1","365;entity.llama.chest":"1;mob/chicken/plop;1","366;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","367;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","368;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","369;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","370;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","371;entity.llama.swag":"1;mob/llama/swag;1","372;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","608;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","373;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","609;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","374;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","375;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","610;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","383;entity.minecart.inside":"1;minecart/inside;1","384;entity.minecart.riding":"1;minecart/base;1","385;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","386;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1","387;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","389;entity.mooshroom.shear":"1;mob/sheep/shear;1","388;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","390;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","391;entity.mule.chest":"1;mob/chicken/plop;1","392;entity.mule.death":"1;mob/horse/donkey/death;1","393;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","421;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","422;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","420;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","423;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","424;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","432;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","427;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","435;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","431;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","428;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","429;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","434;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","425;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","426;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","430;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","433;entity.panda.worried_ambient":"1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1,1;mob/panda/pant2;1","436;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","437;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","438;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","439;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","440;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","441;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","442;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","443;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","444;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","445;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","446;entity.parrot.imitate.enderman":"0.5;entity.enderman.ambient;1","447;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","448;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","449;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","450;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","451;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","452;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","453;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","454;entity.parrot.imitate.panda":"0.4;entity.panda.ambient;1","455;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","456;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","457;entity.parrot.imitate.polar_bear":"0.5;entity.polar_bear.ambient;1","458;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","459;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","460;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","461;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","462;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","463;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","464;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","465;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","466;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","467;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","468;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","469;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","470;entity.parrot.imitate.wolf":"0.6;entity.wolf.ambient;1","471;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","472;entity.parrot.imitate.zombie_pigman":"0.4;entity.zombie_pigman.ambient;1","473;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","474;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","475;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","476;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","477;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","478;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","479;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","480;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","481;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","482;entity.pig.death":"1;mob/pig/death;1","483;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","484;entity.pig.saddle":"1;mob/horse/leather;1","485;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","486;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","487;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","488;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","489;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","492;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","493;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","494;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","495;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","496;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","497;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","498;entity.player.big_fall":"1;damage/fallbig;1","499;entity.player.breath":"1;random/breath;1","500;entity.player.burp":"1;random/burp;1","501;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","502;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","503;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","504;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","505;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","506;entity.player.levelup":"1;random/levelup;1","507;entity.player.small_fall":"1;damage/fallsmall;1","508;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","509;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","510;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","511;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","512;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","513;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","514;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","515;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","516;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","521;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","522;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","523;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","524;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","525;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","526;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","528;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","529;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","530;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","531;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","532;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","314;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","315;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","316;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","317;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","318;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","321;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","319;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","320;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","548;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","549;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","550;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","561;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","562;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","563;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","564;entity.sheep.shear":"1;mob/sheep/shear;1","565;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","569;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","574;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","575;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","576;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","577;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","578;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","579;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","580;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","572;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","573;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","581;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","582;entity.silverfish.death":"1;mob/silverfish/kill;1","583;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","584;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","585;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","586;entity.skeleton.death":"1;mob/skeleton/death;1","595;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","596;entity.skeleton.shoot":"1;random/bow;1","597;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","587;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","591;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","588;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","592;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","589;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","593;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","594;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","590;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","598;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","599;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","611;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","600;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","612;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","601;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","602;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","620;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","621;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","622;entity.snow_golem.shoot":"1;random/bow;1","616;entity.snowball.throw":"1;random/bow;1","626;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","627;entity.spider.death":"1;mob/spider/death;1","628;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","629;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","630;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","631;entity.splash_potion.throw":"1;random/bow;1","632;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","633;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","634;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","635;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","645;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","646;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","647;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","648;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","653;entity.tnt.primed":"1;random/fuse;1","668;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","669;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","670;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","671;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","672;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","673;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","674;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","675;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","676;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","677;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","678;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","679;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","680;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","681;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","682;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","692;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","693;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","694;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","695;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","696;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","697;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","698;entity.villager.death":"1;mob/villager/death;1","699;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","700;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","701;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","703;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","704;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","705;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","706;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","707;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","708;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","709;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","710;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","711;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","712;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","713;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","714;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","715;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","702;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","716;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1","717;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","718;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","719;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","721;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","722;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","723;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","724;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","725;entity.wandering_trader.drink_potion":"0.65;random/drink;1,0.7;mob/wandering_trader/drink_potion;1","726;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","727;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","728;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","729;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","730;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","734;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","735;entity.witch.celebrate":"1;entity/witch/celebrate;1,1;entity/witch/ambient1;1,1;entity/witch/ambient4;1","736;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","737;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","738;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","739;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","740;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","741;entity.wither.break_block":"1;mob/zombie/woodbreak;1","742;entity.wither.death":"1;mob/wither/death;1","743;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","744;entity.wither.shoot":"1;mob/wither/shoot;1","749;entity.wither.spawn":"1;mob/wither/spawn;1","745;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","746;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","747;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","748;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","750;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","751;entity.wolf.death":"1;mob/wolf/death;1","752;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","753;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","754;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","755;entity.wolf.pant":"1;mob/wolf/panting;1","756;entity.wolf.shake":"1;mob/wolf/shake;1","757;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","758;entity.wolf.whine":"1;mob/wolf/whine;1","772;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","774;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","773;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","775;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","776;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","777;entity.zombie.death":"1;mob/zombie/death;1","778;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","782;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","783;entity.zombie.infect":"1;mob/zombie/infect;1","788;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","779;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","780;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","781;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","784;entity.zombie_pigman.ambient":"1;mob/zombiepig/zpig1;1,1;mob/zombiepig/zpig2;1,1;mob/zombiepig/zpig3;1,1;mob/zombiepig/zpig4;1","785;entity.zombie_pigman.angry":"1;mob/zombiepig/zpigangry1;1,1;mob/zombiepig/zpigangry2;1,1;mob/zombiepig/zpigangry3;1,1;mob/zombiepig/zpigangry4;1","786;entity.zombie_pigman.death":"1;mob/zombiepig/zpigdeath;1","787;entity.zombie_pigman.hurt":"1;mob/zombiepig/zpighurt1;1,1;mob/zombiepig/zpighurt2;1","789;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","790;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","791;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","792;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","793;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","794;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","533;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","15;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","16;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","17;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","18;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","19;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","20;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","21;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","22;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","30;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1","59;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","60;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","65;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","66;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","67;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","74;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","75;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","76;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","77;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","78;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","79;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","100;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","129;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1","130;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","131;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","132;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","133;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","134;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","135;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","136;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","137;item.crossbow.shoot":"0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.8;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1","174;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","214;item.firecharge.use":"1;mob/ghast/fireball4;1","226;item.flintandsteel.use":"1;fire/ignite;1","289;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","403;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","566;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","567;item.shield.break":"1;random/break;1","568;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","651;item.sweet_berries.pick_from_bush":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","654;item.totem.use":"1;item/totem/use_totem;1","655;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","656;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","657;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","658;item.trident.riptide_1":"1;item/trident/riptide1;1","659;item.trident.riptide_2":"1;item/trident/riptide2;1","660;item.trident.riptide_3":"1;item/trident/riptide3;1","661;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","662;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","394;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","395;music.credits":"1;music/game/end/credits;1","396;music.dragon":"1;music/game/end/boss;1","397;music.end":"1;music/game/end/end;1","398;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","399;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","400;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","401;music.under_water":"0.4;music/game/water/shuniji;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/axolotl;1","534;music_disc.11":"1;records/11;1","535;music_disc.13":"1;records/13;1","536;music_disc.blocks":"1;records/blocks;1","537;music_disc.cat":"1;records/cat;1","538;music_disc.chirp":"1;records/chirp;1","539;music_disc.far":"1;records/far;1","540;music_disc.mall":"1;records/mall;1","541;music_disc.mellohi":"1;records/mellohi;1","542;music_disc.stal":"1;records/stal;1","543;music_disc.strad":"1;records/strad;1","544;music_disc.wait":"1;records/wait;1","545;music_disc.ward":"1;records/ward;1","683;ui.button.click":"1;random/click_stereo;1","686;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","684;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","685;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","688;ui.stonecutter.select_recipe":"1;random/click;1","687;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","689;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","690;ui.toast.in":"0.4;ui/toast/in;1","691;ui.toast.out":"0.4;ui/toast/out;1","732;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","733;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.15":{"0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","1;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","2;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","3;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","4;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","5;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,1;ambient/underwater/additions/earth_crack;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1","6;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","7;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","8;block.anvil.destroy":"1;random/anvil_break;1","9;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","10;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","11;block.anvil.land":"1;random/anvil_land;1","12;block.anvil.place":"1;random/anvil_land;1","13;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","14;block.anvil.use":"1;random/anvil_use;1","31;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","32;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","33;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","34;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","35;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","36;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","37;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","38;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","39;block.barrel.close":"1;block/barrel/close;1","40;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","46;block.beacon.activate":"1;block/beacon/activate;1","47;block.beacon.ambient":"0.9;block/beacon/ambient;1","48;block.beacon.deactivate":"1;block/beacon/deactivate;1","49;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","56;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1","57;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","58;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","59;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","60;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","62;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","61;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1","75;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","79;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","80;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","81;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","82;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","83;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","84;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","91;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","101;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","102;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","103;block.chest.open":"1;block/chest/open;1","109;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","110;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","121;block.comparator.click":"1;random/click;1","122;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","123;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","124;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","125;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","126;block.conduit.activate":"0.9;block/conduit/activate;1","127;block.conduit.ambient":"1;block/conduit/ambient;1","128;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","129;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","130;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","281;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","282;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","283;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","284;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","285;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","139;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","149;block.dispenser.dispense":"1;random/click;1","150;block.dispenser.fail":"1;random/click;1","151;block.dispenser.launch":"1;random/bow;1","186;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","209;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","211;block.end_portal.spawn":"1;block/end_portal/endportal;1","210;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","187;block.ender_chest.close":"1;block/enderchest/close;1","188;block.ender_chest.open":"1;block/enderchest/open;1","223;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","224;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","234;block.fire.ambient":"1;fire/fire;1","235;block.fire.extinguish":"1;random/fizz;1","248;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","266;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","267;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","268;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","269;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","270;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","271;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","272;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","273;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","274;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","275;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","286;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","287;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","288;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","289;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","290;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","291;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","301;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","302;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","303;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","304;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","305;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1","306;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","347;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","348;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","355;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","356;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","364;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","365;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","366;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","367;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","368;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","369;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","370;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","371;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","372;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","373;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","374;block.lava.ambient":"1;liquid/lava;1","375;block.lava.extinguish":"1;random/fizz;1","376;block.lava.pop":"1;liquid/lavapop;1","379;block.lever.click":"1;random/click;1","735;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","396;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","397;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","398;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","399;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","402;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","400;block.metal_pressure_plate.click_off":"1;random/click;1","401;block.metal_pressure_plate.click_on":"1;random/click;1","422;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","439;block.note_block.banjo":"1;note/banjo;1","424;block.note_block.basedrum":"1;note/bd;1","425;block.note_block.bass":"1;note/bassattack;1","426;block.note_block.bell":"1;note/bell;1","438;block.note_block.bit":"1;note/bit;1","427;block.note_block.chime":"1;note/icechime;1","436;block.note_block.cow_bell":"1;note/cow_bell;1","437;block.note_block.didgeridoo":"1;note/didgeridoo;1","428;block.note_block.flute":"1;note/flute;1","429;block.note_block.guitar":"1;note/guitar;1","430;block.note_block.harp":"1;note/harp2;1","431;block.note_block.hat":"1;note/hat;1","435;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","432;block.note_block.pling":"1;note/pling;1","433;block.note_block.snare":"1;note/snare;1","434;block.note_block.xylophone":"1;note/xylobone;1","505;block.piston.contract":"1;tile/piston/in;1","506;block.piston.extend":"1;tile/piston/out;1","532;block.portal.ambient":"1;portal/portal;1","533;block.portal.travel":"1;portal/travel;1","534;block.portal.trigger":"1;portal/trigger;1","542;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","561;block.redstone_torch.burnout":"1;random/fizz;1","566;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","567;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","568;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","569;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","570;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","571;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","572;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","573;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","574;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","575;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","585;block.shulker_box.close":"1;block/shulker_box/close;1","586;block.shulker_box.open":"1;block/shulker_box/open;1","618;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","619;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","620;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","621;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","622;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","630;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","632;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","633;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","638;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","639;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","640;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","651;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","654;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","655;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","656;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","659;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","652;block.stone_button.click_off":"1;random/click;1","653;block.stone_button.click_on":"1;random/click;1","657;block.stone_pressure_plate.click_off":"1;random/click;1","658;block.stone_pressure_plate.click_on":"1;random/click;1","664;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","665;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","678;block.tripwire.attach":"1;random/click;1","679;block.tripwire.click_off":"1;random/click;1","680;block.tripwire.click_on":"1;random/click;1","681;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","746;block.water.ambient":"1;liquid/water;1","276;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","277;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","278;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","279;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","280;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","778;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","781;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","782;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","783;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","786;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","779;block.wooden_button.click_off":"1;random/wood_click;1","780;block.wooden_button.click_on":"1;random/wood_click;1","774;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","775;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","784;block.wooden_pressure_plate.click_off":"1;random/click;1","785;block.wooden_pressure_plate.click_on":"1;random/click;1","776;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","777;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","112;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","113;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","114;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","115;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","116;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","667;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","23;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","24;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","25;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","26;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","27;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","28;entity.arrow.hit_player":"1;random/successful_hit;1","29;entity.arrow.shoot":"1;random/bow;1","41;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","42;entity.bat.death":"1;mob/bat/death;1","43;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","44;entity.bat.loop":"1;mob/bat/loop;1","45;entity.bat.takeoff":"1;mob/bat/takeoff;1","50;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","51;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1","53;entity.bee.loop":"0.75;mob/bee/loop5;1,0.7;mob/bee/loop5;1,0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1","52;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","55;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","54;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","63;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","64;entity.blaze.burn":"1;fire/fire;1","65;entity.blaze.death":"1;mob/blaze/death;1","66;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","67;entity.blaze.shoot":"1;mob/ghast/fireball4;1","68;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","69;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","92;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","97;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","94;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","95;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","96;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","98;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","99;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","100;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","93;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","104;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","105;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","106;entity.chicken.egg":"1;mob/chicken/plop;1","107;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","108;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","118;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","119;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","120;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","131;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","132;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","133;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","134;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","135;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","136;entity.creeper.death":"1;mob/creeper/death;1","137;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","138;entity.creeper.primed":"1;random/fuse;1","152;entity.dolphin.ambient":"1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1,1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1","153;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","154;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","155;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","156;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","157;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","158;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","159;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","160;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","161;entity.dolphin.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","162;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","163;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","164;entity.donkey.chest":"1;mob/chicken/plop;1","165;entity.donkey.death":"1;mob/horse/donkey/death;1","166;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","191;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","167;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","168;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","169;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","170;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","171;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","172;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","173;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","174;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","175;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","176;entity.egg.throw":"1;random/bow;1","177;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","178;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","179;entity.elder_guardian.curse":"1;mob/guardian/curse;1","180;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","181;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","182;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","183;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","184;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","189;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","190;entity.ender_dragon.death":"1;mob/enderdragon/end;1","192;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","193;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","194;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","195;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","196;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","197;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","208;entity.ender_pearl.throw":"1;random/bow;1","198;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","199;entity.enderman.death":"1;mob/endermen/death;1","200;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","201;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","202;entity.enderman.stare":"1;mob/endermen/stare;1","203;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","204;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","205;entity.endermite.death":"1;mob/silverfish/kill;1","206;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","207;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","212;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","213;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","214;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","215;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","217;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","218;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","219;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","220;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","216;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","221;entity.experience_bottle.throw":"1;random/bow;1","222;entity.experience_orb.pickup":"1;random/orb;1","226;entity.firework_rocket.blast":"1;fireworks/blast1;1","227;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","228;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","229;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","230;entity.firework_rocket.launch":"1;fireworks/launch1;1","231;entity.firework_rocket.shoot":"1;random/bow;1","232;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","233;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","236;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","72;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","73;entity.fishing_bobber.splash":"1;random/splash;1","74;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","238;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","239;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","240;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","241;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","242;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","243;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","244;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","245;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","246;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","247;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","249;entity.generic.big_fall":"1;damage/fallbig;1","250;entity.generic.burn":"1;random/fizz;1","251;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","252;entity.generic.drink":"1;random/drink;1","253;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","254;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","255;entity.generic.extinguish_fire":"1;random/fizz;1","256;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","257;entity.generic.small_fall":"1;damage/fallsmall;1","258;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","259;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","260;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","261;entity.ghast.death":"1;mob/ghast/death;1","262;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","263;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","264;entity.ghast.shoot":"1;mob/ghast/fireball4;1","265;entity.ghast.warn":"1;mob/ghast/charge;1","292;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","293;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","294;entity.guardian.attack":"1;mob/guardian/attack_loop;1","295;entity.guardian.death":"1;mob/guardian/guardian_death;1","296;entity.guardian.death_land":"1;mob/guardian/land_death;1","297;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","298;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","299;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","308;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","309;entity.horse.angry":"1;mob/horse/angry1;1","310;entity.horse.armor":"1;mob/horse/armor;1","311;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","312;entity.horse.death":"1;mob/horse/death;1","313;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","314;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","315;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","316;entity.horse.jump":"1;mob/horse/jump;1","317;entity.horse.land":"1;mob/horse/land;1","318;entity.horse.saddle":"1;mob/horse/leather;1","319;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","320;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","321;entity.hostile.big_fall":"1;damage/fallbig;1","322;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","323;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","324;entity.hostile.small_fall":"1;damage/fallsmall;1","325;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","326;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","327;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","328;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","329;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","330;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","331;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","340;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","341;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","342;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","343;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","344;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","345;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","346;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","349;entity.iron_golem.attack":"1;mob/irongolem/throw;1","350;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1","351;entity.iron_golem.death":"1;mob/irongolem/death;1","352;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","353;entity.iron_golem.repair":"1;mob/irongolem/repair;1","354;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","362;entity.item.break":"1;random/break;1","363;entity.item.pickup":"1;random/pop;1","357;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","358;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","359;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","360;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","361;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","377;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","378;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","380;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","381;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","382;entity.lingering_potion.throw":"1;random/bow;1","383;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","384;entity.llama.angry":"1;mob/llama/angry1;1","385;entity.llama.chest":"1;mob/chicken/plop;1","386;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","387;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","388;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","389;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","390;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","391;entity.llama.swag":"1;mob/llama/swag;1","392;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","623;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","393;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","624;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","394;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","395;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","625;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","403;entity.minecart.inside":"1;minecart/inside;1","404;entity.minecart.riding":"1;minecart/base;1","405;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","406;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1","407;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","409;entity.mooshroom.shear":"1;mob/sheep/shear;1","408;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","410;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","411;entity.mule.chest":"1;mob/chicken/plop;1","412;entity.mule.death":"1;mob/horse/donkey/death;1","413;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","441;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","442;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","440;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","443;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","444;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","452;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","447;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","455;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","451;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","448;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","449;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","454;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","445;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","446;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","450;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","453;entity.panda.worried_ambient":"1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1,1;mob/panda/pant2;1","456;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","457;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","458;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","459;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","460;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","461;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","462;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","463;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","464;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","465;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","466;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","467;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","468;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","469;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","470;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","471;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","472;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","473;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","474;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","475;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","476;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","477;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","478;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","479;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","480;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","481;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","482;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","483;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","484;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","485;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","486;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","487;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","488;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","489;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","490;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","491;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","492;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","493;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","494;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","495;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","496;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","497;entity.pig.death":"1;mob/pig/death;1","498;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","499;entity.pig.saddle":"1;mob/horse/leather;1","500;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","501;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","502;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","503;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","504;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","507;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","508;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","509;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","510;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","511;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","512;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","513;entity.player.big_fall":"1;damage/fallbig;1","514;entity.player.breath":"1;random/breath;1","515;entity.player.burp":"1;random/burp;1","516;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","517;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","518;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","519;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","520;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","521;entity.player.levelup":"1;random/levelup;1","522;entity.player.small_fall":"1;damage/fallsmall;1","523;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","524;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","525;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","526;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","527;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","528;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","529;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","530;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","531;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","536;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","537;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","538;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","539;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","540;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","541;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","543;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","544;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","545;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","546;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","547;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","332;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","333;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","334;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","335;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","336;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","339;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","337;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","338;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","563;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","564;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","565;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","576;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","577;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","578;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","579;entity.sheep.shear":"1;mob/sheep/shear;1","580;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","584;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","589;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","590;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","591;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","592;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","593;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","594;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","595;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","587;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","588;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","596;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","597;entity.silverfish.death":"1;mob/silverfish/kill;1","598;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","599;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","600;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","601;entity.skeleton.death":"1;mob/skeleton/death;1","610;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","611;entity.skeleton.shoot":"1;random/bow;1","612;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","602;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","606;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","603;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","607;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","604;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","608;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","609;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","605;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","613;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","614;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","626;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","615;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","627;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","616;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","617;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","635;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","636;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","637;entity.snow_golem.shoot":"1;random/bow;1","631;entity.snowball.throw":"1;random/bow;1","641;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","642;entity.spider.death":"1;mob/spider/death;1","643;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","644;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","645;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","646;entity.splash_potion.throw":"1;random/bow;1","647;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","648;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","649;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","650;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","660;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","661;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","662;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","663;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","668;entity.tnt.primed":"1;random/fuse;1","683;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","684;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","685;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","686;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","687;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","688;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","689;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","690;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","691;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","692;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","693;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","694;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","695;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","696;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","697;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","707;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","708;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","709;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","710;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","711;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","712;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","713;entity.villager.death":"1;mob/villager/death;1","714;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","715;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","716;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","718;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","719;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","720;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","721;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","722;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","723;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","724;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","725;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","726;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","727;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","728;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","729;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","730;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","717;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","731;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","732;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","733;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","734;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","736;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","737;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","738;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","739;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","740;entity.wandering_trader.drink_potion":"0.65;random/drink;1,0.7;mob/wandering_trader/drink_potion;1","741;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","742;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","743;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","744;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","745;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","749;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","750;entity.witch.celebrate":"1;entity/witch/celebrate;1,1;entity/witch/ambient1;1,1;entity/witch/ambient4;1","751;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","752;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","753;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","754;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","755;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","756;entity.wither.break_block":"1;mob/zombie/woodbreak;1","757;entity.wither.death":"1;mob/wither/death;1","758;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","759;entity.wither.shoot":"1;mob/wither/shoot;1","764;entity.wither.spawn":"1;mob/wither/spawn;1","760;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","761;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","762;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","763;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","765;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","766;entity.wolf.death":"1;mob/wolf/death;1","767;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","768;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","769;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","770;entity.wolf.pant":"1;mob/wolf/panting;1","771;entity.wolf.shake":"1;mob/wolf/shake;1","772;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","773;entity.wolf.whine":"1;mob/wolf/whine;1","787;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","789;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","788;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","790;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","791;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","792;entity.zombie.death":"1;mob/zombie/death;1","793;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","797;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","798;entity.zombie.infect":"1;mob/zombie/infect;1","803;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","794;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","795;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","796;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","799;entity.zombie_pigman.ambient":"1;mob/zombiepig/zpig1;1,1;mob/zombiepig/zpig2;1,1;mob/zombiepig/zpig3;1,1;mob/zombiepig/zpig4;1","800;entity.zombie_pigman.angry":"1;mob/zombiepig/zpigangry1;1,1;mob/zombiepig/zpigangry2;1,1;mob/zombiepig/zpigangry3;1,1;mob/zombiepig/zpigangry4;1","801;entity.zombie_pigman.death":"1;mob/zombiepig/zpigdeath;1","802;entity.zombie_pigman.hurt":"1;mob/zombiepig/zpighurt1;1,1;mob/zombiepig/zpighurt2;1","804;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","805;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","806;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","807;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","808;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","809;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","548;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","15;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","16;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","17;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","18;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","19;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","20;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","21;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","22;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","30;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1","70;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","71;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","76;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","77;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","78;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","85;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","86;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","87;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","88;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","89;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","90;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","111;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","140;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1","141;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","142;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","143;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","144;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","145;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","146;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","147;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","148;item.crossbow.shoot":"0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.8;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1","185;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","225;item.firecharge.use":"1;mob/ghast/fireball4;1","237;item.flintandsteel.use":"1;fire/ignite;1","300;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","307;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","423;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","581;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","582;item.shield.break":"1;random/break;1","583;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","666;item.sweet_berries.pick_from_bush":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","669;item.totem.use":"1;item/totem/use_totem;1","670;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","671;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","672;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","673;item.trident.riptide_1":"1;item/trident/riptide1;1","674;item.trident.riptide_2":"1;item/trident/riptide2;1","675;item.trident.riptide_3":"1;item/trident/riptide3;1","676;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","677;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","414;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","415;music.credits":"1;music/game/end/credits;1","416;music.dragon":"1;music/game/end/boss;1","417;music.end":"1;music/game/end/end;1","418;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","419;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","420;music.nether":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","421;music.under_water":"0.4;music/game/water/shuniji;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/axolotl;1","549;music_disc.11":"1;records/11;1","550;music_disc.13":"1;records/13;1","551;music_disc.blocks":"1;records/blocks;1","552;music_disc.cat":"1;records/cat;1","553;music_disc.chirp":"1;records/chirp;1","554;music_disc.far":"1;records/far;1","555;music_disc.mall":"1;records/mall;1","556;music_disc.mellohi":"1;records/mellohi;1","557;music_disc.stal":"1;records/stal;1","558;music_disc.strad":"1;records/strad;1","559;music_disc.wait":"1;records/wait;1","560;music_disc.ward":"1;records/ward;1","698;ui.button.click":"1;random/click_stereo;1","701;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","699;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","700;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","703;ui.stonecutter.select_recipe":"1;random/click;1","702;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","704;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","705;ui.toast.in":"0.4;ui/toast/in;1","706;ui.toast.out":"0.4;ui/toast/out;1","747;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","748;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.16":{"1;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;1,0.66;ambient/nether/basalt_deltas/twist2;1,0.77;ambient/nether/basalt_deltas/twist3;1,0.66;ambient/nether/basalt_deltas/twist4;1","2;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","3;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","4;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/twang1;2,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2","5;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","6;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","7;ambient.nether_wastes.additions":"0.67;ambient/nether/nether_wastes/addition4;5,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","8;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","9;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","10;ambient.soul_sand_valley.additions":"0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","11;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","12;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","16;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","17;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","18;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","19;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","20;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,1;ambient/underwater/additions/earth_crack;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1","21;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","13;ambient.warped_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2,0.3;ambient/nether/crimson_forest/addition1;1,0.15;ambient/nether/warped_forest/addition6;1,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1","14;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","15;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","22;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","26;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","25;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","24;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","23;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","27;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","28;block.anvil.destroy":"1;random/anvil_break;1","29;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","30;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","31;block.anvil.land":"1;random/anvil_land;1","32;block.anvil.place":"1;random/anvil_land;1","33;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","34;block.anvil.use":"1;random/anvil_use;1","52;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","53;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","54;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","55;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","56;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","57;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","58;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","59;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","60;block.barrel.close":"1;block/barrel/close;1","61;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","62;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","66;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","65;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","64;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","63;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","72;block.beacon.activate":"1;block/beacon/activate;1","73;block.beacon.ambient":"0.9;block/beacon/ambient;1","74;block.beacon.deactivate":"1;block/beacon/deactivate;1","75;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","82;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1","83;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","84;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","85;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","86;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","88;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","87;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1","103;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","96;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","97;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","98;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","99;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","100;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","107;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","108;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","109;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","110;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","111;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","112;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","119;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","129;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","130;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","131;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","132;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","133;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","134;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","135;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","136;block.chest.open":"1;block/chest/open;1","142;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","143;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","149;block.comparator.click":"1;random/click;1","150;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","151;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","152;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","153;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","154;block.conduit.activate":"0.9;block/conduit/activate;1","155;block.conduit.ambient":"1;block/conduit/ambient;1","156;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","157;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","158;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","159;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","160;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","161;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","162;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","163;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","172;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","182;block.dispenser.dispense":"1;random/click;1","183;block.dispenser.fail":"1;random/click;1","184;block.dispenser.launch":"1;random/bow;1","220;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","243;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","245;block.end_portal.spawn":"1;block/end_portal/endportal;1","244;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","221;block.ender_chest.close":"1;block/enderchest/close;1","222;block.ender_chest.open":"1;block/enderchest/open;1","257;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","258;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","268;block.fire.ambient":"1;fire/fire;1","269;block.fire.extinguish":"1;random/fizz;1","510;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","512;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","511;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","291;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","309;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","310;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","311;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","312;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","313;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","314;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","315;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","316;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","317;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","318;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","319;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","320;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","321;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","322;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","323;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","324;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","325;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","326;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","327;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","328;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","329;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","347;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","348;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","349;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","350;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","351;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1","352;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","385;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","386;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","393;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","394;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","402;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","403;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","404;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","405;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","406;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","407;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","408;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","409;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","410;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","411;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","412;block.lava.ambient":"1;liquid/lava;1","413;block.lava.extinguish":"1;random/fizz;1","414;block.lava.pop":"1;liquid/lavapop;1","417;block.lever.click":"1;random/click;1","894;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","431;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","435;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","434;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","433;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","432;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","443;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","444;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","445;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","446;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","449;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","447;block.metal_pressure_plate.click_off":"1;random/click;1","448;block.metal_pressure_plate.click_on":"1;random/click;1","488;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","492;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","491;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","490;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","489;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","681;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","682;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","683;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","684;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","685;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","686;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","687;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","688;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","689;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","690;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","505;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","509;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","508;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","507;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","506;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","493;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","525;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1","529;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","528;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","527;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1","526;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","530;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","534;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","533;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","532;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","531;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","550;block.note_block.banjo":"1;note/banjo;1","535;block.note_block.basedrum":"1;note/bd;1","536;block.note_block.bass":"1;note/bassattack;1","537;block.note_block.bell":"1;note/bell;1","549;block.note_block.bit":"1;note/bit;1","538;block.note_block.chime":"1;note/icechime;1","547;block.note_block.cow_bell":"1;note/cow_bell;1","548;block.note_block.didgeridoo":"1;note/didgeridoo;1","539;block.note_block.flute":"1;note/flute;1","540;block.note_block.guitar":"1;note/guitar;1","541;block.note_block.harp":"1;note/harp2;1","542;block.note_block.hat":"1;note/hat;1","546;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","543;block.note_block.pling":"1;note/pling;1","544;block.note_block.snare":"1;note/snare;1","545;block.note_block.xylophone":"1;note/xylobone;1","500;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","504;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","503;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","502;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","501;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","629;block.piston.contract":"1;tile/piston/in;1","630;block.piston.extend":"1;tile/piston/out;1","656;block.portal.ambient":"1;portal/portal;1","657;block.portal.travel":"1;portal/travel;1","658;block.portal.trigger":"1;portal/trigger;1","666;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","691;block.redstone_torch.burnout":"1;random/fizz;1","692;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","693;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","694;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","695;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","286;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","288;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","700;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","701;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","702;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","703;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","704;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","705;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","706;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","707;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","708;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","709;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","717;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","721;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","720;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","719;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","718;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","724;block.shulker_box.close":"1;block/shulker_box/close;1","725;block.shulker_box.open":"1;block/shulker_box/open;1","757;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","758;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","759;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","760;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","761;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","786;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","787;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","789;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","790;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","796;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","797;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","798;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","762;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","766;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","765;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","764;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","763;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","767;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","771;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","770;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","769;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","768;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","495;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","499;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","498;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","497;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","496;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","809;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","812;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","813;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","814;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","817;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","810;block.stone_button.click_off":"1;random/click;1","811;block.stone_button.click_on":"1;random/click;1","815;block.stone_pressure_plate.click_off":"1;random/click;1","816;block.stone_pressure_plate.click_on":"1;random/click;1","822;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","823;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","836;block.tripwire.attach":"1;random/click;1","837;block.tripwire.click_off":"1;random/click;1","838;block.tripwire.click_on":"1;random/click;1","839;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","893;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","520;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","524;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","523;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","522;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","521;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","905;block.water.ambient":"1;liquid/water;1","515;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","519;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","518;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","517;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","516;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","908;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","909;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","910;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","911;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","912;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","942;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","945;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","946;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","947;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","950;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","943;block.wooden_button.click_off":"1;random/wood_click;1","944;block.wooden_button.click_on":"1;random/wood_click;1","938;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","939;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","948;block.wooden_pressure_plate.click_off":"1;random/click;1","949;block.wooden_pressure_plate.click_on":"1;random/click;1","940;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","941;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","951;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","952;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","953;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","954;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","955;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","825;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","44;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","45;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","46;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","47;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","48;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","49;entity.arrow.hit_player":"1;random/successful_hit;1","50;entity.arrow.shoot":"1;random/bow;1","67;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","68;entity.bat.death":"1;mob/bat/death;1","69;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","70;entity.bat.loop":"1;mob/bat/loop;1","71;entity.bat.takeoff":"1;mob/bat/takeoff;1","76;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","77;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1","79;entity.bee.loop":"0.75;mob/bee/loop5;1,0.7;mob/bee/loop5;1,0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1","78;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","81;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","80;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","89;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","90;entity.blaze.burn":"1;fire/fire;1","91;entity.blaze.death":"1;mob/blaze/death;1","92;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","93;entity.blaze.shoot":"1;mob/ghast/fireball4;1","94;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","95;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","120;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","125;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","122;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","123;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","124;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","126;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","127;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","128;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","121;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","137;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","138;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","139;entity.chicken.egg":"1;mob/chicken/plop;1","140;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","141;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","146;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","147;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","148;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","164;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","165;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","166;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","167;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","168;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","169;entity.creeper.death":"1;mob/creeper/death;1","170;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","171;entity.creeper.primed":"1;random/fuse;1","185;entity.dolphin.ambient":"1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1,1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1","186;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","187;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","188;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","189;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","190;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","191;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","192;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","193;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","194;entity.dolphin.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","195;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","196;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","197;entity.donkey.chest":"1;mob/chicken/plop;1","198;entity.donkey.death":"1;mob/horse/donkey/death;1","199;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","200;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","225;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","201;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","202;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","203;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","204;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","205;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","206;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","207;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","208;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","209;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","210;entity.egg.throw":"1;random/bow;1","211;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","212;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","213;entity.elder_guardian.curse":"1;mob/guardian/curse;1","214;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","215;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","216;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","217;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","218;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","223;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","224;entity.ender_dragon.death":"1;mob/enderdragon/end;1","226;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","227;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","228;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","229;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","230;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","231;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","242;entity.ender_pearl.throw":"1;random/bow;1","232;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","233;entity.enderman.death":"1;mob/endermen/death;1","234;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","235;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","236;entity.enderman.stare":"1;mob/endermen/stare;1","237;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","238;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","239;entity.endermite.death":"1;mob/silverfish/kill;1","240;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","241;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","246;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","247;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","248;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","249;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","251;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","252;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","253;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","254;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","250;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","255;entity.experience_bottle.throw":"1;random/bow;1","256;entity.experience_orb.pickup":"1;random/orb;1","260;entity.firework_rocket.blast":"1;fireworks/blast1;1","261;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","262;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","263;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","264;entity.firework_rocket.launch":"1;fireworks/launch1;1","265;entity.firework_rocket.shoot":"1;random/bow;1","266;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","267;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","270;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","271;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","272;entity.fishing_bobber.splash":"1;random/splash;1","273;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","275;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","276;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","277;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","278;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","279;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","280;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","281;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","282;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","283;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","284;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","285;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","292;entity.generic.big_fall":"1;damage/fallbig;1","293;entity.generic.burn":"1;random/fizz;1","294;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","295;entity.generic.drink":"1;random/drink;1","296;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","297;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","298;entity.generic.extinguish_fire":"1;random/fizz;1","299;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","300;entity.generic.small_fall":"1;damage/fallsmall;1","301;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","302;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","303;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","304;entity.ghast.death":"1;mob/ghast/death;1","305;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","306;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","307;entity.ghast.shoot":"1;mob/ghast/fireball4;1","308;entity.ghast.warn":"1;mob/ghast/charge;1","330;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","331;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","332;entity.guardian.attack":"1;mob/guardian/attack_loop;1","333;entity.guardian.death":"1;mob/guardian/guardian_death;1","334;entity.guardian.death_land":"1;mob/guardian/land_death;1","335;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","336;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","337;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","339;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","340;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","341;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1","342;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","343;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","344;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","345;entity.hoglin.retreat":"0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1,0.8;mob/hoglin/idle11;1","346;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","354;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","355;entity.horse.angry":"1;mob/horse/angry1;1","356;entity.horse.armor":"1;mob/horse/armor;1","357;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","358;entity.horse.death":"1;mob/horse/death;1","359;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","360;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","361;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","362;entity.horse.jump":"1;mob/horse/jump;1","363;entity.horse.land":"1;mob/horse/land;1","364;entity.horse.saddle":"1;mob/horse/leather;1","365;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","366;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","367;entity.hostile.big_fall":"1;damage/fallbig;1","368;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","369;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","370;entity.hostile.small_fall":"1;damage/fallsmall;1","371;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","372;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","373;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","374;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","375;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","376;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","377;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","378;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","379;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","380;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","381;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","382;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","383;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","384;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","387;entity.iron_golem.attack":"1;mob/irongolem/throw;1","388;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1","389;entity.iron_golem.death":"1;mob/irongolem/death;1","390;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","391;entity.iron_golem.repair":"1;mob/irongolem/repair;1","392;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","400;entity.item.break":"1;random/break;1","401;entity.item.pickup":"1;random/pop;1","395;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","396;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","397;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","398;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","399;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","415;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","416;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","418;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","419;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","420;entity.lingering_potion.throw":"1;random/bow;1","421;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","422;entity.llama.angry":"1;mob/llama/angry1;1","423;entity.llama.chest":"1;mob/chicken/plop;1","424;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","425;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","426;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","427;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","428;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","429;entity.llama.swag":"1;mob/llama/swag;1","437;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","430;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","438;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","439;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","440;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","441;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","442;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","450;entity.minecart.inside":"1;minecart/inside;1","451;entity.minecart.riding":"1;minecart/base;1","452;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","453;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1","454;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","456;entity.mooshroom.shear":"1;mob/sheep/shear;1","455;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","457;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","458;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","459;entity.mule.chest":"1;mob/chicken/plop;1","460;entity.mule.death":"1;mob/horse/donkey/death;1","461;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","462;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","552;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","553;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","551;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","554;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","555;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","563;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","558;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","566;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","562;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","559;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","560;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","565;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","556;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","557;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","561;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","564;entity.panda.worried_ambient":"1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1,1;mob/panda/pant2;1","567;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","568;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","569;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","570;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","571;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","572;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","573;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","574;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","575;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","576;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","577;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","578;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","579;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","580;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","581;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","582;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","583;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","584;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","585;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","586;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","587;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","588;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","589;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","590;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","591;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","592;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","593;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","594;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","595;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","596;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","597;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","598;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","599;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","600;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","601;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","602;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","603;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","604;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","605;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","606;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","607;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","608;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","609;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","610;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","611;entity.pig.death":"1;mob/pig/death;1","612;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","613;entity.pig.saddle":"1;mob/horse/leather;1","614;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","615;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","616;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","617;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","618;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","624;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","619;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","621;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","620;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","622;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","623;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","625;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","626;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","627;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","628;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","631;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","632;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","633;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","634;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","635;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","636;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","637;entity.player.big_fall":"1;damage/fallbig;1","638;entity.player.breath":"1;random/breath;1","639;entity.player.burp":"1;random/burp;1","640;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","641;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","642;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","643;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","644;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","645;entity.player.levelup":"1;random/levelup;1","646;entity.player.small_fall":"1;damage/fallsmall;1","647;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","648;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","649;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","650;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","651;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","652;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","653;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","654;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","655;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","660;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","661;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","662;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","663;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","664;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","665;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","667;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","668;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","669;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","670;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","671;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","673;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","674;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","675;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","676;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","677;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","680;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","678;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","679;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","697;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","698;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","699;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","710;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","711;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","712;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","713;entity.sheep.shear":"1;mob/sheep/shear;1","714;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","723;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","728;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","729;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","730;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","731;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","732;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","733;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","734;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","726;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","727;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","735;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","736;entity.silverfish.death":"1;mob/silverfish/kill;1","737;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","738;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","739;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","740;entity.skeleton.death":"1;mob/skeleton/death;1","749;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","750;entity.skeleton.shoot":"1;random/bow;1","751;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","741;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","745;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","742;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","746;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","743;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","747;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","748;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","744;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","752;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","753;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","782;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","754;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","783;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","755;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","784;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","756;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","785;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","792;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","793;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","795;entity.snow_golem.shear":"1;mob/sheep/shear;1","794;entity.snow_golem.shoot":"1;random/bow;1","788;entity.snowball.throw":"1;random/bow;1","799;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","800;entity.spider.death":"1;mob/spider/death;1","801;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","802;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","803;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","804;entity.splash_potion.throw":"1;random/bow;1","805;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","806;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","807;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","808;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","818;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","819;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","820;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","821;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","773;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","776;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","780;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","774;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","777;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","775;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","781;entity.strider.saddle":"1;mob/horse/leather;1","778;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","779;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","826;entity.tnt.primed":"1;random/fuse;1","841;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","842;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","843;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","844;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","845;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","846;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","847;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","848;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","849;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","850;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","851;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","852;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","853;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","854;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","855;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","865;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","866;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","867;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","868;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","869;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","870;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","871;entity.villager.death":"1;mob/villager/death;1","872;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","873;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","874;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","876;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","877;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","878;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","879;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","880;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","881;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","882;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","883;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","884;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","885;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","886;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","887;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","888;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","875;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","889;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","890;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","891;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","892;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","895;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","896;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","897;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","898;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","899;entity.wandering_trader.drink_potion":"0.65;random/drink;1,0.7;mob/wandering_trader/drink_potion;1","900;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","901;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","902;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","903;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","904;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","913;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","914;entity.witch.celebrate":"1;entity/witch/celebrate;1,1;entity/witch/ambient1;1,1;entity/witch/ambient4;1","915;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","916;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","917;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","918;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","919;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","920;entity.wither.break_block":"1;mob/zombie/woodbreak;1","921;entity.wither.death":"1;mob/wither/death;1","922;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","923;entity.wither.shoot":"1;mob/wither/shoot;1","928;entity.wither.spawn":"1;mob/wither/spawn;1","924;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","925;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","926;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","927;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","929;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","930;entity.wolf.death":"1;mob/wolf/death;1","931;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","932;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","933;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","934;entity.wolf.pant":"1;mob/wolf/panting;1","935;entity.wolf.shake":"1;mob/wolf/shake;1","936;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","937;entity.wolf.whine":"1;mob/wolf/whine;1","956;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","957;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","958;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1","959;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","960;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","961;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","962;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","964;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","963;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","965;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","966;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","967;entity.zombie.death":"1;mob/zombie/death;1","968;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","972;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","973;entity.zombie.infect":"1;mob/zombie/infect;1","978;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","969;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","970;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","971;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","979;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","980;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","981;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","982;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","983;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","984;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","974;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","975;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","976;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","977;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","672;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","35;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","36;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","37;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","38;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","39;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","40;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","41;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","42;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1","43;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","51;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1","101;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","102;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","104;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","105;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","106;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","113;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","114;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","115;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","116;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","117;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","118;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","144;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","173;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1","174;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","175;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","176;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","177;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","178;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","179;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","180;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","181;item.crossbow.shoot":"0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.8;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1","219;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","259;item.firecharge.use":"1;mob/ghast/fireball4;1","274;item.flintandsteel.use":"1;fire/ignite;1","338;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","353;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","436;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1","494;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","715;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","716;item.shield.break":"1;random/break;1","722;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","824;item.sweet_berries.pick_from_bush":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","827;item.totem.use":"1;item/totem/use_totem;1","828;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","829;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","830;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","831;item.trident.riptide_1":"1;item/trident/riptide1;1","832;item.trident.riptide_2":"1;item/trident/riptide2;1","833;item.trident.riptide_3":"1;item/trident/riptide3;1","834;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","835;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","463;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","464;music.credits":"1;music/game/end/credits;1","478;music.dragon":"1;music/game/end/boss;1","479;music.end":"1;music/game/end/end;1","480;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","481;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","482;music.nether.basalt_deltas":"0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","485;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","483;music.nether.nether_wastes":"0.5;music/game/nether/nether_wastes/rubedo;6,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","484;music.nether.soul_sand_valley":"0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","487;music.under_water":"0.4;music/game/water/shuniji;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/axolotl;1","465;music_disc.11":"1;records/11;1","466;music_disc.13":"1;records/13;1","467;music_disc.blocks":"1;records/blocks;1","468;music_disc.cat":"1;records/cat;1","469;music_disc.chirp":"1;records/chirp;1","470;music_disc.far":"1;records/far;1","471;music_disc.mall":"1;records/mall;1","472;music_disc.mellohi":"1;records/mellohi;1","473;music_disc.pigstep":"1;records/pigstep;1","474;music_disc.stal":"1;records/stal;1","475;music_disc.strad":"1;records/strad;1","476;music_disc.wait":"1;records/wait;1","477;music_disc.ward":"1;records/ward;1","772;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","856;ui.button.click":"1;random/click_stereo;1","859;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","857;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","858;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","861;ui.stonecutter.select_recipe":"1;random/click;1","860;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","862;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","863;ui.toast.in":"0.4;ui/toast/in;1","864;ui.toast.out":"0.4;ui/toast/out;1","906;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","907;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.16.2":{"1;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;1,0.66;ambient/nether/basalt_deltas/twist2;1,0.77;ambient/nether/basalt_deltas/twist3;1,0.66;ambient/nether/basalt_deltas/twist4;1","2;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","3;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","4;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/twang1;2,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2","5;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","6;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","7;ambient.nether_wastes.additions":"0.67;ambient/nether/nether_wastes/addition4;5,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","8;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","9;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","10;ambient.soul_sand_valley.additions":"0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","11;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","12;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","16;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","17;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","18;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","19;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","20;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,1;ambient/underwater/additions/earth_crack;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1","21;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","13;ambient.warped_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2,0.3;ambient/nether/crimson_forest/addition1;1,0.15;ambient/nether/warped_forest/addition6;1,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1","14;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","15;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","22;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","26;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","25;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","24;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","23;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","27;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","28;block.anvil.destroy":"1;random/anvil_break;1","29;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","30;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","31;block.anvil.land":"1;random/anvil_land;1","32;block.anvil.place":"1;random/anvil_land;1","33;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","34;block.anvil.use":"1;random/anvil_use;1","52;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","53;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","54;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","55;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","56;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","57;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","58;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","59;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","60;block.barrel.close":"1;block/barrel/close;1","61;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","62;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","66;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","65;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","64;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","63;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","72;block.beacon.activate":"1;block/beacon/activate;1","73;block.beacon.ambient":"0.9;block/beacon/ambient;1","74;block.beacon.deactivate":"1;block/beacon/deactivate;1","75;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","82;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1","83;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","84;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","85;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","86;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","88;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","87;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1","103;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","96;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","97;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","98;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","99;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","100;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","107;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","108;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","109;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","110;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","111;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","112;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","119;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","129;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","130;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","131;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","132;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","133;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","134;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","135;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","136;block.chest.open":"1;block/chest/open;1","142;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","143;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","149;block.comparator.click":"1;random/click;1","150;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","151;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","152;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","153;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","154;block.conduit.activate":"0.9;block/conduit/activate;1","155;block.conduit.ambient":"1;block/conduit/ambient;1","156;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","157;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","158;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","159;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","160;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","161;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","162;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","163;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","172;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","182;block.dispenser.dispense":"1;random/click;1","183;block.dispenser.fail":"1;random/click;1","184;block.dispenser.launch":"1;random/bow;1","220;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","243;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","245;block.end_portal.spawn":"1;block/end_portal/endportal;1","244;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","221;block.ender_chest.close":"1;block/enderchest/close;1","222;block.ender_chest.open":"1;block/enderchest/open;1","257;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","258;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","268;block.fire.ambient":"1;fire/fire;1","269;block.fire.extinguish":"1;random/fizz;1","510;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","512;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","511;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","291;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","309;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","310;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","311;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","312;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","313;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","314;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","315;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","316;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","317;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","318;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","319;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","320;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","321;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","322;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","323;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","324;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","325;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","326;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","327;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","328;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","329;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","347;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","348;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","349;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","350;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","351;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1","352;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","385;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","386;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","393;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","394;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","402;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","403;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","404;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","405;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","406;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","407;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","408;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","409;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","410;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","411;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","412;block.lava.ambient":"1;liquid/lava;1","413;block.lava.extinguish":"1;random/fizz;1","414;block.lava.pop":"1;liquid/lavapop;1","417;block.lever.click":"1;random/click;1","901;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","431;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","435;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","434;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","433;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","432;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","443;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","444;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","445;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","446;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","449;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","447;block.metal_pressure_plate.click_off":"1;random/click;1","448;block.metal_pressure_plate.click_on":"1;random/click;1","488;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","492;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","491;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","490;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","489;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","688;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","689;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","690;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","691;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","692;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","693;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","694;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","695;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","696;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","697;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","505;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","509;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","508;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","507;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","506;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","493;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","525;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1","529;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","528;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","527;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1","526;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","530;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","534;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","533;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","532;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","531;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","550;block.note_block.banjo":"1;note/banjo;1","535;block.note_block.basedrum":"1;note/bd;1","536;block.note_block.bass":"1;note/bassattack;1","537;block.note_block.bell":"1;note/bell;1","549;block.note_block.bit":"1;note/bit;1","538;block.note_block.chime":"1;note/icechime;1","547;block.note_block.cow_bell":"1;note/cow_bell;1","548;block.note_block.didgeridoo":"1;note/didgeridoo;1","539;block.note_block.flute":"1;note/flute;1","540;block.note_block.guitar":"1;note/guitar;1","541;block.note_block.harp":"1;note/harp2;1","542;block.note_block.hat":"1;note/hat;1","546;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","543;block.note_block.pling":"1;note/pling;1","544;block.note_block.snare":"1;note/snare;1","545;block.note_block.xylophone":"1;note/xylobone;1","500;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","504;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","503;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","502;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","501;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","636;block.piston.contract":"1;tile/piston/in;1","637;block.piston.extend":"1;tile/piston/out;1","663;block.portal.ambient":"1;portal/portal;1","664;block.portal.travel":"1;portal/travel;1","665;block.portal.trigger":"1;portal/trigger;1","673;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","698;block.redstone_torch.burnout":"1;random/fizz;1","699;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","700;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","701;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","702;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","286;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","288;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","707;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","708;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","709;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","710;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","711;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","712;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","713;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","714;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","715;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","716;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","724;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","728;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","727;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","726;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","725;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","731;block.shulker_box.close":"1;block/shulker_box/close;1","732;block.shulker_box.open":"1;block/shulker_box/open;1","764;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","765;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","766;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","767;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","768;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","793;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","794;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","796;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","797;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","803;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","804;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","805;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","769;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","773;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","772;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","771;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","770;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","774;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","778;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","777;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","776;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","775;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","495;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","499;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","498;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","497;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","496;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","816;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","819;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","820;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","821;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","824;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","817;block.stone_button.click_off":"1;random/click;1","818;block.stone_button.click_on":"1;random/click;1","822;block.stone_pressure_plate.click_off":"1;random/click;1","823;block.stone_pressure_plate.click_on":"1;random/click;1","829;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","830;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","843;block.tripwire.attach":"1;random/click;1","844;block.tripwire.click_off":"1;random/click;1","845;block.tripwire.click_on":"1;random/click;1","846;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","900;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","520;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","524;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","523;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","522;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","521;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","912;block.water.ambient":"1;liquid/water;1","515;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","519;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","518;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","517;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","516;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","915;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","916;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","917;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","918;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","919;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","949;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","952;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","953;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","954;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","957;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","950;block.wooden_button.click_off":"1;random/wood_click;1","951;block.wooden_button.click_on":"1;random/wood_click;1","945;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","946;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","955;block.wooden_pressure_plate.click_off":"1;random/click;1","956;block.wooden_pressure_plate.click_on":"1;random/click;1","947;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","948;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","958;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","959;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","960;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","961;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","962;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","832;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","44;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","45;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","46;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","47;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","48;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","49;entity.arrow.hit_player":"1;random/successful_hit;1","50;entity.arrow.shoot":"1;random/bow;1","67;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","68;entity.bat.death":"1;mob/bat/death;1","69;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","70;entity.bat.loop":"1;mob/bat/loop;1","71;entity.bat.takeoff":"1;mob/bat/takeoff;1","76;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","77;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1","79;entity.bee.loop":"0.75;mob/bee/loop5;1,0.7;mob/bee/loop5;1,0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1","78;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","81;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","80;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","89;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","90;entity.blaze.burn":"1;fire/fire;1","91;entity.blaze.death":"1;mob/blaze/death;1","92;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","93;entity.blaze.shoot":"1;mob/ghast/fireball4;1","94;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","95;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","120;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","125;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","122;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","123;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","124;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","126;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","127;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","128;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","121;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","137;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","138;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","139;entity.chicken.egg":"1;mob/chicken/plop;1","140;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","141;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","146;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","147;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","148;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","164;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","165;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","166;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","167;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","168;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","169;entity.creeper.death":"1;mob/creeper/death;1","170;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","171;entity.creeper.primed":"1;random/fuse;1","185;entity.dolphin.ambient":"1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1,1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1","186;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","187;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","188;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","189;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","190;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","191;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","192;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","193;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","194;entity.dolphin.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","195;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","196;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","197;entity.donkey.chest":"1;mob/chicken/plop;1","198;entity.donkey.death":"1;mob/horse/donkey/death;1","199;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","200;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","225;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","201;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","202;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","203;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","204;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","205;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","206;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","207;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","208;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","209;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","210;entity.egg.throw":"1;random/bow;1","211;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","212;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","213;entity.elder_guardian.curse":"1;mob/guardian/curse;1","214;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","215;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","216;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","217;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","218;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","223;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","224;entity.ender_dragon.death":"1;mob/enderdragon/end;1","226;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","227;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","228;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","229;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","230;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","231;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","242;entity.ender_pearl.throw":"1;random/bow;1","232;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","233;entity.enderman.death":"1;mob/endermen/death;1","234;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","235;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","236;entity.enderman.stare":"1;mob/endermen/stare;1","237;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","238;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","239;entity.endermite.death":"1;mob/silverfish/kill;1","240;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","241;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","246;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","247;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","248;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","249;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","251;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","252;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","253;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","254;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","250;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","255;entity.experience_bottle.throw":"1;random/bow;1","256;entity.experience_orb.pickup":"1;random/orb;1","260;entity.firework_rocket.blast":"1;fireworks/blast1;1","261;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","262;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","263;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","264;entity.firework_rocket.launch":"1;fireworks/launch1;1","265;entity.firework_rocket.shoot":"1;random/bow;1","266;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","267;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","270;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","271;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","272;entity.fishing_bobber.splash":"1;random/splash;1","273;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","275;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","276;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","277;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","278;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","279;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","280;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","281;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","282;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","283;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","284;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","285;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","292;entity.generic.big_fall":"1;damage/fallbig;1","293;entity.generic.burn":"1;random/fizz;1","294;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","295;entity.generic.drink":"1;random/drink;1","296;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","297;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","298;entity.generic.extinguish_fire":"1;random/fizz;1","299;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","300;entity.generic.small_fall":"1;damage/fallsmall;1","301;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","302;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","303;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","304;entity.ghast.death":"1;mob/ghast/death;1","305;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","306;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","307;entity.ghast.shoot":"1;mob/ghast/fireball4;1","308;entity.ghast.warn":"1;mob/ghast/charge;1","330;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","331;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","332;entity.guardian.attack":"1;mob/guardian/attack_loop;1","333;entity.guardian.death":"1;mob/guardian/guardian_death;1","334;entity.guardian.death_land":"1;mob/guardian/land_death;1","335;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","336;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","337;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","339;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","340;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","341;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1","342;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","343;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","344;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","345;entity.hoglin.retreat":"0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1,0.8;mob/hoglin/idle11;1","346;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","354;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","355;entity.horse.angry":"1;mob/horse/angry1;1","356;entity.horse.armor":"1;mob/horse/armor;1","357;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","358;entity.horse.death":"1;mob/horse/death;1","359;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","360;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","361;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","362;entity.horse.jump":"1;mob/horse/jump;1","363;entity.horse.land":"1;mob/horse/land;1","364;entity.horse.saddle":"1;mob/horse/leather;1","365;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","366;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","367;entity.hostile.big_fall":"1;damage/fallbig;1","368;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","369;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","370;entity.hostile.small_fall":"1;damage/fallsmall;1","371;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","372;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","373;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","374;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","375;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","376;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","377;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","378;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","379;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","380;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","381;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","382;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","383;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","384;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","387;entity.iron_golem.attack":"1;mob/irongolem/throw;1","388;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1","389;entity.iron_golem.death":"1;mob/irongolem/death;1","390;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","391;entity.iron_golem.repair":"1;mob/irongolem/repair;1","392;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","400;entity.item.break":"1;random/break;1","401;entity.item.pickup":"1;random/pop;1","395;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","396;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","397;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","398;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","399;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","415;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","416;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","418;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","419;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","420;entity.lingering_potion.throw":"1;random/bow;1","421;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","422;entity.llama.angry":"1;mob/llama/angry1;1","423;entity.llama.chest":"1;mob/chicken/plop;1","424;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","425;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","426;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","427;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","428;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","429;entity.llama.swag":"1;mob/llama/swag;1","437;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","430;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","438;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","439;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","440;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","441;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","442;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","450;entity.minecart.inside":"1;minecart/inside;1","451;entity.minecart.riding":"1;minecart/base;1","452;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","453;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1","454;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","456;entity.mooshroom.shear":"1;mob/sheep/shear;1","455;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","457;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","458;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","459;entity.mule.chest":"1;mob/chicken/plop;1","460;entity.mule.death":"1;mob/horse/donkey/death;1","461;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","462;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","552;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","553;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","551;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","554;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","555;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","563;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","558;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","566;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","562;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","559;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","560;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","565;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","556;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","557;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","561;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","564;entity.panda.worried_ambient":"1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1,1;mob/panda/pant2;1","567;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","568;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","569;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","570;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","571;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","572;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","573;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","574;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","575;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","576;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","577;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","578;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","579;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","580;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","581;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","582;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","583;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","584;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","585;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","586;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","587;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","588;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","589;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","590;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","591;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","592;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","593;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","594;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","595;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","596;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","597;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","598;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","599;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","600;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","601;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","602;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","603;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","604;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","605;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","606;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","607;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","608;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","609;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","610;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","611;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","612;entity.pig.death":"1;mob/pig/death;1","613;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","614;entity.pig.saddle":"1;mob/horse/leather;1","615;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","616;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","617;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","618;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","619;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","625;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","620;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","622;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","621;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","623;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","624;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","626;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","627;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","631;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","628;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","629;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","630;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","632;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","633;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","634;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","635;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","638;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","639;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","640;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","641;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","642;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","643;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","644;entity.player.big_fall":"1;damage/fallbig;1","645;entity.player.breath":"1;random/breath;1","646;entity.player.burp":"1;random/burp;1","647;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","648;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","649;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","650;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","651;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","652;entity.player.levelup":"1;random/levelup;1","653;entity.player.small_fall":"1;damage/fallsmall;1","654;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","655;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","656;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","657;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","658;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","659;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","660;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","661;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","662;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","667;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","668;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","669;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","670;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","671;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","672;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","674;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","675;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","676;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","677;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","678;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","680;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","681;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","682;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","683;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","684;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","687;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","685;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","686;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","704;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","705;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","706;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","717;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","718;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","719;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","720;entity.sheep.shear":"1;mob/sheep/shear;1","721;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","730;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","735;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","736;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","737;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","738;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","739;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","740;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","741;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","733;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","734;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","742;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","743;entity.silverfish.death":"1;mob/silverfish/kill;1","744;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","745;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","746;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","747;entity.skeleton.death":"1;mob/skeleton/death;1","756;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","757;entity.skeleton.shoot":"1;random/bow;1","758;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","748;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","752;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","749;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","753;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","750;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","754;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","755;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","751;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","759;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","760;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","789;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","761;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","790;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","762;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","791;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","763;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","792;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","799;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","800;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","802;entity.snow_golem.shear":"1;mob/sheep/shear;1","801;entity.snow_golem.shoot":"1;random/bow;1","795;entity.snowball.throw":"1;random/bow;1","806;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","807;entity.spider.death":"1;mob/spider/death;1","808;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","809;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","810;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","811;entity.splash_potion.throw":"1;random/bow;1","812;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","813;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","814;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","815;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","825;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","826;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","827;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","828;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","780;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","783;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","787;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","781;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","784;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","782;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","788;entity.strider.saddle":"1;mob/horse/leather;1","785;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","786;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","833;entity.tnt.primed":"1;random/fuse;1","848;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","849;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","850;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","851;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","852;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","853;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","854;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","855;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","856;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","857;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","858;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","859;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","860;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","861;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","862;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","872;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","873;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","874;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","875;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","876;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","877;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","878;entity.villager.death":"1;mob/villager/death;1","879;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","880;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","881;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","883;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","884;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","885;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","886;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","887;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","888;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","889;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","890;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","891;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","892;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","893;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","894;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","895;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","882;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","896;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","897;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","898;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","899;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","902;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","903;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","904;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","905;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","906;entity.wandering_trader.drink_potion":"0.65;random/drink;1,0.7;mob/wandering_trader/drink_potion;1","907;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","908;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","909;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","910;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","911;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","920;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","921;entity.witch.celebrate":"1;entity/witch/celebrate;1,1;entity/witch/ambient1;1,1;entity/witch/ambient4;1","922;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","923;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","924;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","925;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","926;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","927;entity.wither.break_block":"1;mob/zombie/woodbreak;1","928;entity.wither.death":"1;mob/wither/death;1","929;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","930;entity.wither.shoot":"1;mob/wither/shoot;1","935;entity.wither.spawn":"1;mob/wither/spawn;1","931;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","932;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","933;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","934;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","936;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","937;entity.wolf.death":"1;mob/wolf/death;1","938;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","939;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","940;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","941;entity.wolf.pant":"1;mob/wolf/panting;1","942;entity.wolf.shake":"1;mob/wolf/shake;1","943;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","944;entity.wolf.whine":"1;mob/wolf/whine;1","963;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","964;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","965;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1","966;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","967;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","968;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","969;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","971;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","970;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","972;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","973;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","974;entity.zombie.death":"1;mob/zombie/death;1","975;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","979;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","980;entity.zombie.infect":"1;mob/zombie/infect;1","985;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","976;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","977;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","978;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","986;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","987;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","988;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","989;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","990;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","991;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","981;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","982;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","983;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","984;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","679;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","35;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","36;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","37;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","38;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","39;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","40;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","41;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","42;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1","43;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","51;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1","101;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","102;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","104;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","105;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","106;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","113;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","114;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","115;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","116;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","117;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","118;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","144;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","173;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1","174;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","175;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","176;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","177;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","178;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","179;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","180;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","181;item.crossbow.shoot":"0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.8;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1","219;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","259;item.firecharge.use":"1;mob/ghast/fireball4;1","274;item.flintandsteel.use":"1;fire/ignite;1","338;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","353;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","436;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1","494;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","722;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","723;item.shield.break":"1;random/break;1","729;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","831;item.sweet_berries.pick_from_bush":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","834;item.totem.use":"1;item/totem/use_totem;1","835;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","836;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","837;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","838;item.trident.riptide_1":"1;item/trident/riptide1;1","839;item.trident.riptide_2":"1;item/trident/riptide2;1","840;item.trident.riptide_3":"1;item/trident/riptide3;1","841;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","842;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","463;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","464;music.credits":"1;music/game/end/credits;1","478;music.dragon":"1;music/game/end/boss;1","479;music.end":"1;music/game/end/end;1","480;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","481;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","482;music.nether.basalt_deltas":"0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","485;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","483;music.nether.nether_wastes":"0.5;music/game/nether/nether_wastes/rubedo;6,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","484;music.nether.soul_sand_valley":"0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","487;music.under_water":"0.4;music/game/water/shuniji;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/axolotl;1","465;music_disc.11":"1;records/11;1","466;music_disc.13":"1;records/13;1","467;music_disc.blocks":"1;records/blocks;1","468;music_disc.cat":"1;records/cat;1","469;music_disc.chirp":"1;records/chirp;1","470;music_disc.far":"1;records/far;1","471;music_disc.mall":"1;records/mall;1","472;music_disc.mellohi":"1;records/mellohi;1","473;music_disc.pigstep":"1;records/pigstep;1","474;music_disc.stal":"1;records/stal;1","475;music_disc.strad":"1;records/strad;1","476;music_disc.wait":"1;records/wait;1","477;music_disc.ward":"1;records/ward;1","779;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","863;ui.button.click":"1;random/click_stereo;1","866;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","864;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","865;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","868;ui.stonecutter.select_recipe":"1;random/click;1","867;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","869;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","870;ui.toast.in":"0.4;ui/toast/in;1","871;ui.toast.out":"0.4;ui/toast/out;1","913;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","914;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.17":{"1;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;1,0.66;ambient/nether/basalt_deltas/twist2;1,0.77;ambient/nether/basalt_deltas/twist3;1,0.66;ambient/nether/basalt_deltas/twist4;1","2;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","3;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","4;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/twang1;2,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2","5;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","6;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","7;ambient.nether_wastes.additions":"0.67;ambient/nether/nether_wastes/addition4;5,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","8;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","9;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","10;ambient.soul_sand_valley.additions":"0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","11;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","12;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","16;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","17;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","18;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","19;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","20;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,1;ambient/underwater/additions/earth_crack;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1","21;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","13;ambient.warped_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2,0.3;ambient/nether/crimson_forest/addition1;1,0.15;ambient/nether/warped_forest/addition6;1,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1","14;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","15;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","22;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","23;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","24;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","25;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","26;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","27;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","28;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","29;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","30;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","31;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","32;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","33;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","37;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","36;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","35;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","34;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","38;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","39;block.anvil.destroy":"1;random/anvil_break;1","40;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","41;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","42;block.anvil.land":"1;random/anvil_land;1","43;block.anvil.place":"1;random/anvil_land;1","44;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","45;block.anvil.use":"1;random/anvil_use;1","72;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","73;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","74;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","75;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","76;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","77;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1","78;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","79;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","80;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1","81;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","82;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","83;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","84;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","85;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","86;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","87;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","88;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","89;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","90;block.barrel.close":"1;block/barrel/close;1","91;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","92;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","96;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","95;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","94;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","93;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","102;block.beacon.activate":"1;block/beacon/activate;1","103;block.beacon.ambient":"0.9;block/beacon/ambient;1","104;block.beacon.deactivate":"1;block/beacon/deactivate;1","105;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","112;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1","113;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","114;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","115;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","116;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","118;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","117;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1","119;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","120;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","121;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","122;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","123;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","295;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","296;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","139;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","131;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","132;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","133;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","134;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","135;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","143;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","144;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","145;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","146;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","147;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","148;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","159;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","160;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","164;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","163;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","162;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","161;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","165;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","166;block.candle.ambient":"0.7;block/candle/ambient1;1,0.7;block/candle/ambient2;1,0.7;block/candle/ambient3;1,0.7;block/candle/ambient4;1,0.7;block/candle/ambient5;1,0.7;block/candle/ambient6;1,0.7;block/candle/ambient7;1,0.7;block/candle/ambient8;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient1;1,0.8;block/candle/ambient2;1,0.8;block/candle/ambient3;1,0.8;block/candle/ambient4;1,0.8;block/candle/ambient5;1,0.8;block/candle/ambient6;1,0.8;block/candle/ambient7;1,0.8;block/candle/ambient8;1,0.8;block/candle/ambient9;1,1;block/candle/ambient1;1,1;block/candle/ambient2;1,1;block/candle/ambient3;1,1;block/candle/ambient4;1,1;block/candle/ambient5;1,1;block/candle/ambient6;1,1;block/candle/ambient7;1,1;block/candle/ambient8;1,1;block/candle/ambient9;1","167;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","168;block.candle.extinguish":"1;block/candle/extinguish1;1,1;block/candle/extinguish2;1,1;block/candle/extinguish3;1,1;block/candle/extinguish1;1,1;block/candle/extinguish2;1,1;block/candle/extinguish3;1,1;block/candle/extinguish1;1,1;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish1;1,0.9;block/candle/extinguish2;1,0.9;block/candle/extinguish3;1,0.9;block/candle/extinguish1;1,0.9;block/candle/extinguish2;1,0.9;block/candle/extinguish3;1,0.9;block/candle/extinguish1;1,0.9;block/candle/extinguish2;1,0.9;block/candle/extinguish3;1","169;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","170;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","171;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","172;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","182;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","183;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","184;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","187;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","185;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","186;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","188;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","189;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","190;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","191;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","192;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","193;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","194;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","195;block.chest.open":"1;block/chest/open;1","201;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","202;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","208;block.comparator.click":"1;random/click;1","209;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","210;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","211;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","212;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","213;block.conduit.activate":"0.9;block/conduit/activate;1","214;block.conduit.ambient":"1;block/conduit/ambient;1","215;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","216;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","217;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","218;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","222;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","221;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","220;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","219;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","223;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","224;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","225;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","226;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","227;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","236;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","251;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","252;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","253;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","254;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","255;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","246;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","247;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","248;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","249;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","250;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","256;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","257;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","258;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","259;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","260;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","261;block.dispenser.dispense":"1;random/click;1","262;block.dispenser.fail":"1;random/click;1","263;block.dispenser.launch":"1;random/bow;1","280;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","284;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","283;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","282;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","281;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","317;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","340;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","342;block.end_portal.spawn":"1;block/end_portal/endportal;1","341;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","318;block.ender_chest.close":"1;block/enderchest/close;1","319;block.ender_chest.open":"1;block/enderchest/open;1","354;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","355;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","365;block.fire.ambient":"1;fire/fire;1","366;block.fire.extinguish":"1;random/fizz;1","372;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","373;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","374;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","375;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","376;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","661;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","663;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","662;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","393;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","411;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","412;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","413;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","414;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","415;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","416;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","417;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","418;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","419;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","420;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","448;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","449;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","450;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","451;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","452;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","453;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","454;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","455;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","456;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","457;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","458;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","467;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","468;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","469;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","470;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","471;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","481;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","482;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","483;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","484;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","485;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1","486;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","521;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","522;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","529;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","530;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","538;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","539;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","540;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","541;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","542;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","543;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","544;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","545;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","546;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","547;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","548;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","549;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","550;block.lava.ambient":"1;liquid/lava;1","551;block.lava.extinguish":"1;random/fizz;1","552;block.lava.pop":"1;liquid/lavapop;1","555;block.lever.click":"1;random/click;1","1099;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","569;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","573;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","572;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","571;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","570;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","581;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","582;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","583;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","584;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","585;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","586;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","589;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","587;block.metal_pressure_plate.click_off":"1;random/click;1","588;block.metal_pressure_plate.click_on":"1;random/click;1","603;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","604;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","605;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","606;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","607;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","598;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","599;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","600;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","601;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","602;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","639;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","643;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","642;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","641;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","640;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","850;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","851;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","852;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","853;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","854;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","855;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","856;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","857;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","858;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","859;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","656;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","660;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","659;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","658;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","657;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","644;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","676;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1","680;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","679;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","678;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1","677;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","681;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","685;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","684;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","683;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","682;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","701;block.note_block.banjo":"1;note/banjo;1","686;block.note_block.basedrum":"1;note/bd;1","687;block.note_block.bass":"1;note/bassattack;1","688;block.note_block.bell":"1;note/bell;1","700;block.note_block.bit":"1;note/bit;1","689;block.note_block.chime":"1;note/icechime;1","698;block.note_block.cow_bell":"1;note/cow_bell;1","699;block.note_block.didgeridoo":"1;note/didgeridoo;1","690;block.note_block.flute":"1;note/flute;1","691;block.note_block.guitar":"1;note/guitar;1","692;block.note_block.harp":"1;note/harp2;1","693;block.note_block.hat":"1;note/hat;1","697;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","694;block.note_block.pling":"1;note/pling;1","695;block.note_block.snare":"1;note/snare;1","696;block.note_block.xylophone":"1;note/xylobone;1","651;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","655;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","654;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","653;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","652;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","787;block.piston.contract":"1;tile/piston/in;1","788;block.piston.extend":"1;tile/piston/out;1","285;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","291;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","293;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","292;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","294;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","289;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","288;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","290;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","287;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","286;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","815;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","816;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","817;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","818;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","819;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","820;block.portal.ambient":"1;portal/portal;1","821;block.portal.travel":"1;portal/travel;1","822;block.portal.trigger":"1;portal/trigger;1","823;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","824;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","825;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","826;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","827;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","835;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","860;block.redstone_torch.burnout":"1;random/fizz;1","861;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","862;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","863;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","864;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","865;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","866;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","867;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","868;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","869;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","388;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","390;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","874;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","875;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","876;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","877;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","878;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","879;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","880;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","881;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","882;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","883;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","886;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","884;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","885;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","887;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","888;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","889;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","890;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","898;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","902;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","901;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","900;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","899;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","905;block.shulker_box.close":"1;block/shulker_box/close;1","906;block.shulker_box.open":"1;block/shulker_box/open;1","939;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","940;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","941;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","942;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","943;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","944;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","945;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","946;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","947;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","948;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","949;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","950;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","980;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","981;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","983;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","984;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","990;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","991;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","992;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","951;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","955;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","954;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","953;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","952;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","956;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","960;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","959;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","958;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","957;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","962;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","963;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","964;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","965;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","966;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","646;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","650;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","649;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","648;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","647;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1005;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1008;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1009;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1010;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1013;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1006;block.stone_button.click_off":"1;random/click;1","1007;block.stone_button.click_on":"1;random/click;1","1011;block.stone_pressure_plate.click_off":"1;random/click;1","1012;block.stone_pressure_plate.click_on":"1;random/click;1","1018;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1020;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1019;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","1032;block.tripwire.attach":"1;random/click;1","1033;block.tripwire.click_off":"1;random/click;1","1034;block.tripwire.click_on":"1;random/click;1","1035;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1040;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1044;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1043;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1042;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1041;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1094;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1095;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1096;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1097;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1098;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","671;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","675;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","674;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","673;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","672;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1110;block.water.ambient":"1;liquid/water;1","666;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","670;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","669;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","668;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","667;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1113;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1114;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1115;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1116;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1117;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1147;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1150;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1151;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1152;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1155;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1148;block.wooden_button.click_off":"1;random/wood_click;1","1149;block.wooden_button.click_on":"1;random/wood_click;1","1143;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","1144;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","1153;block.wooden_pressure_plate.click_off":"1;random/click;1","1154;block.wooden_pressure_plate.click_on":"1;random/click;1","1145;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","1146;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","1156;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1157;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1158;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1159;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1160;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1021;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","55;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","56;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","57;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","58;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","59;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","60;entity.arrow.hit_player":"1;random/successful_hit;1","61;entity.arrow.shoot":"1;random/bow;1","65;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","66;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","67;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","68;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","69;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","70;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","71;entity.axolotl.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","97;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","98;entity.bat.death":"1;mob/bat/death;1","99;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","100;entity.bat.loop":"1;mob/bat/loop;1","101;entity.bat.takeoff":"1;mob/bat/takeoff;1","106;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","107;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1","109;entity.bee.loop":"0.75;mob/bee/loop5;1,0.7;mob/bee/loop5;1,0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1","108;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","111;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","110;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","124;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","125;entity.blaze.burn":"1;fire/fire;1","126;entity.blaze.death":"1;mob/blaze/death;1","127;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","128;entity.blaze.shoot":"1;mob/ghast/fireball4;1","129;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","130;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","173;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","178;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","175;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","176;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","177;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","179;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","180;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","181;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","174;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","196;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","197;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","198;entity.chicken.egg":"1;mob/chicken/plop;1","199;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","200;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","205;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","206;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","207;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","228;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","229;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","230;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","231;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","232;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","233;entity.creeper.death":"1;mob/creeper/death;1","234;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","235;entity.creeper.primed":"1;random/fuse;1","264;entity.dolphin.ambient":"1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1,1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1","265;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","266;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","267;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","268;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","269;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","270;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","271;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","272;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","273;entity.dolphin.swim":"1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","274;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","275;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","276;entity.donkey.chest":"1;mob/chicken/plop;1","277;entity.donkey.death":"1;mob/horse/donkey/death;1","278;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","279;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","322;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","297;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","298;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","299;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","300;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","301;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","302;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","303;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","304;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","305;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","307;entity.egg.throw":"1;random/bow;1","308;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","309;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","310;entity.elder_guardian.curse":"1;mob/guardian/curse;1","311;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","312;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","313;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","314;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","315;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","320;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","321;entity.ender_dragon.death":"1;mob/enderdragon/end;1","323;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","324;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","325;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","326;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","327;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","328;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","339;entity.ender_pearl.throw":"1;random/bow;1","329;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","330;entity.enderman.death":"1;mob/endermen/death;1","331;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","332;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","333;entity.enderman.stare":"1;mob/endermen/stare;1","334;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","335;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","336;entity.endermite.death":"1;mob/silverfish/kill;1","337;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","338;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","343;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","344;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","345;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","346;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","348;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","349;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","350;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","351;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","347;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","352;entity.experience_bottle.throw":"1;random/bow;1","353;entity.experience_orb.pickup":"1;random/orb;1","357;entity.firework_rocket.blast":"1;fireworks/blast1;1","358;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","359;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","360;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","361;entity.firework_rocket.launch":"1;fireworks/launch1;1","362;entity.firework_rocket.shoot":"1;random/bow;1","363;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","364;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","367;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","368;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","369;entity.fishing_bobber.splash":"1;random/splash;1","370;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","377;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","378;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","379;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","380;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","381;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","382;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","383;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","384;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","385;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","386;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","387;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","394;entity.generic.big_fall":"1;damage/fallbig;1","395;entity.generic.burn":"1;random/fizz;1","396;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","397;entity.generic.drink":"1;random/drink;1","398;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","399;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","400;entity.generic.extinguish_fire":"1;random/fizz;1","401;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","402;entity.generic.small_fall":"1;damage/fallsmall;1","403;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","404;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","405;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","406;entity.ghast.death":"1;mob/ghast/death;1","407;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","408;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","409;entity.ghast.shoot":"1;mob/ghast/fireball4;1","410;entity.ghast.warn":"1;mob/ghast/charge;1","422;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","423;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","424;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","425;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","426;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","427;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","428;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","429;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","430;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","431;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","432;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","433;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","434;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","435;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1","436;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","437;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","438;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","439;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","440;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","441;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","442;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","443;entity.goat.screaming.long_jump":"1;mob/goat/jump1;1,1;mob/goat/jump2;1,1;mob/goat/jump1;1,1;mob/goat/jump2;1","444;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","445;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","446;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","447;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","459;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","460;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","461;entity.guardian.attack":"1;mob/guardian/attack_loop;1","462;entity.guardian.death":"1;mob/guardian/guardian_death;1","463;entity.guardian.death_land":"1;mob/guardian/land_death;1","464;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","465;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","466;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","473;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","474;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","475;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1","476;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","477;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","478;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","479;entity.hoglin.retreat":"0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1,0.8;mob/hoglin/idle11;1","480;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","489;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","490;entity.horse.angry":"1;mob/horse/angry1;1","491;entity.horse.armor":"1;mob/horse/armor;1","492;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","493;entity.horse.death":"1;mob/horse/death;1","494;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","495;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","496;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","497;entity.horse.jump":"1;mob/horse/jump;1","498;entity.horse.land":"1;mob/horse/land;1","499;entity.horse.saddle":"1;mob/horse/leather;1","500;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","501;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","502;entity.hostile.big_fall":"1;damage/fallbig;1","503;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","504;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","505;entity.hostile.small_fall":"1;damage/fallsmall;1","506;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","507;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","508;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","509;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","510;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","511;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","512;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","513;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","514;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","515;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","516;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","517;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","518;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","519;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","523;entity.iron_golem.attack":"1;mob/irongolem/throw;1","524;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1","525;entity.iron_golem.death":"1;mob/irongolem/death;1","526;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","527;entity.iron_golem.repair":"1;mob/irongolem/repair;1","528;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","536;entity.item.break":"1;random/break;1","537;entity.item.pickup":"1;random/pop;1","531;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","532;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","533;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","534;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","535;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","553;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","554;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","556;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","557;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","558;entity.lingering_potion.throw":"1;random/bow;1","559;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","560;entity.llama.angry":"1;mob/llama/angry1;1","561;entity.llama.chest":"1;mob/chicken/plop;1","562;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","563;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","564;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","565;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","566;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","567;entity.llama.swag":"1;mob/llama/swag;1","575;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","568;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","576;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","577;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","578;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","579;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","580;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","591;entity.minecart.inside":"1;minecart/inside;1","590;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","592;entity.minecart.riding":"1;minecart/base;1","593;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","594;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1","595;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","597;entity.mooshroom.shear":"1;mob/sheep/shear;1","596;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","608;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","609;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","610;entity.mule.chest":"1;mob/chicken/plop;1","611;entity.mule.death":"1;mob/horse/donkey/death;1","612;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","613;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","703;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","704;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","702;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","705;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","706;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","714;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","709;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","717;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","713;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","710;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","711;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","716;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","707;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","708;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","712;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","715;entity.panda.worried_ambient":"1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1,1;mob/panda/pant2;1","718;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","719;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","720;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","721;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","722;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1,1;mob/parrot/hurt1;1","723;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","724;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","725;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","726;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","727;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","728;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","729;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","730;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","731;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","732;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","733;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","734;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","735;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","736;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","737;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","738;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","739;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","740;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","741;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","742;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","743;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","744;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","745;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","746;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","747;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","748;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","749;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","750;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","751;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","752;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","753;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","754;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","755;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","756;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","757;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","758;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","759;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","760;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","761;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","762;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","763;entity.pig.death":"1;mob/pig/death;1","764;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","765;entity.pig.saddle":"1;mob/horse/leather;1","766;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","767;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","768;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","769;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","770;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","776;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","771;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","773;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","772;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","774;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","775;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","777;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","778;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","782;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","779;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","780;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","781;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","783;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","784;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","785;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","786;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","789;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","790;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","791;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","792;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","793;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","794;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","795;entity.player.big_fall":"1;damage/fallbig;1","796;entity.player.breath":"1;random/breath;1","797;entity.player.burp":"1;random/burp;1","798;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","799;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","800;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","801;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","802;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","803;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","804;entity.player.levelup":"1;random/levelup;1","805;entity.player.small_fall":"1;damage/fallsmall;1","806;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","807;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","808;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","809;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","810;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","811;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","812;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","813;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","814;entity.polar_bear.warning":"1;mob/polarbear/warning3;1,1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1","829;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","830;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","831;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","832;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","833;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","834;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","836;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","837;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","838;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","839;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","840;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","842;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","843;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","844;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","845;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","846;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","849;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","847;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","848;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","871;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","872;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","873;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","891;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","892;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","893;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","894;entity.sheep.shear":"1;mob/sheep/shear;1","895;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","904;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","909;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","910;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","911;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","912;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","913;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","914;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","915;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","907;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","908;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","916;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","917;entity.silverfish.death":"1;mob/silverfish/kill;1","918;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","919;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","920;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","921;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","922;entity.skeleton.death":"1;mob/skeleton/death;1","931;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","932;entity.skeleton.shoot":"1;random/bow;1","933;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","923;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","927;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","924;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","928;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","925;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","929;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","930;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","926;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","934;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","935;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","976;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","936;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","977;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","937;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","978;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","938;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","979;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","986;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","987;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","989;entity.snow_golem.shear":"1;mob/sheep/shear;1","988;entity.snow_golem.shoot":"1;random/bow;1","982;entity.snowball.throw":"1;random/bow;1","993;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","994;entity.spider.death":"1;mob/spider/death;1","995;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","996;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","997;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","998;entity.splash_potion.throw":"1;random/bow;1","1001;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1002;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1003;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1004;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1014;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1015;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1016;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1017;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","967;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","970;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","974;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","968;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","971;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","969;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","975;entity.strider.saddle":"1;mob/horse/leather;1","972;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","973;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1022;entity.tnt.primed":"1;random/fuse;1","1037;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1038;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1039;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1045;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1046;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1047;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1048;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1049;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1050;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1051;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1052;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1053;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1054;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1055;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1056;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1066;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1067;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1068;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1069;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1070;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1071;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1072;entity.villager.death":"1;mob/villager/death;1","1073;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1074;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1075;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1077;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1078;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1079;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1080;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1081;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1082;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1083;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1084;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1085;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1086;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1087;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1088;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1089;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1076;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1090;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1091;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1092;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1093;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1100;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1101;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1102;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1103;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1104;entity.wandering_trader.drink_potion":"0.65;random/drink;1,0.7;mob/wandering_trader/drink_potion;1","1105;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1106;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1107;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1108;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1109;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1118;entity.witch.ambient":"1;entity/witch/ambient5;1,1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1","1119;entity.witch.celebrate":"1;entity/witch/celebrate;1,1;entity/witch/ambient1;1,1;entity/witch/ambient4;1","1120;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1121;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1122;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1123;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1124;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1125;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1126;entity.wither.death":"1;mob/wither/death;1","1127;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1128;entity.wither.shoot":"1;mob/wither/shoot;1","1133;entity.wither.spawn":"1;mob/wither/spawn;1","1129;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1130;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1131;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1132;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1134;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1135;entity.wolf.death":"1;mob/wolf/death;1","1136;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1137;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1138;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1139;entity.wolf.pant":"1;mob/wolf/panting;1","1140;entity.wolf.shake":"1;mob/wolf/shake;1","1141;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1142;entity.wolf.whine":"1;mob/wolf/whine;1","1161;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1162;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1163;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1","1164;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1165;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1166;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1167;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1169;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1168;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1170;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1171;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1172;entity.zombie.death":"1;mob/zombie/death;1","1173;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1177;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1178;entity.zombie.infect":"1;mob/zombie/infect;1","1183;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1174;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1175;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1176;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1184;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1185;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1186;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1187;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1188;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1189;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1179;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1180;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1181;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1182;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","841;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","46;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","47;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","48;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","49;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","50;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","51;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","52;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","53;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1","54;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","63;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1","62;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1","64;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1","136;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1","137;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","138;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","140;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","141;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","142;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","149;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","150;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","151;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","152;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","153;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1","154;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","155;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","156;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","157;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","158;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1","203;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","237;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1","238;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","239;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","240;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","241;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","242;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","243;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","244;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","245;item.crossbow.shoot":"0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot3;1,0.8;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1","306;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","316;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","356;item.firecharge.use":"1;mob/ghast/fireball4;1","371;item.flintandsteel.use":"1;fire/ignite;1","421;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","472;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","488;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","487;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1","520;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","574;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1","645;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","896;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","897;item.shield.break":"1;random/break;1","903;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1000;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","999;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1023;item.totem.use":"1;item/totem/use_totem;1","1024;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1025;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1026;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1027;item.trident.riptide_1":"1;item/trident/riptide1;1","1028;item.trident.riptide_2":"1;item/trident/riptide2;1","1029;item.trident.riptide_3":"1;item/trident/riptide3;1","1030;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1031;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","614;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","615;music.credits":"1;music/game/end/credits;1","629;music.dragon":"1;music/game/end/boss;1","630;music.end":"1;music/game/end/end;1","631;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","632;music.menu":"1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","633;music.nether.basalt_deltas":"0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","636;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","634;music.nether.nether_wastes":"0.5;music/game/nether/nether_wastes/rubedo;6,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","635;music.nether.soul_sand_valley":"0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1","638;music.under_water":"0.4;music/game/water/shuniji;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/axolotl;1","616;music_disc.11":"1;records/11;1","617;music_disc.13":"1;records/13;1","618;music_disc.blocks":"1;records/blocks;1","619;music_disc.cat":"1;records/cat;1","620;music_disc.chirp":"1;records/chirp;1","621;music_disc.far":"1;records/far;1","622;music_disc.mall":"1;records/mall;1","623;music_disc.mellohi":"1;records/mellohi;1","624;music_disc.pigstep":"1;records/pigstep;1","625;music_disc.stal":"1;records/stal;1","626;music_disc.strad":"1;records/strad;1","627;music_disc.wait":"1;records/wait;1","628;music_disc.ward":"1;records/ward;1","961;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1057;ui.button.click":"1;random/click_stereo;1","1060;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1058;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1059;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1062;ui.stonecutter.select_recipe":"1;random/click;1","1061;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1063;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1064;ui.toast.in":"0.4;ui/toast/in;1","1065;ui.toast.out":"0.4;ui/toast/out;1","1111;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1112;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.18":{"1;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","2;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","3;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","0;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","4;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","5;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","6;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","7;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","8;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","9;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","10;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","11;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","12;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","16;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","17;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","18;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","19;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","20;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","21;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","13;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","14;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","15;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","22;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","23;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","24;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","25;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","26;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","27;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","28;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","29;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","30;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","31;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","32;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","33;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","37;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","36;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","35;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","34;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","38;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","39;block.anvil.destroy":"1;random/anvil_break;1","40;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","41;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","42;block.anvil.land":"1;random/anvil_land;1","43;block.anvil.place":"1;random/anvil_land;1","44;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","45;block.anvil.use":"1;random/anvil_use;1","72;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","73;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","74;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","75;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","76;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","77;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","78;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","79;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","80;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","81;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","82;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","83;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","84;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","85;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","86;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","87;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","88;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","89;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","90;block.barrel.close":"1;block/barrel/close;1","91;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","92;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","96;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","95;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","94;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","93;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","102;block.beacon.activate":"1;block/beacon/activate;1","103;block.beacon.ambient":"0.9;block/beacon/ambient;1","104;block.beacon.deactivate":"1;block/beacon/deactivate;1","105;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","112;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","113;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","114;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","115;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","116;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","118;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","117;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","119;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","120;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","121;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","122;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","123;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","298;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","299;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","139;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","131;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","132;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","133;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","134;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","135;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","143;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","144;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","145;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","146;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","147;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","148;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","162;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","163;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","167;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","166;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","165;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","164;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","168;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","169;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","170;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","171;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","172;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","173;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","174;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","175;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","185;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","186;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","187;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","190;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","188;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","189;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","191;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","192;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","193;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","194;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","195;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","196;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","197;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","198;block.chest.open":"1;block/chest/open;1","204;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","205;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","211;block.comparator.click":"1;random/click;1","212;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","213;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","214;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","215;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","216;block.conduit.activate":"0.9;block/conduit/activate;1","217;block.conduit.ambient":"1;block/conduit/ambient;1","218;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","219;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","220;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","221;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","225;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","224;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","223;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","222;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","226;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","227;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","228;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","229;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","230;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","239;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","254;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","255;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","256;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","257;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","258;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","249;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","250;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","251;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","252;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","253;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","259;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","260;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","261;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","262;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","263;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","264;block.dispenser.dispense":"1;random/click;1","265;block.dispenser.fail":"1;random/click;1","266;block.dispenser.launch":"1;random/bow;1","283;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","287;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","286;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","285;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","284;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","320;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","343;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","345;block.end_portal.spawn":"1;block/end_portal/endportal;1","344;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","321;block.ender_chest.close":"1;block/enderchest/close;1","322;block.ender_chest.open":"1;block/enderchest/open;1","357;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","358;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","368;block.fire.ambient":"1;fire/fire;1","369;block.fire.extinguish":"1;random/fizz;1","375;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","376;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","377;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","378;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","379;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","674;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","676;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","675;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","396;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","414;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","415;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","416;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","417;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","418;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","419;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","420;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","421;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","422;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","423;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","451;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","452;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","453;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","454;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","455;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","456;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","457;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","458;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","459;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","460;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","461;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","462;block.growing_plant.crop":"1;mob/sheep/shear;1","471;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","472;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","473;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","474;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","475;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","485;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","486;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","487;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","488;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","489;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","490;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","525;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","526;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","533;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","534;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","542;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","543;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","544;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","545;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","546;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","547;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","548;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","549;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","550;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","551;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","552;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","553;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","554;block.lava.ambient":"1;liquid/lava;1","555;block.lava.extinguish":"1;random/fizz;1","556;block.lava.pop":"1;liquid/lavapop;1","559;block.lever.click":"1;random/click;1","1112;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","573;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","577;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","576;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","575;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","574;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","585;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","586;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","587;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","588;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","589;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","590;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","593;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","591;block.metal_pressure_plate.click_off":"1;random/click;1","592;block.metal_pressure_plate.click_on":"1;random/click;1","607;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","608;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","609;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","610;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","611;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","602;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","603;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","604;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","605;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","606;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","652;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","656;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","655;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","654;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","653;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","863;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","864;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","865;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","866;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","867;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","868;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","869;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","870;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","871;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","872;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","669;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","673;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","672;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","671;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","670;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","657;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","689;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","693;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","692;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","691;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","690;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","694;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","698;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","697;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","696;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","695;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","714;block.note_block.banjo":"1;note/banjo;1","699;block.note_block.basedrum":"1;note/bd;1","700;block.note_block.bass":"1;note/bassattack;1","701;block.note_block.bell":"1;note/bell;1","713;block.note_block.bit":"1;note/bit;1","702;block.note_block.chime":"1;note/icechime;1","711;block.note_block.cow_bell":"1;note/cow_bell;1","712;block.note_block.didgeridoo":"1;note/didgeridoo;1","703;block.note_block.flute":"1;note/flute;1","704;block.note_block.guitar":"1;note/guitar;1","705;block.note_block.harp":"1;note/harp2;1","706;block.note_block.hat":"1;note/hat;1","710;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","707;block.note_block.pling":"1;note/pling;1","708;block.note_block.snare":"1;note/snare;1","709;block.note_block.xylophone":"1;note/xylobone;1","664;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","668;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","667;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","666;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","665;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","800;block.piston.contract":"1;tile/piston/in;1","801;block.piston.extend":"1;tile/piston/out;1","288;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","294;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","296;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","295;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","297;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","292;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","291;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","293;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","290;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","289;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","828;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","829;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","830;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","831;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","832;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","833;block.portal.ambient":"1;portal/portal;1","834;block.portal.travel":"1;portal/travel;1","835;block.portal.trigger":"1;portal/trigger;1","836;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","837;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","838;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","839;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","840;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","848;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","873;block.redstone_torch.burnout":"1;random/fizz;1","874;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","875;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","876;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","877;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","878;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","879;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","880;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","881;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","882;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","391;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","393;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","887;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","888;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","889;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","890;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","891;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","892;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","893;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","894;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","895;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","896;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","899;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","897;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","898;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","900;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","901;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","902;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","903;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","911;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","915;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","914;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","913;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","912;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","918;block.shulker_box.close":"1;block/shulker_box/close;1","919;block.shulker_box.open":"1;block/shulker_box/open;1","952;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","953;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","954;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","955;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","956;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","957;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","958;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","959;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","960;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","961;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","962;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","963;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","993;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","994;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","996;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","997;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1003;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1004;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1005;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","964;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","968;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","967;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","966;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","965;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","969;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","973;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","972;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","971;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","970;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","975;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","976;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","977;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","978;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","979;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","659;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","663;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","662;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","661;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","660;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1018;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1021;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1022;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1023;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1026;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1019;block.stone_button.click_off":"1;random/click;1","1020;block.stone_button.click_on":"1;random/click;1","1024;block.stone_pressure_plate.click_off":"1;random/click;1","1025;block.stone_pressure_plate.click_on":"1;random/click;1","1031;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1033;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1032;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","1045;block.tripwire.attach":"1;random/click;1","1046;block.tripwire.click_off":"1;random/click;1","1047;block.tripwire.click_on":"1;random/click;1","1048;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1053;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1057;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1056;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1055;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1054;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1107;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1108;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1109;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1110;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1111;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","684;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","688;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","687;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","686;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","685;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1123;block.water.ambient":"1;liquid/water;1","679;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","683;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","682;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","681;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","680;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1126;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1127;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1128;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1129;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1130;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1160;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1163;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1164;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1165;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1168;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1161;block.wooden_button.click_off":"1;random/wood_click;1","1162;block.wooden_button.click_on":"1;random/wood_click;1","1156;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","1157;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","1166;block.wooden_pressure_plate.click_off":"1;random/click;1","1167;block.wooden_pressure_plate.click_on":"1;random/click;1","1158;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","1159;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","1169;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1170;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1171;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1172;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1173;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1034;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","55;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","56;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","57;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","58;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","59;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","60;entity.arrow.hit_player":"1;random/successful_hit;1","61;entity.arrow.shoot":"1;random/bow;1","65;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","66;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","67;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","68;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","69;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","70;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","71;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","97;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","98;entity.bat.death":"1;mob/bat/death;1","99;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","100;entity.bat.loop":"1;mob/bat/loop;1","101;entity.bat.takeoff":"1;mob/bat/takeoff;1","106;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","107;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","109;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","108;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","111;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","110;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","124;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","125;entity.blaze.burn":"1;fire/fire;1","126;entity.blaze.death":"1;mob/blaze/death;1","127;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","128;entity.blaze.shoot":"1;mob/ghast/fireball4;1","129;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","130;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","176;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","181;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","178;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","179;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","180;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","182;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","183;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","184;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","177;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","199;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","200;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","201;entity.chicken.egg":"1;mob/chicken/plop;1","202;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","203;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","208;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","209;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","210;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","231;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","232;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","233;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","234;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","235;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","236;entity.creeper.death":"1;mob/creeper/death;1","237;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","238;entity.creeper.primed":"1;random/fuse;1","267;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","268;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","269;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","270;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","271;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","272;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","273;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","274;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","275;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","276;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","277;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","278;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","279;entity.donkey.chest":"1;mob/chicken/plop;1","280;entity.donkey.death":"1;mob/horse/donkey/death;1","281;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","282;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","325;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","300;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","301;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","302;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","303;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","304;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","305;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","306;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","307;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","308;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","310;entity.egg.throw":"1;random/bow;1","311;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","312;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","313;entity.elder_guardian.curse":"1;mob/guardian/curse;1","314;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","315;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","316;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","317;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","318;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","323;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","324;entity.ender_dragon.death":"1;mob/enderdragon/end;1","326;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","327;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","328;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","329;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","330;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","331;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","342;entity.ender_pearl.throw":"1;random/bow;1","332;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","333;entity.enderman.death":"1;mob/endermen/death;1","334;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","335;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","336;entity.enderman.stare":"1;mob/endermen/stare;1","337;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","338;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","339;entity.endermite.death":"1;mob/silverfish/kill;1","340;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","341;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","346;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","347;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","348;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","349;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","351;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","352;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","353;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","354;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","350;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","355;entity.experience_bottle.throw":"1;random/bow;1","356;entity.experience_orb.pickup":"1;random/orb;1","360;entity.firework_rocket.blast":"1;fireworks/blast1;1","361;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","362;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","363;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","364;entity.firework_rocket.launch":"1;fireworks/launch1;1","365;entity.firework_rocket.shoot":"1;random/bow;1","366;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","367;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","370;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","371;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","372;entity.fishing_bobber.splash":"1;random/splash;1","373;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","380;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","381;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","382;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","383;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","384;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","385;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","386;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","387;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","388;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","389;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","390;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","397;entity.generic.big_fall":"1;damage/fallbig;1","398;entity.generic.burn":"1;random/fizz;1","399;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","400;entity.generic.drink":"1;random/drink;1","401;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","402;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","403;entity.generic.extinguish_fire":"1;random/fizz;1","404;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","405;entity.generic.small_fall":"1;damage/fallsmall;1","406;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","407;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","408;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","409;entity.ghast.death":"1;mob/ghast/death;1","410;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","411;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","412;entity.ghast.shoot":"1;mob/ghast/fireball4;1","413;entity.ghast.warn":"1;mob/ghast/charge;1","425;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","426;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","427;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","428;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","429;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","430;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","431;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","432;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","433;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","434;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","435;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","436;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","437;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","438;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","439;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","440;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","441;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","442;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","443;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","444;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","445;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","446;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","447;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","448;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","449;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","450;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","463;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","464;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","465;entity.guardian.attack":"1;mob/guardian/attack_loop;1","466;entity.guardian.death":"1;mob/guardian/guardian_death;1","467;entity.guardian.death_land":"1;mob/guardian/land_death;1","468;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","469;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","470;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","477;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","478;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","479;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","480;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","481;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","482;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","483;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","484;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","493;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","494;entity.horse.angry":"1;mob/horse/angry1;1","495;entity.horse.armor":"1;mob/horse/armor;1","496;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","497;entity.horse.death":"1;mob/horse/death;1","498;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","499;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","500;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","501;entity.horse.jump":"1;mob/horse/jump;1","502;entity.horse.land":"1;mob/horse/land;1","503;entity.horse.saddle":"1;mob/horse/leather;1","504;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","505;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","506;entity.hostile.big_fall":"1;damage/fallbig;1","507;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","508;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","509;entity.hostile.small_fall":"1;damage/fallsmall;1","510;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","511;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","512;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","513;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","514;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","515;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","516;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","517;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","518;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","519;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","520;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","521;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","522;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","523;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","527;entity.iron_golem.attack":"1;mob/irongolem/throw;1","528;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","529;entity.iron_golem.death":"1;mob/irongolem/death;1","530;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","531;entity.iron_golem.repair":"1;mob/irongolem/repair;1","532;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","540;entity.item.break":"1;random/break;1","541;entity.item.pickup":"1;random/pop;1","535;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","536;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","537;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","538;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","539;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","557;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","558;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","560;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","561;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","562;entity.lingering_potion.throw":"1;random/bow;1","563;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","564;entity.llama.angry":"1;mob/llama/angry1;1","565;entity.llama.chest":"1;mob/chicken/plop;1","566;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","567;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","568;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","569;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","570;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","571;entity.llama.swag":"1;mob/llama/swag;1","579;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","572;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","580;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","581;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","582;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","583;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","584;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","595;entity.minecart.inside":"1;minecart/inside;1","594;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","596;entity.minecart.riding":"1;minecart/base;1","597;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","598;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","599;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","601;entity.mooshroom.shear":"1;mob/sheep/shear;1","600;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","612;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","613;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","614;entity.mule.chest":"1;mob/chicken/plop;1","615;entity.mule.death":"1;mob/horse/donkey/death;1","616;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","617;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","716;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","717;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","715;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","718;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","719;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","727;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","722;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","730;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","726;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","723;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","724;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","729;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","720;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","721;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","725;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","728;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","731;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","732;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","733;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","734;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","735;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","736;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","737;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","738;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","739;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","740;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","741;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","742;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","743;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","744;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","745;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","746;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","747;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","748;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","749;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","750;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","751;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","752;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","753;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","754;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","755;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","756;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","757;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","758;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","759;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","760;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","761;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","762;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","763;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","764;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","765;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","766;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","767;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","768;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","769;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","770;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","771;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","772;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","773;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","774;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","775;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","776;entity.pig.death":"1;mob/pig/death;1","777;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","778;entity.pig.saddle":"1;mob/horse/leather;1","779;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","780;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","781;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","782;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","783;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","789;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","784;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","786;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","785;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","787;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","788;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","790;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","791;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","795;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","792;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","793;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","794;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","796;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","797;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","798;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","799;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","802;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","803;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","804;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","805;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","806;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","807;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","808;entity.player.big_fall":"1;damage/fallbig;1","809;entity.player.breath":"1;random/breath;1","810;entity.player.burp":"1;random/burp;1","811;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","812;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","813;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","814;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","815;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","816;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","817;entity.player.levelup":"1;random/levelup;1","818;entity.player.small_fall":"1;damage/fallsmall;1","819;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","820;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","821;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","822;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","823;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","824;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","825;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","826;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","827;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","842;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","843;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","844;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","845;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","846;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","847;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","849;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","850;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","851;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","852;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","853;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","855;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","856;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","857;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","858;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","859;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","862;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","860;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","861;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","884;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","885;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","886;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","904;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","905;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","906;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","907;entity.sheep.shear":"1;mob/sheep/shear;1","908;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","917;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","922;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","923;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","924;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","925;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","926;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","927;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","928;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","920;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","921;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","929;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","930;entity.silverfish.death":"1;mob/silverfish/kill;1","931;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","932;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","933;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","934;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","935;entity.skeleton.death":"1;mob/skeleton/death;1","944;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","945;entity.skeleton.shoot":"1;random/bow;1","946;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","936;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","940;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","937;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","941;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","938;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","942;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","943;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","939;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","947;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","948;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","989;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","949;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","990;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","950;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","991;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","951;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","992;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","999;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1000;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1002;entity.snow_golem.shear":"1;mob/sheep/shear;1","1001;entity.snow_golem.shoot":"1;random/bow;1","995;entity.snowball.throw":"1;random/bow;1","1006;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1007;entity.spider.death":"1;mob/spider/death;1","1008;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1009;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1010;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1011;entity.splash_potion.throw":"1;random/bow;1","1014;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1015;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1016;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1017;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1027;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1028;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1029;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1030;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","980;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","983;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","987;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","981;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","984;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","982;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","988;entity.strider.saddle":"1;mob/horse/leather;1","985;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","986;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1035;entity.tnt.primed":"1;random/fuse;1","1050;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1051;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1052;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1058;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1059;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1060;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1061;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1062;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1063;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1064;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1065;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1066;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1067;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1068;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1069;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1079;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1080;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1081;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1082;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1083;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1084;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1085;entity.villager.death":"1;mob/villager/death;1","1086;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1087;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1088;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1090;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1091;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1092;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1093;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1094;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1095;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1096;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1097;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1098;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1099;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1100;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1101;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1102;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1089;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1103;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1104;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1105;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1106;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1113;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1114;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1115;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1116;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1117;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1118;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1119;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1120;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1121;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1122;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1131;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1132;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1133;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1134;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1135;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1136;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1137;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1138;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1139;entity.wither.death":"1;mob/wither/death;1","1140;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1141;entity.wither.shoot":"1;mob/wither/shoot;1","1146;entity.wither.spawn":"1;mob/wither/spawn;1","1142;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1143;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1144;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1145;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1147;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1148;entity.wolf.death":"1;mob/wolf/death;1","1149;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1150;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1151;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1152;entity.wolf.pant":"1;mob/wolf/panting;1","1153;entity.wolf.shake":"1;mob/wolf/shake;1","1154;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1155;entity.wolf.whine":"1;mob/wolf/whine;1","1174;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1175;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1176;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1177;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1178;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1179;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1180;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1182;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1181;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1183;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1184;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1185;entity.zombie.death":"1;mob/zombie/death;1","1186;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1190;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1191;entity.zombie.infect":"1;mob/zombie/infect;1","1196;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1187;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1188;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1189;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1197;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1198;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1199;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1200;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1201;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1202;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1192;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1193;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1194;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1195;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","854;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","46;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","47;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","48;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","49;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","50;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","51;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","52;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","53;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","54;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","63;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","62;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","64;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","136;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","137;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","138;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","140;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","141;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","142;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","149;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","150;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","151;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","152;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","153;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","154;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","155;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","156;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","157;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","158;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","159;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","160;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","161;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","206;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","240;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","241;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","242;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","243;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","244;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","245;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","246;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","247;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","248;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","309;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","319;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","359;item.firecharge.use":"1;mob/ghast/fireball4;1","374;item.flintandsteel.use":"1;fire/ignite;1","424;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","476;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","492;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","491;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","524;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","578;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","658;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","909;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","910;item.shield.break":"1;random/break;1","916;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1013;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1012;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1036;item.totem.use":"1;item/totem/use_totem;1","1037;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1038;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1039;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1040;item.trident.riptide_1":"1;item/trident/riptide1;1","1041;item.trident.riptide_2":"1;item/trident/riptide2;1","1042;item.trident.riptide_3":"1;item/trident/riptide3;1","1043;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1044;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","618;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","619;music.credits":"1;music/game/end/credits;1","634;music.dragon":"1;music/game/end/boss;1","635;music.end":"1;music/game/end/end;1","636;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","637;music.menu":"1;music/game/infinite_amethyst;1,1;music/game/left_to_bloom;1,1;music/game/one_more_day;1,1;music/game/stand_tall;1,1;music/game/wending;1,1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","638;music.nether.basalt_deltas":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","639;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;7,1;music/game/nether/nether2;7,1;music/game/nether/nether3;7,1;music/game/nether/nether4;7","645;music.nether.nether_wastes":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/nether_wastes/rubedo;6","648;music.nether.soul_sand_valley":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","640;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal4;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/wending;2","646;music.overworld.frozen_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2","641;music.overworld.grove":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano3;1,0.4;music/game/wending;1","642;music.overworld.jagged_peaks":"0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;1,0.4;music/game/wending;1","643;music.overworld.lush_caves":"1;music/game/an_ordinary_day;1,1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,1;music/game/floating_dream;1,0.4;music/game/left_to_bloom;2,0.4;music/game/one_more_day;1,1;music/game/piano3;1","644;music.overworld.meadow":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,0.4;music/game/one_more_day;2","647;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1","649;music.overworld.stony_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2,0.4;music/game/wending;1","651;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","620;music_disc.11":"1;records/11;1","621;music_disc.13":"1;records/13;1","622;music_disc.blocks":"1;records/blocks;1","623;music_disc.cat":"1;records/cat;1","624;music_disc.chirp":"1;records/chirp;1","625;music_disc.far":"1;records/far;1","626;music_disc.mall":"1;records/mall;1","627;music_disc.mellohi":"1;records/mellohi;1","633;music_disc.otherside":"1;records/otherside;1","628;music_disc.pigstep":"1;records/pigstep;1","629;music_disc.stal":"1;records/stal;1","630;music_disc.strad":"1;records/strad;1","631;music_disc.wait":"1;records/wait;1","632;music_disc.ward":"1;records/ward;1","974;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1070;ui.button.click":"1;random/click_stereo;1","1073;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1071;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1072;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1075;ui.stonecutter.select_recipe":"1;random/click;1","1074;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1076;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1077;ui.toast.in":"0.4;ui/toast/in;1","1078;ui.toast.out":"0.4;ui/toast/out;1","1124;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1125;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.19":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","35;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","36;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","37;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","38;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","39;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","40;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","44;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","42;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","41;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","45;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","46;block.anvil.destroy":"1;random/anvil_break;1","47;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","48;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.land":"1;random/anvil_land;1","50;block.anvil.place":"1;random/anvil_land;1","51;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","52;block.anvil.use":"1;random/anvil_use;1","79;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","80;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","81;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","82;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","83;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","84;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","85;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","86;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","87;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","88;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","89;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","90;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","91;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","92;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","93;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","94;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","95;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","96;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","97;block.barrel.close":"1;block/barrel/close;1","98;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","99;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","103;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","102;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","101;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","100;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","109;block.beacon.activate":"1;block/beacon/activate;1","110;block.beacon.ambient":"0.9;block/beacon/ambient;1","111;block.beacon.deactivate":"1;block/beacon/deactivate;1","112;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","119;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","120;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","121;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","122;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","123;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","125;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","124;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","126;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","127;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","128;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","129;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","130;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","307;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","308;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","146;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","138;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","139;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","140;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","141;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","142;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","150;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","151;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","152;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","153;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","154;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","155;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","171;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","172;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","176;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","175;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","174;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","173;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","177;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","178;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","179;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","180;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","181;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","182;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","183;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","184;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","194;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","195;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","196;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","199;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","197;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","198;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","200;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","201;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","202;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","203;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","204;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","205;block.chest.close":"1;block/chest/close;1,1;block/chest/close2;1,1;block/chest/close3;1","206;block.chest.locked":"1;block/wooden_door/close;1,1;block/wooden_door/open;1","207;block.chest.open":"1;block/chest/open;1","213;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","214;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","220;block.comparator.click":"1;random/click;1","221;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","222;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","223;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","224;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","225;block.conduit.activate":"0.9;block/conduit/activate;1","226;block.conduit.ambient":"1;block/conduit/ambient;1","227;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","228;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","229;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","230;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","234;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","233;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","232;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","231;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","235;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","236;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","237;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","238;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","239;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","248;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","263;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","264;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","265;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","266;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","267;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","258;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","259;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","260;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","261;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","262;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","268;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","269;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","270;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","271;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","272;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","273;block.dispenser.dispense":"1;random/click;1","274;block.dispenser.fail":"1;random/click;1","275;block.dispenser.launch":"1;random/bow;1","292;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","296;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","295;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","294;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","293;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","329;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","352;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","354;block.end_portal.spawn":"1;block/end_portal/endportal;1","353;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","330;block.ender_chest.close":"1;block/enderchest/close;1","331;block.ender_chest.open":"1;block/enderchest/open;1","366;block.fence_gate.close":"1;block/fence_gate/close1;1,1;block/fence_gate/close2;1","367;block.fence_gate.open":"1;block/fence_gate/open1;1,1;block/fence_gate/open2;1","377;block.fire.ambient":"1;fire/fire;1","378;block.fire.extinguish":"1;random/fizz;1","384;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","385;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","386;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","387;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","388;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","400;block.froglight.break":"1;block/froglight/break1;1,1;block/froglight/break2;1,1;block/froglight/break3;1,1;block/froglight/break4;1","401;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","402;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","403;block.froglight.place":"1;block/froglight/break1;1,1;block/froglight/break2;1,1;block/froglight/break3;1,1;block/froglight/break4;1","404;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","406;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","407;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","408;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","409;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","410;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","405;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","743;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","745;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","744;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","424;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","442;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","443;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","444;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","445;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","446;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","447;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","448;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","449;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","450;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","451;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","482;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","483;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","484;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","485;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","486;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","487;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","488;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","489;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","490;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","491;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","492;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","493;block.growing_plant.crop":"1;mob/sheep/shear;1","502;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","503;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","504;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","505;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","506;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","516;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","517;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","518;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","519;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","520;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","521;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","564;block.iron_door.close":"1;block/iron_door/close1;1,1;block/iron_door/close2;1,1;block/iron_door/close3;1,1;block/iron_door/close4;1","565;block.iron_door.open":"1;block/iron_door/open1;1,1;block/iron_door/open2;1,1;block/iron_door/open3;1,1;block/iron_door/open4;1","572;block.iron_trapdoor.close":"1;block/iron_trapdoor/close1;1,1;block/iron_trapdoor/close2;1,1;block/iron_trapdoor/close3;1,1;block/iron_trapdoor/close4;1","573;block.iron_trapdoor.open":"1;block/iron_trapdoor/open1;1,1;block/iron_trapdoor/open2;1,1;block/iron_trapdoor/open3;1,1;block/iron_trapdoor/open4;1","581;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","582;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","583;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","584;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","585;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","586;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","587;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","588;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","589;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","590;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","591;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","592;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","593;block.lava.ambient":"1;liquid/lava;1","594;block.lava.extinguish":"1;random/fizz;1","595;block.lava.pop":"1;liquid/lavapop;1","598;block.lever.click":"1;random/click;1","1210;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","612;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","616;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","615;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","614;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","613;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","624;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","625;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","626;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","627;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","628;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","629;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","630;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","631;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","632;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","633;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","634;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","637;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","635;block.metal_pressure_plate.click_off":"1;random/click;1","636;block.metal_pressure_plate.click_on":"1;random/click;1","651;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","652;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","653;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","654;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","655;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","646;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","647;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","648;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","649;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","650;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","656;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","657;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","658;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","659;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","660;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","661;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","662;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","663;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","664;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","665;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","666;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","667;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","668;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","669;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","670;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","716;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","720;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","719;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","718;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","717;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","933;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","934;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","935;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","936;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","937;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","938;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","939;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","940;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","941;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","942;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","738;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","742;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","741;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","740;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","739;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","721;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","758;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","762;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","761;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","760;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","759;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","763;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","767;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","766;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","765;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","764;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","783;block.note_block.banjo":"1;note/banjo;1","768;block.note_block.basedrum":"1;note/bd;1","769;block.note_block.bass":"1;note/bassattack;1","770;block.note_block.bell":"1;note/bell;1","782;block.note_block.bit":"1;note/bit;1","771;block.note_block.chime":"1;note/icechime;1","780;block.note_block.cow_bell":"1;note/cow_bell;1","781;block.note_block.didgeridoo":"1;note/didgeridoo;1","772;block.note_block.flute":"1;note/flute;1","773;block.note_block.guitar":"1;note/guitar;1","774;block.note_block.harp":"1;note/harp2;1","775;block.note_block.hat":"1;note/hat;1","779;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","776;block.note_block.pling":"1;note/pling;1","777;block.note_block.snare":"1;note/snare;1","778;block.note_block.xylophone":"1;note/xylobone;1","733;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","737;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","736;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","735;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","734;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","723;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","724;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","725;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","726;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","727;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","870;block.piston.contract":"1;tile/piston/in;1","871;block.piston.extend":"1;tile/piston/out;1","297;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","303;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","305;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","304;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","306;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","301;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","300;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","302;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","299;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","298;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","898;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","899;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","900;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","901;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","902;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","903;block.portal.ambient":"1;portal/portal;1","904;block.portal.travel":"1;portal/travel;1","905;block.portal.trigger":"1;portal/trigger;1","906;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","907;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","908;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","909;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","910;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","918;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","943;block.redstone_torch.burnout":"1;random/fizz;1","944;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","945;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","946;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","947;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","948;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","949;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","950;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","951;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","952;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","419;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","421;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","957;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","958;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","959;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","960;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","961;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","962;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","963;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","964;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","965;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","966;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","969;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","968;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","970;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","971;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","972;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","967;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","973;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","974;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","975;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","976;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","977;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","978;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","979;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","982;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","980;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","981;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","983;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","984;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","985;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","986;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","987;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","988;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","989;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","990;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","991;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","992;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","993;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","994;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","995;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","996;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","997;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1005;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1009;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1008;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1007;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1006;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1012;block.shulker_box.close":"1;block/shulker_box/close;1","1013;block.shulker_box.open":"1;block/shulker_box/open;1","1046;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1047;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1048;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1049;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1050;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1051;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1052;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1053;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1054;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1055;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1056;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1057;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1087;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1088;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1090;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1091;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1097;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1098;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1099;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1058;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1062;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1061;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1060;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1059;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1063;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1067;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1066;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1065;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1064;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1069;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1070;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1071;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1072;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1073;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","728;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","732;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","731;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","730;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","729;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1112;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1115;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1116;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1117;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1120;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1113;block.stone_button.click_off":"1;random/click;1","1114;block.stone_button.click_on":"1;random/click;1","1118;block.stone_pressure_plate.click_off":"1;random/click;1","1119;block.stone_pressure_plate.click_on":"1;random/click;1","1125;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1127;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1126;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","1143;block.tripwire.attach":"1;random/click;1","1144;block.tripwire.click_off":"1;random/click;1","1145;block.tripwire.click_on":"1;random/click;1","1146;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1151;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1155;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1154;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1153;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1152;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1205;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1206;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1207;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1208;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1209;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","753;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","757;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","756;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","755;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","754;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1241;block.water.ambient":"1;liquid/water;1","748;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","752;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","751;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","750;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","749;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1244;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1245;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1246;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1247;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1248;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1278;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1281;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1282;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1283;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1286;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1279;block.wooden_button.click_off":"1;random/wood_click;1","1280;block.wooden_button.click_on":"1;random/wood_click;1","1274;block.wooden_door.close":"1;block/wooden_door/close2;1,1;block/wooden_door/close5;1,1;block/wooden_door/close6;1","1275;block.wooden_door.open":"1;block/wooden_door/open3;1,1;block/wooden_door/open4;1","1284;block.wooden_pressure_plate.click_off":"1;random/click;1","1285;block.wooden_pressure_plate.click_on":"1;random/click;1","1276;block.wooden_trapdoor.close":"1;block/wooden_trapdoor/close1;1,1;block/wooden_trapdoor/close2;1,1;block/wooden_trapdoor/close3;1","1277;block.wooden_trapdoor.open":"1;block/wooden_trapdoor/open1;1,1;block/wooden_trapdoor/open2;1,1;block/wooden_trapdoor/open3;1,1;block/wooden_trapdoor/open4;1,1;block/wooden_trapdoor/open5;1","1287;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1288;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1289;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1290;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1291;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1132;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","62;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","63;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","64;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","65;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","66;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","67;entity.arrow.hit_player":"1;random/successful_hit;1","68;entity.arrow.shoot":"1;random/bow;1","72;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","73;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","74;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","75;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","76;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","77;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","78;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","104;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","105;entity.bat.death":"1;mob/bat/death;1","106;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","107;entity.bat.loop":"1;mob/bat/loop;1","108;entity.bat.takeoff":"1;mob/bat/takeoff;1","113;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","114;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","116;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","115;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","118;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","117;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","131;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","132;entity.blaze.burn":"1;fire/fire;1","133;entity.blaze.death":"1;mob/blaze/death;1","134;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","135;entity.blaze.shoot":"1;mob/ghast/fireball4;1","136;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","137;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","185;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","190;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","187;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","188;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","189;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","191;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","192;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","193;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","186;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","208;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","209;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","210;entity.chicken.egg":"1;mob/chicken/plop;1","211;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","212;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","217;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","218;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","219;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","240;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","241;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","242;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","243;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","244;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","245;entity.creeper.death":"1;mob/creeper/death;1","246;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","247;entity.creeper.primed":"1;random/fuse;1","276;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","277;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","278;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","279;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","280;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","281;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","282;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","283;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","284;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","285;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","286;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","287;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","288;entity.donkey.chest":"1;mob/chicken/plop;1","289;entity.donkey.death":"1;mob/horse/donkey/death;1","290;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","291;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","334;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","309;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","310;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","311;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","312;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","313;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","314;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","315;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","316;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","317;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","319;entity.egg.throw":"1;random/bow;1","320;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","321;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","322;entity.elder_guardian.curse":"1;mob/guardian/curse;1","323;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","324;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","325;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","326;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","327;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","332;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","333;entity.ender_dragon.death":"1;mob/enderdragon/end;1","335;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","336;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","337;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","338;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","339;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","340;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","351;entity.ender_pearl.throw":"1;random/bow;1","341;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","342;entity.enderman.death":"1;mob/endermen/death;1","343;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","344;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","345;entity.enderman.stare":"1;mob/endermen/stare;1","346;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","347;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","348;entity.endermite.death":"1;mob/silverfish/kill;1","349;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","350;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","355;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","356;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","357;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","358;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","360;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","361;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","362;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","363;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","359;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","364;entity.experience_bottle.throw":"1;random/bow;1","365;entity.experience_orb.pickup":"1;random/orb;1","369;entity.firework_rocket.blast":"1;fireworks/blast1;1","370;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","371;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","372;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","373;entity.firework_rocket.launch":"1;fireworks/launch1;1","374;entity.firework_rocket.shoot":"1;random/bow;1","375;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","376;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","379;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","380;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","381;entity.fishing_bobber.splash":"1;random/splash;1","382;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","389;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","390;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","391;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","392;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","393;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","394;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","395;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","396;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","397;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","398;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","399;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","411;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","412;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","413;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","414;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","415;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","416;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","417;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","418;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","425;entity.generic.big_fall":"1;damage/fallbig;1","426;entity.generic.burn":"1;random/fizz;1","427;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","428;entity.generic.drink":"1;random/drink;1","429;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","430;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","431;entity.generic.extinguish_fire":"1;random/fizz;1","432;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","433;entity.generic.small_fall":"1;damage/fallsmall;1","434;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","435;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","436;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","437;entity.ghast.death":"1;mob/ghast/death;1","438;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","439;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","440;entity.ghast.shoot":"1;mob/ghast/fireball4;1","441;entity.ghast.warn":"1;mob/ghast/charge;1","453;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","454;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","455;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","456;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","457;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","458;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","459;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","460;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","461;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","462;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","463;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","464;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","470;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","465;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","466;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","467;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","468;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","469;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","472;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","473;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","474;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","475;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","476;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","477;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","478;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","479;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","481;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","494;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","495;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","496;entity.guardian.attack":"1;mob/guardian/attack_loop;1","497;entity.guardian.death":"1;mob/guardian/guardian_death;1","498;entity.guardian.death_land":"1;mob/guardian/land_death;1","499;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","500;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","501;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","508;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","509;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","510;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","511;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","512;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","513;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","514;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","515;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","532;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","533;entity.horse.angry":"1;mob/horse/angry1;1","534;entity.horse.armor":"1;mob/horse/armor;1","535;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","536;entity.horse.death":"1;mob/horse/death;1","537;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","538;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","539;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","540;entity.horse.jump":"1;mob/horse/jump;1","541;entity.horse.land":"1;mob/horse/land;1","542;entity.horse.saddle":"1;mob/horse/leather;1","543;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","544;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","545;entity.hostile.big_fall":"1;damage/fallbig;1","546;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","547;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","548;entity.hostile.small_fall":"1;damage/fallsmall;1","549;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","550;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","551;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","552;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","553;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","554;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","555;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","556;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","557;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","558;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","559;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","560;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","561;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","562;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","566;entity.iron_golem.attack":"1;mob/irongolem/throw;1","567;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","568;entity.iron_golem.death":"1;mob/irongolem/death;1","569;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","570;entity.iron_golem.repair":"1;mob/irongolem/repair;1","571;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","579;entity.item.break":"1;random/break;1","580;entity.item.pickup":"1;random/pop;1","574;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","575;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","576;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","577;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","578;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","596;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","597;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","599;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","600;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","601;entity.lingering_potion.throw":"1;random/bow;1","602;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","603;entity.llama.angry":"1;mob/llama/angry1;1","604;entity.llama.chest":"1;mob/chicken/plop;1","605;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","606;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","607;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","608;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","609;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","610;entity.llama.swag":"1;mob/llama/swag;1","618;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","611;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","619;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","620;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","621;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","622;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","623;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","639;entity.minecart.inside":"1;minecart/inside;1","638;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","640;entity.minecart.riding":"1;minecart/base;1","641;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","642;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","643;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","645;entity.mooshroom.shear":"1;mob/sheep/shear;1","644;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","671;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","672;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","673;entity.mule.chest":"1;mob/chicken/plop;1","674;entity.mule.death":"1;mob/horse/donkey/death;1","675;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","676;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","785;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","786;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","784;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","787;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","788;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","796;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","791;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","799;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","795;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","792;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","793;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","798;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","789;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","790;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","794;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","797;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","800;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","801;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","802;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","803;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","804;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","805;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","806;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","807;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","808;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","809;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","810;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","811;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","812;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","813;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","814;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","815;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","816;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","817;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","818;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","819;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","820;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","821;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","822;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","823;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","824;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","825;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","826;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","827;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","828;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","829;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","830;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","831;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","832;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","833;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","834;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","835;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","836;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","837;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","838;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","839;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","840;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","841;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","842;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","843;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","844;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","845;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","846;entity.pig.death":"1;mob/pig/death;1","847;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","848;entity.pig.saddle":"1;mob/horse/leather;1","849;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","850;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","851;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","852;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","853;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","859;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","854;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","856;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","855;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","857;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","858;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","860;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","861;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","865;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","862;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","863;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","864;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","866;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","867;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","868;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","869;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","872;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","873;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","874;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","875;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","876;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","877;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","878;entity.player.big_fall":"1;damage/fallbig;1","879;entity.player.breath":"1;random/breath;1","880;entity.player.burp":"1;random/burp;1","881;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","882;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","883;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","884;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","885;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","886;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","887;entity.player.levelup":"1;random/levelup;1","888;entity.player.small_fall":"1;damage/fallsmall;1","889;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","890;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","891;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","892;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","893;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","894;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","895;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","896;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","897;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","912;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","913;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","914;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","915;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","916;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","917;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","919;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","920;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","921;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","922;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","923;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","925;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","926;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","927;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","928;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","929;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","932;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","930;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","931;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","954;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","955;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","956;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","998;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","999;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1000;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1001;entity.sheep.shear":"1;mob/sheep/shear;1","1002;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1011;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1016;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1017;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1018;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1019;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1020;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1021;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1022;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1014;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1015;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1023;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1024;entity.silverfish.death":"1;mob/silverfish/kill;1","1025;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1026;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1027;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1028;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1029;entity.skeleton.death":"1;mob/skeleton/death;1","1038;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1039;entity.skeleton.shoot":"1;random/bow;1","1040;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1030;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1034;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1031;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1035;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1032;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1036;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1037;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1033;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1041;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1042;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1083;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1043;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1084;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1044;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1085;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1045;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1086;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1093;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1094;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1096;entity.snow_golem.shear":"1;mob/sheep/shear;1","1095;entity.snow_golem.shoot":"1;random/bow;1","1089;entity.snowball.throw":"1;random/bow;1","1100;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1101;entity.spider.death":"1;mob/spider/death;1","1102;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1103;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1104;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1105;entity.splash_potion.throw":"1;random/bow;1","1108;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1109;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1110;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1111;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1121;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1122;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1123;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1124;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1074;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1077;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1081;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1075;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1078;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1076;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1082;entity.strider.saddle":"1;mob/horse/leather;1","1079;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1080;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1128;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1129;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1130;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1131;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1133;entity.tnt.primed":"1;random/fuse;1","1148;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1149;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1150;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1156;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1157;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1158;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1159;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1160;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1161;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1162;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1163;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1164;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1165;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1166;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1167;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1177;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1178;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1179;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1180;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1181;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1182;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1183;entity.villager.death":"1;mob/villager/death;1","1184;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1185;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1186;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1188;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1189;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1190;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1191;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1192;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1193;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1194;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1195;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1196;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1197;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1198;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1199;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1200;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1187;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1201;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1202;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1203;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1204;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1211;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1212;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1213;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1214;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1215;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1216;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1217;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1218;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1219;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1220;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1221;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1222;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1223;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1224;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1225;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1226;entity.warden.dig":"1;mob/warden/dig;1","1227;entity.warden.emerge":"1;mob/warden/emerge;1","1228;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1229;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1230;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1231;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1232;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1233;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1234;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1235;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1236;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1237;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1238;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1239;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1240;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1249;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1250;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1251;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1252;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1253;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1254;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1255;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1256;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1257;entity.wither.death":"1;mob/wither/death;1","1258;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1259;entity.wither.shoot":"1;mob/wither/shoot;1","1264;entity.wither.spawn":"1;mob/wither/spawn;1","1260;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1261;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1262;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1263;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1265;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1266;entity.wolf.death":"1;mob/wolf/death;1","1267;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1268;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1269;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1270;entity.wolf.pant":"1;mob/wolf/panting;1","1271;entity.wolf.shake":"1;mob/wolf/shake;1","1272;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1273;entity.wolf.whine":"1;mob/wolf/whine;1","1292;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1293;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1294;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1295;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1296;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1297;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1298;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1300;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1299;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1301;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1302;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1303;entity.zombie.death":"1;mob/zombie/death;1","1304;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1308;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1309;entity.zombie.infect":"1;mob/zombie/infect;1","1314;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1305;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1306;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1307;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1315;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1316;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1317;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1318;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1319;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1320;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1310;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1311;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1312;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1313;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","924;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","53;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","54;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","55;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","56;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","57;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","58;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","59;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","60;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","61;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","70;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","69;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","71;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","143;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","144;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","145;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","147;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","148;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","149;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","156;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","157;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","158;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","159;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","160;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","161;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","162;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","163;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","164;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","165;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","166;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","167;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","168;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","169;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","170;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","215;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","249;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","250;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","251;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","252;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","253;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","254;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","255;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","256;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","257;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","318;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","328;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","368;item.firecharge.use":"1;mob/ghast/fireball4;1","383;item.flintandsteel.use":"1;fire/ignite;1","452;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","507;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","523;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","522;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","563;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","617;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","722;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1003;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1004;item.shield.break":"1;random/break;1","1010;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1107;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1106;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1134;item.totem.use":"1;item/totem/use_totem;1","1135;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1136;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1137;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1138;item.trident.riptide_1":"1;item/trident/riptide1;1","1139;item.trident.riptide_2":"1;item/trident/riptide2;1","1140;item.trident.riptide_3":"1;item/trident/riptide3;1","1141;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1142;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","677;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","678;music.credits":"1;music/game/end/credits;1","694;music.dragon":"1;music/game/end/boss;1","695;music.end":"1;music/game/end/end;1","696;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","697;music.menu":"1;music/game/swamp/aerie;1,1;music/game/swamp/firebugs;1,1;music/game/swamp/labyrinthine;1,1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","698;music.nether.basalt_deltas":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","699;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;7,1;music/game/nether/nether2;7,1;music/game/nether/nether3;7,1;music/game/nether/nether4;7","709;music.nether.nether_wastes":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/nether_wastes/rubedo;6","712;music.nether.soul_sand_valley":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","700;music.overworld.deep_dark":"1;music/game/ancestry;1","701;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal4;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/wending;2","710;music.overworld.frozen_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2","702;music.overworld.grove":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano3;1,0.4;music/game/wending;1","703;music.overworld.jagged_peaks":"0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;1,0.4;music/game/wending;1","706;music.overworld.jungle_and_forest":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,1;music/game/swamp/aerie;1,1;music/game/swamp/firebugs;1,1;music/game/swamp/labyrinthine;1","704;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/calm1;2,1;music/game/calm2;2,1;music/game/calm3;2,1;music/game/floating_dream;2,0.4;music/game/one_more_day;2,1;music/game/piano3;2,1;music/game/swamp/aerie;2,1;music/game/swamp/firebugs;2,1;music/game/swamp/labyrinthine;2","708;music.overworld.meadow":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,0.4;music/game/one_more_day;2","707;music.overworld.old_growth_taiga":"1;music/game/calm1;3,1;music/game/calm2;3,1;music/game/calm3;3,0.4;music/game/comforting_memories;3,0.4;music/game/floating_dream;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,0.4;music/game/left_to_bloom;3,1;music/game/nuance1;3,1;music/game/nuance2;3,0.4;music/game/one_more_day;3,1;music/game/piano1;3,1;music/game/piano2;3,1;music/game/piano3;3,1;music/game/swamp/aerie;3,1;music/game/swamp/firebugs;3,1;music/game/swamp/labyrinthine;3","711;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1","713;music.overworld.stony_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2,0.4;music/game/wending;1","705;music.overworld.swamp":"1;music/game/swamp/aerie;1,1;music/game/swamp/firebugs;1,1;music/game/swamp/labyrinthine;1","715;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","680;music_disc.11":"1;records/11;1","681;music_disc.13":"1;records/13;1","679;music_disc.5":"1;records/5;1","682;music_disc.blocks":"1;records/blocks;1","683;music_disc.cat":"1;records/cat;1","684;music_disc.chirp":"1;records/chirp;1","685;music_disc.far":"1;records/far;1","686;music_disc.mall":"1;records/mall;1","687;music_disc.mellohi":"1;records/mellohi;1","693;music_disc.otherside":"1;records/otherside;1","688;music_disc.pigstep":"1;records/pigstep;1","689;music_disc.stal":"1;records/stal;1","690;music_disc.strad":"1;records/strad;1","691;music_disc.wait":"1;records/wait;1","692;music_disc.ward":"1;records/ward;1","1068;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1168;ui.button.click":"1;random/click_stereo;1","1171;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1169;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1170;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1173;ui.stonecutter.select_recipe":"1;random/click;1","1172;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1174;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1175;ui.toast.in":"0.4;ui/toast/in;1","1176;ui.toast.out":"0.4;ui/toast/out;1","1242;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1243;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.19.3":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","35;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","36;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","37;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","38;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","39;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","40;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","44;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","42;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","41;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","45;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","46;block.anvil.destroy":"1;random/anvil_break;1","47;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","48;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.land":"1;random/anvil_land;1","50;block.anvil.place":"1;random/anvil_land;1","51;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","52;block.anvil.use":"1;random/anvil_use;1","79;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","80;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","81;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","82;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","83;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","84;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","85;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","86;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","87;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","88;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","89;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","90;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","91;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","92;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","93;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","94;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","95;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","96;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","97;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","98;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","99;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","100;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","101;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","106;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","107;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","102;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","103;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","110;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","111;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","553;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","554;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","555;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","556;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","552;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","108;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","109;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","104;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","105;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","112;block.barrel.close":"1;block/barrel/close;1","113;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","114;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","118;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","117;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","116;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","115;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","124;block.beacon.activate":"1;block/beacon/activate;1","125;block.beacon.ambient":"0.9;block/beacon/ambient;1","126;block.beacon.deactivate":"1;block/beacon/deactivate;1","127;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","134;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","135;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","136;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","137;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","138;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","140;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","139;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","141;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","142;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","143;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","144;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","145;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","342;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","343;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","161;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","153;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","154;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","155;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","156;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","157;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","165;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","166;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","167;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","168;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","169;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","170;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","186;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","187;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","191;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","190;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","189;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","188;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","203;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","204;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","205;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","206;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","207;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","208;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","209;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","210;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","220;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","221;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","222;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","225;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","223;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","224;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","226;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","227;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","228;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","229;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","230;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","231;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","232;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","233;block.chest.open":"1;block/chest/open;1","239;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","240;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","241;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","242;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","243;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","245;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","246;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","247;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","244;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","248;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","249;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","255;block.comparator.click":"1;random/click;1","256;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","257;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","258;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","259;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","260;block.conduit.activate":"0.9;block/conduit/activate;1","261;block.conduit.ambient":"1;block/conduit/ambient;1","262;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","263;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","264;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","265;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","269;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","268;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","267;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","266;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","270;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","271;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","272;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","273;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","274;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","283;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","298;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","299;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","300;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","301;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","302;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","293;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","294;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","295;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","296;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","297;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","303;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","304;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","305;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","306;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","307;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","308;block.dispenser.dispense":"1;random/click;1","309;block.dispenser.fail":"1;random/click;1","310;block.dispenser.launch":"1;random/bow;1","327;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","331;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","330;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","329;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","328;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","364;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","387;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","389;block.end_portal.spawn":"1;block/end_portal/endportal;1","388;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","365;block.ender_chest.close":"1;block/enderchest/close;1","366;block.ender_chest.open":"1;block/enderchest/open;1","401;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","402;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","412;block.fire.ambient":"1;fire/fire;1","413;block.fire.extinguish":"1;random/fizz;1","419;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","420;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","421;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","422;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","423;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","435;block.froglight.break":"1;block/froglight/break1;1,1;block/froglight/break2;1,1;block/froglight/break3;1,1;block/froglight/break4;1","436;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","437;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","438;block.froglight.place":"1;block/froglight/break1;1,1;block/froglight/break2;1,1;block/froglight/break3;1,1;block/froglight/break4;1","439;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","441;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","442;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","443;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","444;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","445;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","440;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","808;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","810;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","809;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","459;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","477;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","478;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","479;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","480;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","481;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","482;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","483;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","484;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","485;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","486;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","517;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","518;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","519;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","520;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","521;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","522;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","523;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","524;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","525;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","526;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","527;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","528;block.growing_plant.crop":"1;mob/sheep/shear;1","537;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","538;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","539;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","540;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","541;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","543;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","544;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","545;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","546;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","542;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","566;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","567;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","568;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","569;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","570;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","571;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","614;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","615;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","622;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","623;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","631;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","632;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","633;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","634;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","635;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","636;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","637;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","638;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","639;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","640;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","641;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","642;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","643;block.lava.ambient":"1;liquid/lava;1","644;block.lava.extinguish":"1;random/fizz;1","645;block.lava.pop":"1;liquid/lavapop;1","648;block.lever.click":"1;random/click;1","1281;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","662;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","666;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","665;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","664;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","663;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","674;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","675;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","676;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","677;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","678;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","679;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","680;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","681;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","682;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","683;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","684;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","687;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","685;block.metal_pressure_plate.click_off":"0.3;random/click;1","686;block.metal_pressure_plate.click_on":"0.3;random/click;1","701;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","702;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","703;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","704;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","705;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","696;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","697;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","698;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","699;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","700;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","706;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","707;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","708;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","709;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","710;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","711;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","712;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","713;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","714;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","715;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","716;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","717;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","718;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","719;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","720;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","766;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","770;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","769;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","768;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","767;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1004;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1005;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1006;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1007;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1008;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1009;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1010;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1011;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1012;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1013;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","803;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","807;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","806;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","805;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","804;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","771;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","773;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","774;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","775;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","776;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","777;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","782;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","783;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","778;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","779;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","786;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","787;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","548;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","549;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","550;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","551;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","547;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","784;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","785;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","780;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","781;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","823;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","827;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","826;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","825;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","824;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","828;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","832;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","831;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","830;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","829;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","848;block.note_block.banjo":"1;note/banjo;1","833;block.note_block.basedrum":"1;note/bd;1","834;block.note_block.bass":"1;note/bassattack;1","835;block.note_block.bell":"1;note/bell;1","847;block.note_block.bit":"1;note/bit;1","836;block.note_block.chime":"1;note/icechime;1","845;block.note_block.cow_bell":"1;note/cow_bell;1","846;block.note_block.didgeridoo":"1;note/didgeridoo;1","837;block.note_block.flute":"1;note/flute;1","838;block.note_block.guitar":"1;note/guitar;1","839;block.note_block.harp":"1;note/harp2;1","840;block.note_block.hat":"1;note/hat;1","851;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","852;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","854;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","850;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","853;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","849;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","844;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","841;block.note_block.pling":"1;note/pling;1","842;block.note_block.snare":"1;note/snare;1","843;block.note_block.xylophone":"1;note/xylobone;1","798;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","802;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","801;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","800;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","799;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","788;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","789;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","790;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","791;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","792;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","941;block.piston.contract":"1;tile/piston/in;1","942;block.piston.extend":"1;tile/piston/out;1","332;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","338;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","340;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","339;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","341;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","336;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","335;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","337;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","334;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","333;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","969;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","970;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","971;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","972;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","973;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","974;block.portal.ambient":"1;portal/portal;1","975;block.portal.travel":"1;portal/travel;1","976;block.portal.trigger":"1;portal/trigger;1","977;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","978;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","979;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","980;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","981;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","989;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1014;block.redstone_torch.burnout":"1;random/fizz;1","1015;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1016;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1017;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1018;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1019;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1020;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1021;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1022;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1023;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","454;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","458;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","457;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","456;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","455;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1028;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1029;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1030;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1031;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1032;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1033;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1034;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1035;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1036;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1037;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1040;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1039;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1041;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1042;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1043;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1038;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1044;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1045;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1046;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1047;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1048;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1049;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1050;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1053;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1051;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1052;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1054;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1055;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1056;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1057;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1058;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1059;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1060;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1061;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1062;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1063;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1064;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1065;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1066;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1067;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1068;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1076;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1080;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1079;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1078;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1077;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1083;block.shulker_box.close":"1;block/shulker_box/close;1","1084;block.shulker_box.open":"1;block/shulker_box/open;1","1117;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1118;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1119;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1120;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1121;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1122;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1123;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1124;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1125;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1126;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1127;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1128;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1158;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1159;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1161;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1162;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1168;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1169;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1170;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1129;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1133;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1132;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1131;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1130;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1134;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1138;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1137;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1136;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1135;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1140;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1141;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1142;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1143;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1144;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","793;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","797;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","796;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","795;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","794;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1183;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1186;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1187;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1188;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1191;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1184;block.stone_button.click_off":"0.3;random/click;1","1185;block.stone_button.click_on":"0.3;random/click;1","1189;block.stone_pressure_plate.click_off":"0.3;random/click;1","1190;block.stone_pressure_plate.click_on":"0.3;random/click;1","1196;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1198;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1197;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","1214;block.tripwire.attach":"1;random/click;1","1215;block.tripwire.click_off":"1;random/click;1","1216;block.tripwire.click_on":"1;random/click;1","1217;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1222;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1226;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1225;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1224;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1223;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1276;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1277;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1278;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1279;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1280;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","818;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","822;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","821;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","820;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","819;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1312;block.water.ambient":"1;liquid/water;1","813;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","817;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","816;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","815;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","814;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1315;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1316;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1317;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1318;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1319;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1349;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1352;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1353;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1354;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1357;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1350;block.wooden_button.click_off":"0.3;random/wood_click;1","1351;block.wooden_button.click_on":"0.3;random/wood_click;1","1345;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1346;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1355;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1356;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1347;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1348;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1358;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1359;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1360;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1361;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1362;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1203;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","62;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","63;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","64;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","65;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","66;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","67;entity.arrow.hit_player":"1;random/successful_hit;1","68;entity.arrow.shoot":"1;random/bow;1","72;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","73;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","74;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","75;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","76;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","77;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","78;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","119;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","120;entity.bat.death":"1;mob/bat/death;1","121;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","122;entity.bat.loop":"1;mob/bat/loop;1","123;entity.bat.takeoff":"1;mob/bat/takeoff;1","128;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","129;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","131;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","130;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","133;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","132;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","146;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","147;entity.blaze.burn":"1;fire/fire;1","148;entity.blaze.death":"1;mob/blaze/death;1","149;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","150;entity.blaze.shoot":"1;mob/ghast/fireball4;1","151;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","152;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","192;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","193;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","194;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","195;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","196;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","197;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","198;entity.camel.saddle":"1;entity.horse.saddle;1","199;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","200;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","201;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","202;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","211;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","216;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","213;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","214;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","215;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","217;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","218;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","219;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","212;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","234;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","235;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","236;entity.chicken.egg":"1;mob/chicken/plop;1","237;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","238;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","252;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","253;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","254;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","275;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","276;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","277;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","278;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","279;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","280;entity.creeper.death":"1;mob/creeper/death;1","281;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","282;entity.creeper.primed":"1;random/fuse;1","311;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","312;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","313;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","314;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","315;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","316;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","317;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","318;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","319;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","320;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","321;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","322;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","323;entity.donkey.chest":"1;mob/chicken/plop;1","324;entity.donkey.death":"1;mob/horse/donkey/death;1","325;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","326;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","369;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","344;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","345;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","346;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","347;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","348;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","349;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","350;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","351;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","352;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","354;entity.egg.throw":"1;random/bow;1","355;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","356;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","357;entity.elder_guardian.curse":"1;mob/guardian/curse;1","358;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","359;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","360;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","361;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","362;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","367;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","368;entity.ender_dragon.death":"1;mob/enderdragon/end;1","370;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","371;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","372;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","373;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","374;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","375;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","386;entity.ender_pearl.throw":"1;random/bow;1","376;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","377;entity.enderman.death":"1;mob/endermen/death;1","378;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","379;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","380;entity.enderman.stare":"1;mob/endermen/stare;1","381;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","382;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","383;entity.endermite.death":"1;mob/silverfish/kill;1","384;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","385;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","390;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","391;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","392;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","393;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","395;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","396;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","397;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","398;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","394;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","399;entity.experience_bottle.throw":"1;random/bow;1","400;entity.experience_orb.pickup":"1;random/orb;1","404;entity.firework_rocket.blast":"1;fireworks/blast1;1","405;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","406;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","407;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","408;entity.firework_rocket.launch":"1;fireworks/launch1;1","409;entity.firework_rocket.shoot":"1;random/bow;1","410;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","411;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","414;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","415;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","416;entity.fishing_bobber.splash":"1;random/splash;1","417;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","424;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","425;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","426;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","427;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","428;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","429;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","430;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","431;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","432;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","433;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","434;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","446;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","447;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","448;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","449;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","450;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","451;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","452;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","453;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","460;entity.generic.big_fall":"1;damage/fallbig;1","461;entity.generic.burn":"1;random/fizz;1","462;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","463;entity.generic.drink":"1;random/drink;1","464;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","465;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","466;entity.generic.extinguish_fire":"1;random/fizz;1","467;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","468;entity.generic.small_fall":"1;damage/fallsmall;1","469;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","470;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","471;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","472;entity.ghast.death":"1;mob/ghast/death;1","473;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","474;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","475;entity.ghast.shoot":"1;mob/ghast/fireball4;1","476;entity.ghast.warn":"1;mob/ghast/charge;1","488;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","489;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","490;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","491;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","492;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","493;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","494;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","495;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","496;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","497;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","498;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","499;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","505;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","500;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","501;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","502;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","503;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","504;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","507;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","508;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","509;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","510;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","511;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","512;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","513;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","514;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","516;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","529;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","530;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","531;entity.guardian.attack":"1;mob/guardian/attack_loop;1","532;entity.guardian.death":"1;mob/guardian/guardian_death;1","533;entity.guardian.death_land":"1;mob/guardian/land_death;1","534;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","535;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","536;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","558;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","559;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","560;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","561;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","562;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","563;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","564;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","565;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","582;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","583;entity.horse.angry":"1;mob/horse/angry1;1","584;entity.horse.armor":"1;mob/horse/armor;1","585;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","586;entity.horse.death":"1;mob/horse/death;1","587;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","588;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","589;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","590;entity.horse.jump":"1;mob/horse/jump;1","591;entity.horse.land":"1;mob/horse/land;1","592;entity.horse.saddle":"1;mob/horse/leather;1","593;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","594;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","595;entity.hostile.big_fall":"1;damage/fallbig;1","596;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","597;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","598;entity.hostile.small_fall":"1;damage/fallsmall;1","599;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","600;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","601;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","602;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","603;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","604;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","605;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","606;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","607;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","608;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","609;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","610;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","611;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","612;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","616;entity.iron_golem.attack":"1;mob/irongolem/throw;1","617;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","618;entity.iron_golem.death":"1;mob/irongolem/death;1","619;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","620;entity.iron_golem.repair":"1;mob/irongolem/repair;1","621;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","629;entity.item.break":"1;random/break;1","630;entity.item.pickup":"1;random/pop;1","624;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","625;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","626;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","627;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","628;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","646;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","647;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","649;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","650;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","651;entity.lingering_potion.throw":"1;random/bow;1","652;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","653;entity.llama.angry":"1;mob/llama/angry1;1","654;entity.llama.chest":"1;mob/chicken/plop;1","655;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","656;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","657;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","658;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","659;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","660;entity.llama.swag":"1;mob/llama/swag;1","668;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","661;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","669;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","670;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","671;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","672;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","673;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","689;entity.minecart.inside":"1;minecart/inside;1","688;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","690;entity.minecart.riding":"1;minecart/base;1","691;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","692;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","693;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","695;entity.mooshroom.shear":"1;mob/sheep/shear;1","694;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","721;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","722;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","723;entity.mule.chest":"1;mob/chicken/plop;1","724;entity.mule.death":"1;mob/horse/donkey/death;1","725;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","726;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","856;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","857;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","855;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","858;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","859;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","867;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","862;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","870;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","866;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","863;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","864;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","869;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","860;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","861;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","865;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","868;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","871;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","872;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","873;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","874;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","875;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","876;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","877;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","878;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","879;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","880;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","881;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","882;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","883;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","884;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","885;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","886;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","887;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","888;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","889;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","890;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","891;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","892;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","893;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","894;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","895;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","896;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","897;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","898;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","899;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","900;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","901;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","902;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","903;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","904;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","905;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","906;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","907;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","908;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","909;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","910;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","911;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","912;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","913;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","914;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","915;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","916;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","917;entity.pig.death":"1;mob/pig/death;1","918;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","919;entity.pig.saddle":"1;mob/horse/leather;1","920;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","921;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","922;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","923;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","924;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","930;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","925;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","927;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","926;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","928;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","929;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","931;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","932;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","936;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","933;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","934;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","935;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","937;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","938;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","939;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","940;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","943;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","944;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","945;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","946;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","947;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","948;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","949;entity.player.big_fall":"1;damage/fallbig;1","950;entity.player.breath":"1;random/breath;1","951;entity.player.burp":"1;random/burp;1","952;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","953;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","954;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","955;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","956;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","957;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","958;entity.player.levelup":"1;random/levelup;1","959;entity.player.small_fall":"1;damage/fallsmall;1","960;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","961;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","962;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","963;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","964;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","965;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","966;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","967;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","968;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","983;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","984;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","985;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","986;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","987;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","988;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","990;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","991;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","992;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","993;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","994;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","996;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","997;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","998;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","999;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1000;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1003;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1001;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1002;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1025;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1026;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1027;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1069;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1070;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1071;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1072;entity.sheep.shear":"1;mob/sheep/shear;1","1073;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1082;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1087;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1088;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1089;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1090;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1091;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1092;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1093;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1085;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1086;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1094;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1095;entity.silverfish.death":"1;mob/silverfish/kill;1","1096;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1097;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1098;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1099;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1100;entity.skeleton.death":"1;mob/skeleton/death;1","1109;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1110;entity.skeleton.shoot":"1;random/bow;1","1111;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1101;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1105;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1102;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1106;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1103;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1107;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1108;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1104;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1112;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1113;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1154;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1114;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1155;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1115;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1156;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1116;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1157;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1164;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1165;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1167;entity.snow_golem.shear":"1;mob/sheep/shear;1","1166;entity.snow_golem.shoot":"1;random/bow;1","1160;entity.snowball.throw":"1;random/bow;1","1171;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1172;entity.spider.death":"1;mob/spider/death;1","1173;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1174;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1175;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1176;entity.splash_potion.throw":"1;random/bow;1","1179;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1180;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1181;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1182;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1192;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1193;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1194;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1195;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1145;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1148;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1152;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1146;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1149;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1147;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1153;entity.strider.saddle":"1;mob/horse/leather;1","1150;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1151;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1199;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1200;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1201;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1202;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1204;entity.tnt.primed":"1;random/fuse;1","1219;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1220;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1221;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1227;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1228;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1229;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1230;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1231;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1232;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1233;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1234;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1235;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1236;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1237;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1238;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1248;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1249;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1250;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1251;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1252;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1253;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1254;entity.villager.death":"1;mob/villager/death;1","1255;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1256;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1257;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1259;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1260;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1261;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1262;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1263;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1264;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1265;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1266;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1267;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1268;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1269;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1270;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1271;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1258;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1272;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1273;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1274;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1275;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1282;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1283;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1284;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1285;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1286;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1287;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1288;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1289;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1290;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1291;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1292;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1293;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1294;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1295;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1296;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1297;entity.warden.dig":"1;mob/warden/dig;1","1298;entity.warden.emerge":"1;mob/warden/emerge;1","1299;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1300;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1301;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1302;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1303;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1304;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1305;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1306;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1307;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1308;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1309;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1310;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1311;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1320;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1321;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1322;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1323;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1324;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1325;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1326;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1327;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1328;entity.wither.death":"1;mob/wither/death;1","1329;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1330;entity.wither.shoot":"1;mob/wither/shoot;1","1335;entity.wither.spawn":"1;mob/wither/spawn;1","1331;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1332;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1333;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1334;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1336;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1337;entity.wolf.death":"1;mob/wolf/death;1","1338;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1339;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1340;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1341;entity.wolf.pant":"1;mob/wolf/panting;1","1342;entity.wolf.shake":"1;mob/wolf/shake;1","1343;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1344;entity.wolf.whine":"1;mob/wolf/whine;1","1363;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1364;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1365;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1366;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1367;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1368;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1369;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1371;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1370;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1372;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1373;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1374;entity.zombie.death":"1;mob/zombie/death;1","1375;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1379;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1380;entity.zombie.infect":"1;mob/zombie/infect;1","1385;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1376;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1377;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1378;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1386;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1387;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1388;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1389;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1390;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1391;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1381;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1382;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1383;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1384;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","995;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","53;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","54;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","55;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","56;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","57;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","58;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","59;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","60;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","61;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","70;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","69;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","71;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","158;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","159;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","160;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","162;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","163;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","164;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","171;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","172;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","173;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","174;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","175;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","176;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","177;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","178;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","179;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","180;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","181;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","182;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","183;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","184;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","185;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","250;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","284;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","285;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","286;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","287;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","288;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","289;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","290;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","291;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","292;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","353;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","363;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","403;item.firecharge.use":"1;mob/ghast/fireball4;1","418;item.flintandsteel.use":"1;fire/ignite;1","487;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","557;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","573;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","572;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","613;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","667;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","772;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1074;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1075;item.shield.break":"1;random/break;1","1081;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1178;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1177;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1205;item.totem.use":"1;item/totem/use_totem;1","1206;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1207;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1208;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1209;item.trident.riptide_1":"1;item/trident/riptide1;1","1210;item.trident.riptide_2":"1;item/trident/riptide2;1","1211;item.trident.riptide_3":"1;item/trident/riptide3;1","1212;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1213;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","727;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","728;music.credits":"1;music/game/end/credits;1","744;music.dragon":"1;music/game/end/boss;1","745;music.end":"1;music/game/end/end;1","746;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","747;music.menu":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1,1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","748;music.nether.basalt_deltas":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","749;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;7,1;music/game/nether/nether2;7,1;music/game/nether/nether3;7,1;music/game/nether/nether4;7","759;music.nether.nether_wastes":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/nether_wastes/rubedo;6","762;music.nether.soul_sand_valley":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","750;music.overworld.deep_dark":"1;music/game/ancestry;1","751;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal4;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/wending;2","760;music.overworld.frozen_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2","752;music.overworld.grove":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano3;1,0.4;music/game/wending;1","753;music.overworld.jagged_peaks":"0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;1,0.4;music/game/wending;1","756;music.overworld.jungle_and_forest":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","754;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/calm1;2,1;music/game/calm2;2,1;music/game/calm3;2,1;music/game/floating_dream;2,0.4;music/game/one_more_day;2,1;music/game/piano3;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2","758;music.overworld.meadow":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,0.4;music/game/one_more_day;2","757;music.overworld.old_growth_taiga":"1;music/game/calm1;3,1;music/game/calm2;3,1;music/game/calm3;3,0.4;music/game/comforting_memories;3,0.4;music/game/floating_dream;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,0.4;music/game/left_to_bloom;3,1;music/game/nuance1;3,1;music/game/nuance2;3,0.4;music/game/one_more_day;3,1;music/game/piano1;3,1;music/game/piano2;3,1;music/game/piano3;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3","761;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1","763;music.overworld.stony_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2,0.4;music/game/wending;1","755;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","765;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","730;music_disc.11":"1;records/11;1","731;music_disc.13":"1;records/13;1","729;music_disc.5":"1;records/5;1","732;music_disc.blocks":"1;records/blocks;1","733;music_disc.cat":"1;records/cat;1","734;music_disc.chirp":"1;records/chirp;1","735;music_disc.far":"1;records/far;1","736;music_disc.mall":"1;records/mall;1","737;music_disc.mellohi":"1;records/mellohi;1","743;music_disc.otherside":"1;records/otherside;1","738;music_disc.pigstep":"1;records/pigstep;1","739;music_disc.stal":"1;records/stal;1","740;music_disc.strad":"1;records/strad;1","741;music_disc.wait":"1;records/wait;1","742;music_disc.ward":"1;records/ward;1","1139;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1239;ui.button.click":"1;random/click_stereo;1","1242;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1240;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1241;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1244;ui.stonecutter.select_recipe":"1;random/click;1","1243;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1245;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1246;ui.toast.in":"0.4;ui/toast/in;1","1247;ui.toast.out":"0.4;ui/toast/out;1","1313;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1314;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.19.4":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","35;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","36;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","37;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","38;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","39;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","40;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","44;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","42;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","41;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","45;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","46;block.anvil.destroy":"1;random/anvil_break;1","47;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","48;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.land":"1;random/anvil_land;1","50;block.anvil.place":"1;random/anvil_land;1","51;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","52;block.anvil.use":"1;random/anvil_use;1","79;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","80;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","81;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","82;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","83;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","84;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","85;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","86;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","87;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","88;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","89;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","90;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","91;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","92;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","93;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","94;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","95;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","96;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","97;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","98;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","99;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","100;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","101;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","106;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","107;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","102;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","103;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","110;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","111;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","596;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","597;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","598;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","599;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","595;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","108;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","109;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","104;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","105;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","112;block.barrel.close":"1;block/barrel/close;1","113;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","114;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","118;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","117;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","116;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","115;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","124;block.beacon.activate":"1;block/beacon/activate;1","125;block.beacon.ambient":"0.9;block/beacon/ambient;1","126;block.beacon.deactivate":"1;block/beacon/deactivate;1","127;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","134;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","135;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","136;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","137;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","138;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","140;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","139;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","141;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","142;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","143;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","144;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","145;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","380;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","381;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","161;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","153;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","154;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","155;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","156;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","157;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","165;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","168;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","169;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","170;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","171;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","172;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","188;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","189;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","193;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","192;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","191;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","190;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","205;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","206;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","207;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","208;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","209;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","210;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","211;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","212;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","222;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","223;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","224;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","227;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","225;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","226;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","228;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","229;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","230;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","231;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","232;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","243;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","244;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","245;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","246;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","247;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","238;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","239;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","240;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","241;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","242;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","233;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","234;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","235;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","236;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","237;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","257;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","258;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","253;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","254;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","261;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","262;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","249;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","250;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","251;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","252;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","248;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","259;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","260;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","255;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","256;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","263;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","264;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","265;block.chest.open":"1;block/chest/open;1","271;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","272;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","273;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","274;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","275;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","277;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","278;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","279;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","276;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","280;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","281;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","287;block.comparator.click":"1;random/click;1","288;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","289;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","290;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","291;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","292;block.conduit.activate":"0.9;block/conduit/activate;1","293;block.conduit.ambient":"1;block/conduit/ambient;1","294;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","295;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","296;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","297;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","301;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","300;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","299;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","298;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","302;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","303;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","304;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","305;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","306;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","315;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","325;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","326;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","327;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","329;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","330;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1,1;block/decorated_pot/shatter6;1","328;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","336;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","337;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","338;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","339;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","340;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","331;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","332;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","333;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","334;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","335;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","341;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","342;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","343;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","344;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","345;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","346;block.dispenser.dispense":"1;random/click;1","347;block.dispenser.fail":"1;random/click;1","348;block.dispenser.launch":"1;random/bow;1","365;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","369;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","368;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","367;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","366;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","402;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","425;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","427;block.end_portal.spawn":"1;block/end_portal/endportal;1","426;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","403;block.ender_chest.close":"1;block/enderchest/close;1","404;block.ender_chest.open":"1;block/enderchest/open;1","439;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","440;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","450;block.fire.ambient":"1;fire/fire;1","451;block.fire.extinguish":"1;random/fizz;1","457;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","458;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","459;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","460;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","461;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","478;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","479;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","480;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","481;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","482;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","484;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","485;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","486;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","487;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","488;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","483;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","858;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","860;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","859;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","502;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","520;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","521;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","522;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","523;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","524;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","525;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","526;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","527;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","528;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","529;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","560;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","561;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","562;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","563;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","564;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","565;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","566;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","567;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","568;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","569;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","570;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","571;block.growing_plant.crop":"1;mob/sheep/shear;1","580;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","581;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","582;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","583;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","584;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","586;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","587;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","588;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","589;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","585;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","609;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","610;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","611;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","612;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","613;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","614;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","657;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","658;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","665;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","666;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","674;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","675;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","676;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","677;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","678;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","679;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","680;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","681;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","682;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","683;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","684;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","685;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","686;block.lava.ambient":"1;liquid/lava;1","687;block.lava.extinguish":"1;random/fizz;1","688;block.lava.pop":"1;liquid/lavapop;1","691;block.lever.click":"1;random/click;1","1343;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","705;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","709;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","708;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","707;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","706;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","717;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","718;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","719;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","720;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","721;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","722;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","723;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","724;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","725;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","726;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","727;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","730;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","728;block.metal_pressure_plate.click_off":"0.3;random/click;1","729;block.metal_pressure_plate.click_on":"0.3;random/click;1","749;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","750;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","751;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","752;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","753;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","739;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","740;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","741;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","742;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","743;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","754;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","755;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","756;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","757;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","758;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","759;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","760;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","761;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","762;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","763;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","764;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","765;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","766;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","767;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","768;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","815;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","819;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","818;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","817;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","816;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1054;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1055;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1056;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1057;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1058;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1059;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1060;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1061;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1062;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1063;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","853;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","857;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","856;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","855;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","854;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","820;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","822;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","823;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","824;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","825;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","826;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","831;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","832;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","827;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","828;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","835;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","836;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","591;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","592;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","593;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","594;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","590;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","833;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","834;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","829;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","830;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","873;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","877;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","876;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","875;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","874;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","878;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","882;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","881;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","880;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","879;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","898;block.note_block.banjo":"1;note/banjo;1","883;block.note_block.basedrum":"1;note/bd;1","884;block.note_block.bass":"1;note/bassattack;1","885;block.note_block.bell":"1;note/bell;1","897;block.note_block.bit":"1;note/bit;1","886;block.note_block.chime":"1;note/icechime;1","895;block.note_block.cow_bell":"1;note/cow_bell;1","896;block.note_block.didgeridoo":"1;note/didgeridoo;1","887;block.note_block.flute":"1;note/flute;1","888;block.note_block.guitar":"1;note/guitar;1","889;block.note_block.harp":"1;note/harp2;1","890;block.note_block.hat":"1;note/hat;1","901;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","902;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","904;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","900;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","903;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","899;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","894;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","891;block.note_block.pling":"1;note/pling;1","892;block.note_block.snare":"1;note/snare;1","893;block.note_block.xylophone":"1;note/xylobone;1","848;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","852;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","851;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","850;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","849;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","838;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","839;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","840;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","841;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","842;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","744;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","745;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","746;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","747;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","748;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","991;block.piston.contract":"1;tile/piston/in;1","992;block.piston.extend":"1;tile/piston/out;1","370;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","376;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","378;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","377;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","379;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","374;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","373;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","375;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","372;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","371;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1019;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1020;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1021;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1022;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1023;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1024;block.portal.ambient":"1;portal/portal;1","1025;block.portal.travel":"1;portal/travel;1","1026;block.portal.trigger":"1;portal/trigger;1","1027;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1028;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1029;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1030;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1031;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1039;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1064;block.redstone_torch.burnout":"1;random/fizz;1","1065;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1066;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1067;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1068;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1069;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1070;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1071;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1072;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1073;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","497;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","501;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","500;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","499;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","498;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1078;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1079;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1080;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1081;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1082;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1083;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1084;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1085;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1086;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1087;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1090;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1089;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1091;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1092;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1093;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1088;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1094;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1095;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1096;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1097;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1098;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1099;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1100;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1103;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1101;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1102;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1104;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1105;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1106;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1107;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1108;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1109;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1110;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1111;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1112;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1113;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1114;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1115;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1116;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1117;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1118;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1126;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1130;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1129;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1128;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1127;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1133;block.shulker_box.close":"1;block/shulker_box/close;1","1134;block.shulker_box.open":"1;block/shulker_box/open;1","1167;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1168;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1169;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1170;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1171;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1172;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1173;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1174;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1175;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1176;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1177;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1178;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1208;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1209;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1223;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1224;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1230;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1231;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1232;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1179;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1183;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1182;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1181;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1180;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1184;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1188;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1187;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1186;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1185;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1190;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1191;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1192;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1193;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1194;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","843;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","847;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","846;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","845;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","844;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1245;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1248;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1249;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1250;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1253;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1246;block.stone_button.click_off":"0.3;random/click;1","1247;block.stone_button.click_on":"0.3;random/click;1","1251;block.stone_pressure_plate.click_off":"0.3;random/click;1","1252;block.stone_pressure_plate.click_on":"0.3;random/click;1","473;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","477;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","476;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","475;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","474;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1258;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1260;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1259;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","1276;block.tripwire.attach":"1;random/click;1","1277;block.tripwire.click_off":"1;random/click;1","1278;block.tripwire.click_on":"1;random/click;1","1279;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1284;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1288;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1287;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1286;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1285;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1338;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1339;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1340;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1341;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1342;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","868;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","872;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","871;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","870;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","869;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1374;block.water.ambient":"1;liquid/water;1","863;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","867;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","866;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","865;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","864;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1377;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1378;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1379;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1380;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1381;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1415;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1416;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1417;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1418;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1419;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1411;block.wooden_button.click_off":"0.3;random/wood_click;1","1412;block.wooden_button.click_on":"0.3;random/wood_click;1","1407;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1408;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1413;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1414;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1409;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1410;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1420;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1421;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1422;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1423;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1424;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1265;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","62;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","63;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","64;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","65;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","66;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","67;entity.arrow.hit_player":"1;random/successful_hit;1","68;entity.arrow.shoot":"1;random/bow;1","72;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","73;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","74;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","75;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","76;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","77;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","78;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","119;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","120;entity.bat.death":"1;mob/bat/death;1","121;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","122;entity.bat.loop":"1;mob/bat/loop;1","123;entity.bat.takeoff":"1;mob/bat/takeoff;1","128;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","129;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","131;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","130;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","133;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","132;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","146;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","147;entity.blaze.burn":"1;fire/fire;1","148;entity.blaze.death":"1;mob/blaze/death;1","149;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","150;entity.blaze.shoot":"1;mob/ghast/fireball4;1","151;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","152;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","194;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","195;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","196;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","197;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","198;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","199;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","200;entity.camel.saddle":"1;entity.horse.saddle;1","201;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","202;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","203;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","204;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","213;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","218;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","215;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","216;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","217;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","219;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","220;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","221;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","214;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","266;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","267;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","268;entity.chicken.egg":"1;mob/chicken/plop;1","269;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","270;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","284;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","285;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","286;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","307;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","308;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","309;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","310;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","311;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","312;entity.creeper.death":"1;mob/creeper/death;1","313;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","314;entity.creeper.primed":"1;random/fuse;1","349;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","350;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","351;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","352;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","353;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","354;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","355;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","356;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","357;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","358;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","359;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","360;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","361;entity.donkey.chest":"1;mob/chicken/plop;1","362;entity.donkey.death":"1;mob/horse/donkey/death;1","363;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","364;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","407;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","382;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","383;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","384;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","385;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","386;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","387;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","388;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","389;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","390;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","392;entity.egg.throw":"1;random/bow;1","393;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","394;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","395;entity.elder_guardian.curse":"1;mob/guardian/curse;1","396;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","397;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","398;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","399;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","400;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","405;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","406;entity.ender_dragon.death":"1;mob/enderdragon/end;1","408;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","409;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","410;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","411;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","412;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","413;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","424;entity.ender_pearl.throw":"1;random/bow;1","414;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","415;entity.enderman.death":"1;mob/endermen/death;1","416;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","417;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","418;entity.enderman.stare":"1;mob/endermen/stare;1","419;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","420;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","421;entity.endermite.death":"1;mob/silverfish/kill;1","422;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","423;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","428;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","429;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","430;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","431;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","433;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","434;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","435;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","436;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","432;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","437;entity.experience_bottle.throw":"1;random/bow;1","438;entity.experience_orb.pickup":"1;random/orb;1","442;entity.firework_rocket.blast":"1;fireworks/blast1;1","443;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","444;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","445;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","446;entity.firework_rocket.launch":"1;fireworks/launch1;1","447;entity.firework_rocket.shoot":"1;random/bow;1","448;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","449;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","452;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","453;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","454;entity.fishing_bobber.splash":"1;random/splash;1","455;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","462;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","463;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","464;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","465;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","466;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","467;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","468;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","469;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","470;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","471;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","472;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","489;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","490;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","491;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","492;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","493;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","494;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","495;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","496;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","503;entity.generic.big_fall":"1;damage/fallbig;1","504;entity.generic.burn":"1;random/fizz;1","505;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","506;entity.generic.drink":"1;random/drink;1","507;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","508;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","509;entity.generic.extinguish_fire":"1;random/fizz;1","510;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","511;entity.generic.small_fall":"1;damage/fallsmall;1","512;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","513;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","514;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","515;entity.ghast.death":"1;mob/ghast/death;1","516;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","517;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","518;entity.ghast.shoot":"1;mob/ghast/fireball4;1","519;entity.ghast.warn":"1;mob/ghast/charge;1","531;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","532;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","533;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","534;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","535;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","536;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","537;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","538;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","539;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","540;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","541;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","542;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","548;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","543;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","544;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","545;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","546;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","547;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","550;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","551;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","552;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","553;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","554;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","555;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","556;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","557;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","559;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","572;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","573;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","574;entity.guardian.attack":"1;mob/guardian/attack_loop;1","575;entity.guardian.death":"1;mob/guardian/guardian_death;1","576;entity.guardian.death_land":"1;mob/guardian/land_death;1","577;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","578;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","579;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","601;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","602;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","603;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","604;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","605;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","606;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","607;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","608;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","625;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","626;entity.horse.angry":"1;mob/horse/angry1;1","627;entity.horse.armor":"1;mob/horse/armor;1","628;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","629;entity.horse.death":"1;mob/horse/death;1","630;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","631;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","632;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","633;entity.horse.jump":"1;mob/horse/jump;1","634;entity.horse.land":"1;mob/horse/land;1","635;entity.horse.saddle":"1;mob/horse/leather;1","636;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","637;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","638;entity.hostile.big_fall":"1;damage/fallbig;1","639;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","640;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","641;entity.hostile.small_fall":"1;damage/fallsmall;1","642;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","643;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","644;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","645;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","646;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","647;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","648;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","649;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","650;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","651;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","652;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","653;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","654;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","655;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","659;entity.iron_golem.attack":"1;mob/irongolem/throw;1","660;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","661;entity.iron_golem.death":"1;mob/irongolem/death;1","662;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","663;entity.iron_golem.repair":"1;mob/irongolem/repair;1","664;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","672;entity.item.break":"1;random/break;1","673;entity.item.pickup":"1;random/pop;1","667;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","668;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","669;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","670;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","671;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","689;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","690;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","692;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","693;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","694;entity.lingering_potion.throw":"1;random/bow;1","695;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","696;entity.llama.angry":"1;mob/llama/angry1;1","697;entity.llama.chest":"1;mob/chicken/plop;1","698;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","699;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","700;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","701;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","702;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","703;entity.llama.swag":"1;mob/llama/swag;1","711;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","704;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","712;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","713;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","714;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","715;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","716;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","732;entity.minecart.inside":"1;minecart/inside;1","731;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","733;entity.minecart.riding":"1;minecart/base;1","734;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","735;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","736;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","738;entity.mooshroom.shear":"1;mob/sheep/shear;1","737;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","769;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","770;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","771;entity.mule.chest":"1;mob/chicken/plop;1","772;entity.mule.death":"1;mob/horse/donkey/death;1","773;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","774;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","906;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","907;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","905;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","908;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","909;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","917;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","912;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","920;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","916;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","913;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","914;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","919;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","910;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","911;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","915;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","918;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","921;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","922;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","923;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","924;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","925;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","926;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","927;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","928;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","929;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","930;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","931;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","932;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","933;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","934;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","935;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","936;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","937;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","938;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","939;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","940;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","941;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","942;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","943;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","944;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","945;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","946;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","947;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","948;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","949;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","950;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","951;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","952;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","953;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","954;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","955;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","956;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","957;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","958;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","959;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","960;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","961;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","962;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","963;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","964;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","965;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","966;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","967;entity.pig.death":"1;mob/pig/death;1","968;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","969;entity.pig.saddle":"1;mob/horse/leather;1","970;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","971;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","972;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","973;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","974;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","980;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","975;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","977;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","976;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","978;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","979;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","981;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","982;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","986;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","983;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","984;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","985;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","987;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","988;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","989;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","990;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","993;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","994;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","995;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","996;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","997;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","998;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","999;entity.player.big_fall":"1;damage/fallbig;1","1000;entity.player.breath":"1;random/breath;1","1001;entity.player.burp":"1;random/burp;1","1002;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1003;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1004;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1005;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1006;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1007;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1008;entity.player.levelup":"1;random/levelup;1","1009;entity.player.small_fall":"1;damage/fallsmall;1","1010;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1011;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1012;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1013;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1014;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1015;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1016;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1017;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1018;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1033;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1034;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1035;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1036;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1037;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1038;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1040;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1041;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1042;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1043;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1044;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1046;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1047;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1048;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1049;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1050;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1053;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1051;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1052;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1075;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1076;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1077;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1119;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1120;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1121;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1122;entity.sheep.shear":"1;mob/sheep/shear;1","1123;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1132;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1137;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1138;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1139;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1140;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1141;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1142;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1143;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1135;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1136;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1144;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1145;entity.silverfish.death":"1;mob/silverfish/kill;1","1146;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1147;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1148;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1149;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1150;entity.skeleton.death":"1;mob/skeleton/death;1","1159;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1160;entity.skeleton.shoot":"1;random/bow;1","1161;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1151;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1155;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1152;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1156;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1153;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1157;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1158;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1154;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1162;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1163;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1204;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1164;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1205;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1165;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1206;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1166;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1207;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1214;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1219;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1220;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1215;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1211;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1221;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1213;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1212;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1216;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1218;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1217;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1210;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1226;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1227;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1229;entity.snow_golem.shear":"1;mob/sheep/shear;1","1228;entity.snow_golem.shoot":"1;random/bow;1","1222;entity.snowball.throw":"1;random/bow;1","1233;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1234;entity.spider.death":"1;mob/spider/death;1","1235;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1236;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1237;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1238;entity.splash_potion.throw":"1;random/bow;1","1241;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1242;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1243;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1244;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1254;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1255;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1256;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1257;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1195;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1198;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1202;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1196;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1199;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1197;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1203;entity.strider.saddle":"1;mob/horse/leather;1","1200;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1201;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1261;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1262;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1263;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1264;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1266;entity.tnt.primed":"1;random/fuse;1","1281;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1282;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1283;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1289;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1290;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1291;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1292;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1293;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1294;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1295;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1296;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1297;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1298;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1299;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1300;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1310;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1311;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1312;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1313;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1314;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1315;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1316;entity.villager.death":"1;mob/villager/death;1","1317;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1318;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1319;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1321;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1322;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1323;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1324;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1325;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1326;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1327;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1328;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1329;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1330;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1331;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1332;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1333;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1320;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1334;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1335;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1336;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1337;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1344;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1345;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1346;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1347;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1348;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1349;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1350;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1351;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1352;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1353;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1354;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1355;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1356;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1357;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1358;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1359;entity.warden.dig":"1;mob/warden/dig;1","1360;entity.warden.emerge":"1;mob/warden/emerge;1","1361;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1362;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1363;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1364;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1365;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1366;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1367;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1368;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1369;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1370;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1371;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1372;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1373;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1382;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1383;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1384;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1385;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1386;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1387;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1388;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1389;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1390;entity.wither.death":"1;mob/wither/death;1","1391;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1392;entity.wither.shoot":"1;mob/wither/shoot;1","1397;entity.wither.spawn":"1;mob/wither/spawn;1","1393;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1394;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1395;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1396;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1398;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1399;entity.wolf.death":"1;mob/wolf/death;1","1400;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1401;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1402;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1403;entity.wolf.pant":"1;mob/wolf/panting;1","1404;entity.wolf.shake":"1;mob/wolf/shake;1","1405;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1406;entity.wolf.whine":"1;mob/wolf/whine;1","1425;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1426;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1427;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1428;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1429;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1430;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1431;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1433;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1432;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1434;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1435;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1436;entity.zombie.death":"1;mob/zombie/death;1","1437;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1441;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1442;entity.zombie.infect":"1;mob/zombie/infect;1","1447;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1438;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1439;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1440;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1448;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1449;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1450;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1451;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1452;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1453;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1443;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1444;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1445;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1446;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1045;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","53;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","54;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","55;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","56;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","57;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","58;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","59;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","60;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","61;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","70;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","69;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","71;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","158;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","159;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","160;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","162;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","163;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","164;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","173;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","174;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","175;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","176;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","177;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","178;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","179;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","180;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","181;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","182;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","183;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","184;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","185;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","186;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","187;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","282;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","316;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","317;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","318;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","319;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","320;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","321;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","322;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","323;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","324;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","391;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","401;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","441;item.firecharge.use":"1;mob/ghast/fireball4;1","456;item.flintandsteel.use":"1;fire/ignite;1","530;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","600;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","616;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","615;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","656;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","710;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","821;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1124;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1125;item.shield.break":"1;random/break;1","1131;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1240;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1239;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1267;item.totem.use":"1;item/totem/use_totem;1","1268;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1269;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1270;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1271;item.trident.riptide_1":"1;item/trident/riptide1;1","1272;item.trident.riptide_2":"1;item/trident/riptide2;1","1273;item.trident.riptide_3":"1;item/trident/riptide3;1","1274;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1275;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","775;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","776;music.credits":"1;music/game/end/credits;1","792;music.dragon":"1;music/game/end/boss;1","793;music.end":"1;music/game/end/end;1","794;music.game":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","795;music.menu":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1,1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","796;music.nether.basalt_deltas":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","797;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;7,1;music/game/nether/nether2;7,1;music/game/nether/nether3;7,1;music/game/nether/nether4;7","808;music.nether.nether_wastes":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/nether_wastes/rubedo;6","811;music.nether.soul_sand_valley":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","798;music.overworld.deep_dark":"1;music/game/ancestry;1","799;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal4;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/wending;2","809;music.overworld.frozen_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2","800;music.overworld.grove":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano3;1,0.4;music/game/wending;1","801;music.overworld.jagged_peaks":"0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;1,0.4;music/game/wending;1","804;music.overworld.jungle_and_forest":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","802;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/calm1;2,1;music/game/calm2;2,1;music/game/calm3;2,1;music/game/floating_dream;2,0.4;music/game/one_more_day;2,1;music/game/piano3;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2","806;music.overworld.meadow":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,0.4;music/game/one_more_day;2","805;music.overworld.old_growth_taiga":"1;music/game/calm1;3,1;music/game/calm2;3,1;music/game/calm3;3,0.4;music/game/comforting_memories;3,0.4;music/game/floating_dream;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,0.4;music/game/left_to_bloom;3,1;music/game/nuance1;3,1;music/game/nuance2;3,0.4;music/game/one_more_day;3,1;music/game/piano1;3,1;music/game/piano2;3,1;music/game/piano3;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3","810;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1","812;music.overworld.stony_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2,0.4;music/game/wending;1","803;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","814;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","778;music_disc.11":"1;records/11;1","779;music_disc.13":"1;records/13;1","777;music_disc.5":"1;records/5;1","780;music_disc.blocks":"1;records/blocks;1","781;music_disc.cat":"1;records/cat;1","782;music_disc.chirp":"1;records/chirp;1","783;music_disc.far":"1;records/far;1","784;music_disc.mall":"1;records/mall;1","785;music_disc.mellohi":"1;records/mellohi;1","791;music_disc.otherside":"1;records/otherside;1","786;music_disc.pigstep":"1;records/pigstep;1","787;music_disc.stal":"1;records/stal;1","788;music_disc.strad":"1;records/strad;1","789;music_disc.wait":"1;records/wait;1","790;music_disc.ward":"1;records/ward;1","1189;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1301;ui.button.click":"1;random/click_stereo;1","1304;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1302;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1303;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1306;ui.stonecutter.select_recipe":"1;random/click;1","1305;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1307;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1308;ui.toast.in":"0.4;ui/toast/in;1","1309;ui.toast.out":"0.4;ui/toast/out;1","1375;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1376;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.20":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.8;ambient/underwater/enter1;1,0.8;ambient/underwater/enter2;1,0.8;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.5;ambient/underwater/exit1;1,0.5;ambient/underwater/exit2;1,0.5;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.resonate":"1;block/amethyst/resonate1;1,1;block/amethyst/resonate2;1,1;block/amethyst/resonate3;1,1;block/amethyst/resonate4;1","35;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","36;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","37;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","38;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","39;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","40;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","41;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","45;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","44;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","42;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","46;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","47;block.anvil.destroy":"1;random/anvil_break;1","48;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","50;block.anvil.land":"1;random/anvil_land;1","51;block.anvil.place":"1;random/anvil_land;1","52;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","53;block.anvil.use":"1;random/anvil_use;1","80;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","81;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","82;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","83;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","84;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","85;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","86;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","87;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","88;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","89;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","90;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","91;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","92;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","93;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","94;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","95;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","96;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","97;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","98;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","99;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","100;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","101;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","102;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","107;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","108;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","103;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","104;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","111;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","112;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","605;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","606;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","607;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","608;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","604;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","109;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","110;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","105;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","106;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","113;block.barrel.close":"1;block/barrel/close;1","114;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","115;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","119;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","118;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","117;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","116;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","125;block.beacon.activate":"1;block/beacon/activate;1","126;block.beacon.ambient":"0.9;block/beacon/ambient;1","127;block.beacon.deactivate":"1;block/beacon/deactivate;1","128;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","135;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","136;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","137;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","138;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","139;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","141;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","140;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","142;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","143;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","144;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","145;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","146;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","384;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","385;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","162;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","154;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","155;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","156;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","157;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","158;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","166;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","172;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","173;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","174;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","175;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","176;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","192;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","193;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","197;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","196;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","195;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","194;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","209;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","210;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","211;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","212;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","213;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","214;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","215;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","216;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","226;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","227;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","228;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","231;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","229;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","230;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","232;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","233;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","234;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","235;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","236;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","247;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","248;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","249;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","250;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","251;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","242;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","243;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","244;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","245;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","246;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","237;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","238;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","239;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","240;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","241;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","261;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","262;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","257;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","258;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","265;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","266;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","253;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","254;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","255;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","256;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","252;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","263;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","264;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","259;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","260;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","267;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","268;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","269;block.chest.open":"1;block/chest/open;1","275;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","276;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","277;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","278;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","279;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","281;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","282;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","283;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","280;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","284;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","285;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","291;block.comparator.click":"1;random/click;1","292;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","293;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","294;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","295;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","296;block.conduit.activate":"0.9;block/conduit/activate;1","297;block.conduit.ambient":"1;block/conduit/ambient;1","298;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","299;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","300;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","301;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","305;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","304;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","303;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","302;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","306;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","307;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","308;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","309;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","310;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","319;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","329;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","330;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","331;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","333;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","334;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1,1;block/decorated_pot/shatter6;1","332;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","340;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","341;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","342;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","343;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","344;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","335;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","336;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","337;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","338;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","339;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","345;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","346;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","347;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","348;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","349;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","350;block.dispenser.dispense":"1;random/click;1","351;block.dispenser.fail":"1;random/click;1","352;block.dispenser.launch":"1;random/bow;1","369;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","373;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","372;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","371;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","370;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","406;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","429;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","431;block.end_portal.spawn":"1;block/end_portal/endportal;1","430;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","407;block.ender_chest.close":"1;block/enderchest/close;1","408;block.ender_chest.open":"1;block/enderchest/open;1","443;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","444;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","454;block.fire.ambient":"1;fire/fire;1","455;block.fire.extinguish":"1;random/fizz;1","461;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","462;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","463;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","464;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","465;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","487;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","488;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","489;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","490;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","491;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","493;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","494;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","495;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","496;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","497;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","492;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","874;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","876;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","875;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","511;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","529;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","530;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","531;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","532;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","533;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","534;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","535;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","536;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","537;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","538;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","569;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","570;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","571;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","572;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","573;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","574;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","575;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","576;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","577;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","578;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","579;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","580;block.growing_plant.crop":"1;mob/sheep/shear;1","589;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","590;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","591;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","592;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","593;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","595;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","596;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","597;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","598;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","594;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","618;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","619;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","620;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","621;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","622;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","623;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","666;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","667;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","674;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","675;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","683;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","684;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","685;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","686;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","687;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","688;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","689;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","690;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","691;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","692;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","693;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","694;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","695;block.lava.ambient":"1;liquid/lava;1","696;block.lava.extinguish":"1;random/fizz;1","697;block.lava.pop":"1;liquid/lavapop;1","700;block.lever.click":"1;random/click;1","1362;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","714;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","718;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","717;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","716;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","715;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","726;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","727;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","728;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","729;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","730;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","731;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","732;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","733;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","734;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","735;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","736;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","739;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","737;block.metal_pressure_plate.click_off":"0.3;random/click;1","738;block.metal_pressure_plate.click_on":"0.3;random/click;1","758;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","759;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","760;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","761;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","762;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","748;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","749;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","750;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","751;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","752;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","763;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","764;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","765;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","766;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","767;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","768;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","769;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","770;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","771;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","772;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","773;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","774;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","775;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","776;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","777;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","831;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","835;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","834;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","833;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","832;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1070;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1071;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1072;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1073;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1074;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1075;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1076;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1077;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1078;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1079;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","869;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","873;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","872;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","871;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","870;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","836;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","838;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","839;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","840;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","841;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","842;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","847;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","848;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","843;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","844;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","851;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","852;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","600;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","601;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","602;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","603;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","599;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","849;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","850;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","845;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","846;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","889;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","893;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","892;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","891;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","890;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","894;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","898;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","897;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","896;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","895;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","914;block.note_block.banjo":"1;note/banjo;1","899;block.note_block.basedrum":"1;note/bd;1","900;block.note_block.bass":"1;note/bassattack;1","901;block.note_block.bell":"1;note/bell;1","913;block.note_block.bit":"1;note/bit;1","902;block.note_block.chime":"1;note/icechime;1","911;block.note_block.cow_bell":"1;note/cow_bell;1","912;block.note_block.didgeridoo":"1;note/didgeridoo;1","903;block.note_block.flute":"1;note/flute;1","904;block.note_block.guitar":"1;note/guitar;1","905;block.note_block.harp":"1;note/harp2;1","906;block.note_block.hat":"1;note/hat;1","917;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","918;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","920;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","916;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","919;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","915;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","910;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","907;block.note_block.pling":"1;note/pling;1","908;block.note_block.snare":"1;note/snare;1","909;block.note_block.xylophone":"1;note/xylobone;1","864;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","868;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","867;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","866;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","865;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","854;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","855;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","856;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","857;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","858;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","753;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","754;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","755;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","756;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","757;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","1007;block.piston.contract":"1;tile/piston/in;1","1008;block.piston.extend":"1;tile/piston/out;1","374;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","380;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","382;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","381;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","383;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","378;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","377;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","379;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","376;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","375;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1035;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1036;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1037;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1038;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1039;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1040;block.portal.ambient":"1;portal/portal;1","1041;block.portal.travel":"1;portal/travel;1","1042;block.portal.trigger":"1;portal/trigger;1","1043;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1044;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1045;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1046;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1047;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1055;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1080;block.redstone_torch.burnout":"1;random/fizz;1","1081;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1082;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1083;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1084;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1085;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1086;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1087;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1088;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1089;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","506;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","510;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","509;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","508;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","507;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1094;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1095;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1096;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1097;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1098;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1099;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1100;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1101;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1102;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1103;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1106;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1105;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1107;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1108;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1109;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1104;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1110;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1111;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1112;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1113;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1114;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1115;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1116;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1119;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1117;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1118;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1120;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1121;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1122;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1123;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1124;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1125;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1126;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1127;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1128;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1129;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1130;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1131;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1132;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1133;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1134;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1142;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1146;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1145;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1144;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1143;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1149;block.shulker_box.close":"1;block/shulker_box/close;1","1150;block.shulker_box.open":"1;block/shulker_box/open;1","1393;block.sign.waxed_interact_fail":"1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail3;1,1;block/sign/waxed_interact_fail3;1","1183;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1184;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1185;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1186;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1187;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1188;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1189;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1190;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1191;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1192;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1193;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1194;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1224;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1225;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1239;block.sniffer_egg.crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1240;block.sniffer_egg.hatch":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1238;block.sniffer_egg.plop":"1;mob/chicken/plop;1,1;mob/chicken/plop;1,1;mob/chicken/plop;1","1242;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1243;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1249;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1250;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1251;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1195;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1199;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1198;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1197;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1196;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1200;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1204;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1203;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1202;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1201;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1206;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1207;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1208;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1209;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1210;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","859;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","863;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","862;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","861;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","860;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1264;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1267;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1268;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1269;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1272;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1265;block.stone_button.click_off":"0.3;random/click;1","1266;block.stone_button.click_on":"0.3;random/click;1","1270;block.stone_pressure_plate.click_off":"0.3;random/click;1","1271;block.stone_pressure_plate.click_on":"0.3;random/click;1","482;block.suspicious_gravel.break":"1;block/suspicious_gravel/break1;1,1;block/suspicious_gravel/break2;1,1;block/suspicious_gravel/break3;1,1;block/suspicious_gravel/break4;1,1;block/suspicious_gravel/break5;1,1;block/suspicious_gravel/break6;1","486;block.suspicious_gravel.fall":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","485;block.suspicious_gravel.hit":"0.8;block/suspicious_gravel/step1;1,0.8;block/suspicious_gravel/step2;1,0.8;block/suspicious_gravel/step3;1,0.8;block/suspicious_gravel/step4;1","484;block.suspicious_gravel.place":"1;block/suspicious_gravel/place1;1,1;block/suspicious_gravel/place2;1,1;block/suspicious_gravel/place3;1,1;block/suspicious_gravel/place4;1","483;block.suspicious_gravel.step":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","477;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","481;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","480;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","479;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","478;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1277;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1279;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1278;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","1295;block.tripwire.attach":"1;random/click;1","1296;block.tripwire.click_off":"1;random/click;1","1297;block.tripwire.click_on":"1;random/click;1","1298;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1303;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1307;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1306;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1305;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1304;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1357;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1358;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1359;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1360;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1361;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","884;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","888;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","887;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","886;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","885;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1394;block.water.ambient":"1;liquid/water;1","879;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","883;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","882;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","881;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","880;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1397;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1398;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1399;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1400;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1401;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1435;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1436;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1437;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1438;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1439;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1431;block.wooden_button.click_off":"0.3;random/wood_click;1","1432;block.wooden_button.click_on":"0.3;random/wood_click;1","1427;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1428;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1433;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1434;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1429;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1430;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1440;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1441;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1442;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1443;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1444;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1284;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","63;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","64;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","65;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","66;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","67;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","68;entity.arrow.hit_player":"1;random/successful_hit;1","69;entity.arrow.shoot":"1;random/bow;1","73;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","74;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","75;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","76;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","77;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","78;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","79;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","120;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","121;entity.bat.death":"1;mob/bat/death;1","122;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","123;entity.bat.loop":"1;mob/bat/loop;1","124;entity.bat.takeoff":"1;mob/bat/takeoff;1","129;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","130;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","132;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","131;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","134;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","133;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","147;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","148;entity.blaze.burn":"1;fire/fire;1","149;entity.blaze.death":"1;mob/blaze/death;1","150;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","151;entity.blaze.shoot":"1;mob/ghast/fireball4;1","152;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","153;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","198;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","199;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","200;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","201;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","202;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","203;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","204;entity.camel.saddle":"1;entity.horse.saddle;1","205;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","206;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","207;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","208;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","217;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","222;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","219;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","220;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","221;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","223;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","224;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","225;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","218;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","270;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","271;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","272;entity.chicken.egg":"1;mob/chicken/plop;1","273;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","274;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","288;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","289;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","290;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","311;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","312;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","313;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","314;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","315;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","316;entity.creeper.death":"1;mob/creeper/death;1","317;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","318;entity.creeper.primed":"1;random/fuse;1","353;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","354;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","355;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","356;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","357;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","358;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","359;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","360;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","361;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","362;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","363;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","364;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","365;entity.donkey.chest":"1;mob/chicken/plop;1","366;entity.donkey.death":"1;mob/horse/donkey/death;1","367;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","368;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","411;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","386;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","387;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","388;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","389;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","390;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","391;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","392;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","393;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","394;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","396;entity.egg.throw":"1;random/bow;1","397;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","398;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","399;entity.elder_guardian.curse":"1;mob/guardian/curse;1","400;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","401;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","402;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","403;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","404;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","409;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","410;entity.ender_dragon.death":"1;mob/enderdragon/end;1","412;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","413;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","414;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","415;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","416;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","417;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","428;entity.ender_pearl.throw":"1;random/bow;1","418;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","419;entity.enderman.death":"1;mob/endermen/death;1","420;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","421;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","422;entity.enderman.stare":"1;mob/endermen/stare;1","423;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","424;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","425;entity.endermite.death":"1;mob/silverfish/kill;1","426;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","427;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","432;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","433;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","434;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","435;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","437;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","438;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","439;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","440;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","436;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","441;entity.experience_bottle.throw":"1;random/bow;1","442;entity.experience_orb.pickup":"1;random/orb;1","446;entity.firework_rocket.blast":"1;fireworks/blast1;1","447;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","448;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","449;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","450;entity.firework_rocket.launch":"1;fireworks/launch1;1","451;entity.firework_rocket.shoot":"1;random/bow;1","452;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","453;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","456;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","457;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","458;entity.fishing_bobber.splash":"1;random/splash;1","459;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","466;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","467;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","468;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","469;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","470;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","471;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","472;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","473;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","474;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","475;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","476;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","498;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","499;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","500;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","501;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","502;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","503;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","504;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","505;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","512;entity.generic.big_fall":"1;damage/fallbig;1","513;entity.generic.burn":"1;random/fizz;1","514;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","515;entity.generic.drink":"1;random/drink;1","516;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","517;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","518;entity.generic.extinguish_fire":"1;random/fizz;1","519;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","520;entity.generic.small_fall":"1;damage/fallsmall;1","521;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","522;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","523;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","524;entity.ghast.death":"1;mob/ghast/death;1","525;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","526;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","527;entity.ghast.shoot":"1;mob/ghast/fireball4;1","528;entity.ghast.warn":"1;mob/ghast/charge;1","540;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","541;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","542;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","543;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","544;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","545;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","546;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","547;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","548;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","549;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","550;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","551;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","557;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","552;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","553;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","554;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","555;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","556;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","559;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","560;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","561;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","562;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","563;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","564;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","565;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","566;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","568;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","581;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","582;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","583;entity.guardian.attack":"1;mob/guardian/attack_loop;1","584;entity.guardian.death":"1;mob/guardian/guardian_death;1","585;entity.guardian.death_land":"1;mob/guardian/land_death;1","586;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","587;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","588;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","610;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","611;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","612;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","613;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","614;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","615;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","616;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","617;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","634;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","635;entity.horse.angry":"1;mob/horse/angry1;1","636;entity.horse.armor":"1;mob/horse/armor;1","637;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","638;entity.horse.death":"1;mob/horse/death;1","639;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","640;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","641;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","642;entity.horse.jump":"1;mob/horse/jump;1","643;entity.horse.land":"1;mob/horse/land;1","644;entity.horse.saddle":"1;mob/horse/leather;1","645;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","646;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","647;entity.hostile.big_fall":"1;damage/fallbig;1","648;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","649;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","650;entity.hostile.small_fall":"1;damage/fallsmall;1","651;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","652;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","653;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","654;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","655;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","656;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","657;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","658;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","659;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","660;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","661;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","662;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","663;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","664;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","668;entity.iron_golem.attack":"1;mob/irongolem/throw;1","669;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","670;entity.iron_golem.death":"1;mob/irongolem/death;1","671;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","672;entity.iron_golem.repair":"1;mob/irongolem/repair;1","673;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","681;entity.item.break":"1;random/break;1","682;entity.item.pickup":"1;random/pop;1","676;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","677;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","678;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","679;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","680;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","698;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","699;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","701;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","702;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","703;entity.lingering_potion.throw":"1;random/bow;1","704;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","705;entity.llama.angry":"1;mob/llama/angry1;1","706;entity.llama.chest":"1;mob/chicken/plop;1","707;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","708;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","709;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","710;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","711;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","712;entity.llama.swag":"1;mob/llama/swag;1","720;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","713;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","721;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","722;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","723;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","724;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","725;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","741;entity.minecart.inside":"1;minecart/inside;1","740;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","742;entity.minecart.riding":"1;minecart/base;1","743;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","744;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","745;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","747;entity.mooshroom.shear":"1;mob/sheep/shear;1","746;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","778;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","779;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","780;entity.mule.chest":"1;mob/chicken/plop;1","781;entity.mule.death":"1;mob/horse/donkey/death;1","782;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","783;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","922;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","923;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","921;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","924;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","925;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","933;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","928;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","936;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","932;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","929;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","930;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","935;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","926;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","927;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","931;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","934;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","937;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","938;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","939;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","940;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","941;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","942;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","943;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","944;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","945;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","946;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","947;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","948;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","949;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","950;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","951;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","952;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","953;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","954;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","955;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","956;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","957;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","958;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","959;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","960;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","961;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","962;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","963;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","964;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","965;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","966;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","967;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","968;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","969;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","970;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","971;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","972;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","973;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","974;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","975;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","976;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","977;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","978;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","979;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","980;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","981;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","982;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","983;entity.pig.death":"1;mob/pig/death;1","984;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","985;entity.pig.saddle":"1;mob/horse/leather;1","986;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","987;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","988;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","989;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","990;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","996;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","991;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","993;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","992;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","994;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","995;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","997;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","998;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","1002;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","999;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","1000;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","1001;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","1003;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","1004;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","1005;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","1006;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","1009;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","1010;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","1011;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1012;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","1013;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","1014;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1015;entity.player.big_fall":"1;damage/fallbig;1","1016;entity.player.breath":"1;random/breath;1","1017;entity.player.burp":"1;random/burp;1","1018;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1019;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1020;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1021;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1022;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1023;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1024;entity.player.levelup":"1;random/levelup;1","1025;entity.player.small_fall":"1;damage/fallsmall;1","1026;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1027;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1028;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1029;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1030;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1031;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1032;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1033;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1034;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1049;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1050;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1051;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1052;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1053;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1054;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1056;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1057;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1058;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1059;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1060;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1062;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1063;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1064;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1065;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1066;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1069;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1067;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1068;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1091;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1092;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1093;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1135;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1136;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1137;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1138;entity.sheep.shear":"1;mob/sheep/shear;1","1139;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1148;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1153;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1154;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1155;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1156;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1157;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1158;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1159;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1151;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1152;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1160;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1161;entity.silverfish.death":"1;mob/silverfish/kill;1","1162;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1163;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1164;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1165;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1166;entity.skeleton.death":"1;mob/skeleton/death;1","1175;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1176;entity.skeleton.shoot":"1;random/bow;1","1177;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1167;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1171;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1168;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1172;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1169;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1173;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1174;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1170;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1178;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1179;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1220;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1180;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1221;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1181;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1222;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1182;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1223;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1230;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1235;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1236;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1231;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1227;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1237;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1229;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1228;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1232;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1234;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1233;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1226;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1245;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1246;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1248;entity.snow_golem.shear":"1;mob/sheep/shear;1","1247;entity.snow_golem.shoot":"1;random/bow;1","1241;entity.snowball.throw":"1;random/bow;1","1252;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1253;entity.spider.death":"1;mob/spider/death;1","1254;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1255;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1256;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1257;entity.splash_potion.throw":"1;random/bow;1","1260;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1261;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1262;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1263;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1273;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1274;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1275;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1276;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1211;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1214;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1218;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1212;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1215;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1213;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1219;entity.strider.saddle":"1;mob/horse/leather;1","1216;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1217;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1280;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1281;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1282;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1283;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1285;entity.tnt.primed":"1;random/fuse;1","1300;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1301;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1302;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1308;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1309;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1310;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1311;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1312;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1313;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1314;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1315;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1316;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1317;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1318;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1319;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1329;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1330;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1331;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1332;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1333;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1334;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1335;entity.villager.death":"1;mob/villager/death;1","1336;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1337;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1338;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1340;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1341;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1342;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1343;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1344;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1345;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1346;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1347;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1348;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1349;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1350;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1351;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1352;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1339;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1353;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1354;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1355;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1356;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1363;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1364;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1365;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1366;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1367;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1368;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1369;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1370;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1371;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1372;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1373;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1374;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1375;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1376;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1377;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1378;entity.warden.dig":"1;mob/warden/dig;1","1379;entity.warden.emerge":"1;mob/warden/emerge;1","1380;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1381;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1382;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1383;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1384;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1385;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1386;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1387;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1388;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1389;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1390;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1391;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1392;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1402;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1403;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1404;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1405;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1406;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1407;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1408;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1409;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1410;entity.wither.death":"1;mob/wither/death;1","1411;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1412;entity.wither.shoot":"1;mob/wither/shoot;1","1417;entity.wither.spawn":"1;mob/wither/spawn;1","1413;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1414;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1415;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1416;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1418;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1419;entity.wolf.death":"1;mob/wolf/death;1","1420;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1421;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1422;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1423;entity.wolf.pant":"1;mob/wolf/panting;1","1424;entity.wolf.shake":"1;mob/wolf/shake;1","1425;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1426;entity.wolf.whine":"1;mob/wolf/whine;1","1445;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1446;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1447;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1448;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1449;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1450;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1451;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1453;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1452;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1454;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1455;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1456;entity.zombie.death":"1;mob/zombie/death;1","1457;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1461;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1462;entity.zombie.infect":"1;mob/zombie/infect;1","1467;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1458;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1459;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1460;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1468;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1469;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1470;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1471;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1472;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1473;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1463;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1464;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1465;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1466;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1061;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","54;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","55;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","56;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","57;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","58;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","59;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","60;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","61;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","62;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","71;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","70;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","72;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","159;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","160;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","161;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","163;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","164;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","165;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","167;item.brush.brushing.generic":"0.4;item/brush/brushing_generic1;1,0.4;item/brush/brushing_generic2;1,0.4;item/brush/brushing_generic3;1,0.4;item/brush/brushing_generic4;1","169;item.brush.brushing.gravel":"0.6;item/brush/brushing_gravel1;1,0.6;item/brush/brushing_gravel2;1,0.6;item/brush/brushing_gravel3;1,0.6;item/brush/brushing_gravel4;1","171;item.brush.brushing.gravel.complete":"1;item/brush/brushing_gravel_complete1;1,1;item/brush/brushing_gravel_complete2;1,1;item/brush/brushing_gravel_complete3;1,1;item/brush/brushing_gravel_complete4;1","168;item.brush.brushing.sand":"0.6;item/brush/brushing_sand1;1,0.6;item/brush/brushing_sand2;1,0.6;item/brush/brushing_sand3;1,0.6;item/brush/brushing_sand4;1","170;item.brush.brushing.sand.complete":"1;item/brush/brush_sand_complete1;1,1;item/brush/brush_sand_complete2;1,1;item/brush/brush_sand_complete3;1,1;item/brush/brush_sand_complete4;1,1;item/brush/brush_sand_complete5;1","177;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","178;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","179;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","180;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","181;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","182;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","183;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","184;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","185;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","186;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","187;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","188;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","189;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","190;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","191;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","286;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","320;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","321;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","322;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","323;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","324;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","325;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","326;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","327;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","328;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","395;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","405;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","445;item.firecharge.use":"1;mob/ghast/fireball4;1","460;item.flintandsteel.use":"1;fire/ignite;1","539;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","609;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","625;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","624;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","665;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","719;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","837;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1140;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1141;item.shield.break":"1;random/break;1","1147;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1259;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1258;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1286;item.totem.use":"1;item/totem/use_totem;1","1287;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1288;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1289;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1290;item.trident.riptide_1":"1;item/trident/riptide1;1","1291;item.trident.riptide_2":"1;item/trident/riptide2;1","1292;item.trident.riptide_3":"1;item/trident/riptide3;1","1293;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1294;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","784;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","785;music.credits":"1;music/game/end/credits;1","802;music.dragon":"1;music/game/end/boss;1","803;music.end":"1;music/game/end/end;1","804;music.game":"0.4;music/game/a_familiar_room;1,1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","805;music.menu":"0.4;music/game/a_familiar_room;1,0.4;music/game/bromeliad;1,0.4;music/game/crescent_dunes;1,0.4;music/game/echo_in_the_wind;1,1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","806;music.nether.basalt_deltas":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","807;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;7,1;music/game/nether/nether2;7,1;music/game/nether/nether3;7,1;music/game/nether/nether4;7","818;music.nether.nether_wastes":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/nether_wastes/rubedo;6","821;music.nether.soul_sand_valley":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","826;music.overworld.badlands":"0.4;music/game/crescent_dunes;2,0.4;music/game/echo_in_the_wind;2,1;music/game/hal1;2,1;music/game/hal2;2,1;music/game/hal3;2,1;music/game/hal4;2,1;music/game/nuance1;2,1;music/game/nuance2;2,0.4;music/game/one_more_day;2,1;music/game/piano1;2,1;music/game/piano2;2,1;music/game/piano3;2","829;music.overworld.bamboo_jungle":"0.4;music/game/bromeliad;2,1;music/game/hal1;2,1;music/game/hal2;2,1;music/game/hal3;2,1;music/game/hal4;2,0.4;music/game/left_to_bloom;2,1;music/game/nuance1;2,1;music/game/nuance2;2,1;music/game/piano1;2,1;music/game/piano2;2,1;music/game/piano3;2","817;music.overworld.cherry_grove":"0.4;music/game/bromeliad;3,1;music/game/calm1;3,1;music/game/calm2;3,1;music/game/calm3;3,0.4;music/game/echo_in_the_wind;3,0.4;music/game/left_to_bloom;3","808;music.overworld.deep_dark":"1;music/game/ancestry;1","825;music.overworld.desert":"0.4;music/game/crescent_dunes;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,1;music/game/nuance1;3,1;music/game/nuance2;3,0.4;music/game/one_more_day;3","809;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal4;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/wending;2","824;music.overworld.flower_forest":"0.4;music/game/bromeliad;1,0.4;music/game/echo_in_the_wind;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1","814;music.overworld.forest":"0.4;music/game/bromeliad;1,1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","819;music.overworld.frozen_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2","810;music.overworld.grove":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano3;1,0.4;music/game/wending;1","811;music.overworld.jagged_peaks":"0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;1,0.4;music/game/wending;1","827;music.overworld.jungle":"0.4;music/game/bromeliad;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,0.4;music/game/left_to_bloom;3,1;music/game/nuance1;3,1;music/game/nuance2;3,1;music/game/piano1;3,1;music/game/piano2;3,1;music/game/piano3;3","812;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/calm1;2,1;music/game/calm2;2,1;music/game/calm3;2,0.4;music/game/echo_in_the_wind;2,1;music/game/floating_dream;2,0.4;music/game/one_more_day;2,1;music/game/piano3;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2","816;music.overworld.meadow":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,0.4;music/game/one_more_day;2","815;music.overworld.old_growth_taiga":"1;music/game/calm1;3,1;music/game/calm2;3,1;music/game/calm3;3,0.4;music/game/comforting_memories;3,0.4;music/game/floating_dream;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,0.4;music/game/left_to_bloom;3,1;music/game/nuance1;3,1;music/game/nuance2;3,0.4;music/game/one_more_day;3,1;music/game/piano1;3,1;music/game/piano2;3,1;music/game/piano3;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3","820;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1","828;music.overworld.sparse_jungle":"0.4;music/game/bromeliad;2,1;music/game/hal1;2,1;music/game/hal2;2,1;music/game/hal3;2,1;music/game/hal4;2,0.4;music/game/left_to_bloom;2,1;music/game/nuance1;2,1;music/game/nuance2;2,1;music/game/piano1;2,1;music/game/piano2;2,1;music/game/piano3;2","822;music.overworld.stony_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2,0.4;music/game/wending;1","813;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","830;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","787;music_disc.11":"1;records/11;1","788;music_disc.13":"1;records/13;1","786;music_disc.5":"1;records/5;1","789;music_disc.blocks":"1;records/blocks;1","790;music_disc.cat":"1;records/cat;1","791;music_disc.chirp":"1;records/chirp;1","792;music_disc.far":"1;records/far;1","793;music_disc.mall":"1;records/mall;1","794;music_disc.mellohi":"1;records/mellohi;1","800;music_disc.otherside":"1;records/otherside;1","795;music_disc.pigstep":"1;records/pigstep;1","801;music_disc.relic":"1;records/relic;1","796;music_disc.stal":"1;records/stal;1","797;music_disc.strad":"1;records/strad;1","798;music_disc.wait":"1;records/wait;1","799;music_disc.ward":"1;records/ward;1","1205;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1320;ui.button.click":"1;random/click_stereo;1","1323;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1321;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1322;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1325;ui.stonecutter.select_recipe":"1;random/click;1","1324;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1326;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1327;ui.toast.in":"0.4;ui/toast/in;1","1328;ui.toast.out":"0.4;ui/toast/out;1","1395;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1396;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.20.2":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.5;ambient/underwater/enter1;1,0.5;ambient/underwater/enter2;1,0.5;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.3;ambient/underwater/exit1;1,0.3;ambient/underwater/exit2;1,0.3;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.resonate":"1;block/amethyst/resonate1;1,1;block/amethyst/resonate2;1,1;block/amethyst/resonate3;1,1;block/amethyst/resonate4;1","35;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","36;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","37;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","38;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","39;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","40;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","41;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","45;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","44;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","42;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","46;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","47;block.anvil.destroy":"1;random/anvil_break;1","48;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","50;block.anvil.land":"1;random/anvil_land;1","51;block.anvil.place":"1;random/anvil_land;1","52;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","53;block.anvil.use":"1;random/anvil_use;1","80;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","81;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","82;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","83;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","84;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","85;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","86;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","87;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","88;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","89;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","90;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","91;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","92;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","93;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","94;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","95;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","96;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","97;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","98;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","99;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","100;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","101;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","102;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","107;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","108;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","103;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","104;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","111;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","112;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","605;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","606;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","607;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","608;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","604;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","109;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","110;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","105;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","106;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","113;block.barrel.close":"1;block/barrel/close;1","114;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","115;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","119;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","118;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","117;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","116;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","125;block.beacon.activate":"1;block/beacon/activate;1","126;block.beacon.ambient":"0.9;block/beacon/ambient;1","127;block.beacon.deactivate":"1;block/beacon/deactivate;1","128;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","135;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","136;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","137;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","138;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","139;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","141;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","140;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","142;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","143;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","144;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","145;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","146;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","384;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","385;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","162;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","154;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","155;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","156;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","157;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","158;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","166;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","172;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","173;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","174;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","175;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","176;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","192;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","193;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","197;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","196;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","195;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","194;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","209;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","210;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","211;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","212;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","213;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","214;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","215;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","216;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","226;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","227;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","228;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","231;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","229;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","230;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","232;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","233;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","234;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","235;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","236;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","247;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","248;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","249;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","250;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","251;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","242;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","243;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","244;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","245;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","246;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","237;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","238;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","239;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","240;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","241;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","261;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","262;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","257;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","258;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","265;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","266;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","253;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","254;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","255;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","256;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","252;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","263;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","264;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","259;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","260;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","267;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","268;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","269;block.chest.open":"1;block/chest/open;1","275;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","276;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","277;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","278;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","279;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","281;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","282;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","283;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","280;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","284;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","285;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","291;block.comparator.click":"1;random/click;1","292;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","293;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","294;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","295;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","296;block.conduit.activate":"0.9;block/conduit/activate;1","297;block.conduit.ambient":"1;block/conduit/ambient;1","298;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","299;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","300;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","301;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","305;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","304;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","303;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","302;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","306;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","307;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","308;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","309;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","310;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","319;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","329;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","330;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","331;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","333;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","334;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1,1;block/decorated_pot/shatter6;1","332;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","340;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","341;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","342;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","343;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","344;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","335;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","336;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","337;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","338;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","339;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","345;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","346;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","347;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","348;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","349;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","350;block.dispenser.dispense":"1;random/click;1","351;block.dispenser.fail":"1;random/click;1","352;block.dispenser.launch":"1;random/bow;1","369;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","373;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","372;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","371;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","370;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","406;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","429;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","431;block.end_portal.spawn":"1;block/end_portal/endportal;1","430;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","407;block.ender_chest.close":"1;block/enderchest/close;1","408;block.ender_chest.open":"1;block/enderchest/open;1","443;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","444;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","454;block.fire.ambient":"1;fire/fire;1","455;block.fire.extinguish":"1;random/fizz;1","461;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","462;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","463;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","464;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","465;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","487;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","488;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","489;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","490;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","491;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","493;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","494;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","495;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","496;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","497;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","492;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","874;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","876;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","875;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","511;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","529;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","530;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","531;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","532;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","533;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","534;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","535;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","536;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","537;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","538;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","569;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","570;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","571;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","572;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","573;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","574;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","575;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","576;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","577;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","578;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","579;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","580;block.growing_plant.crop":"1;mob/sheep/shear;1","589;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","590;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","591;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","592;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","593;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","595;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","596;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","597;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","598;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","594;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","618;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","619;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","620;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","621;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","622;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","623;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","666;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","667;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","674;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","675;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","683;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","684;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","685;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","686;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","687;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","688;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","689;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","690;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","691;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","692;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","693;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","694;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","695;block.lava.ambient":"1;liquid/lava;1","696;block.lava.extinguish":"1;random/fizz;1","697;block.lava.pop":"1;liquid/lavapop;1","700;block.lever.click":"1;random/click;1","1368;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","714;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","718;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","717;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","716;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","715;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","726;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","727;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","728;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","729;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","730;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","731;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","732;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","733;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","734;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","735;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","736;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","739;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","737;block.metal_pressure_plate.click_off":"0.3;random/click;1","738;block.metal_pressure_plate.click_on":"0.3;random/click;1","758;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","759;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","760;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","761;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","762;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","748;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","749;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","750;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","751;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","752;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","763;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","764;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","765;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","766;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","767;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","768;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","769;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","770;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","771;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","772;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","773;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","774;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","775;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","776;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","777;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","831;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","835;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","834;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","833;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","832;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1070;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1071;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1072;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1073;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1074;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1075;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1076;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1077;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1078;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1079;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","869;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","873;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","872;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","871;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","870;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","836;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","838;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","839;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","840;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","841;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","842;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","847;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","848;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","843;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","844;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","851;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","852;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","600;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","601;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","602;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","603;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","599;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","849;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","850;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","845;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","846;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","889;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","893;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","892;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","891;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","890;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","894;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","898;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","897;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","896;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","895;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","914;block.note_block.banjo":"1;note/banjo;1","899;block.note_block.basedrum":"1;note/bd;1","900;block.note_block.bass":"1;note/bassattack;1","901;block.note_block.bell":"1;note/bell;1","913;block.note_block.bit":"1;note/bit;1","902;block.note_block.chime":"1;note/icechime;1","911;block.note_block.cow_bell":"1;note/cow_bell;1","912;block.note_block.didgeridoo":"1;note/didgeridoo;1","903;block.note_block.flute":"1;note/flute;1","904;block.note_block.guitar":"1;note/guitar;1","905;block.note_block.harp":"1;note/harp2;1","906;block.note_block.hat":"1;note/hat;1","917;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","918;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","920;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","916;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","919;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","915;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","910;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","907;block.note_block.pling":"1;note/pling;1","908;block.note_block.snare":"1;note/snare;1","909;block.note_block.xylophone":"1;note/xylobone;1","864;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","868;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","867;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","866;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","865;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","854;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","855;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","856;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","857;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","858;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","753;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","754;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","755;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","756;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","757;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","1007;block.piston.contract":"1;tile/piston/in;1","1008;block.piston.extend":"1;tile/piston/out;1","374;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","380;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","382;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","381;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","383;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","378;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","377;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","379;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","376;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","375;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1035;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1036;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1037;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1038;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1039;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1040;block.portal.ambient":"1;portal/portal;1","1041;block.portal.travel":"1;portal/travel;1","1042;block.portal.trigger":"1;portal/trigger;1","1043;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1044;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1045;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1046;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1047;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1055;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1080;block.redstone_torch.burnout":"1;random/fizz;1","1081;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1082;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1083;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1084;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1085;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1086;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1087;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1088;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1089;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","506;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","510;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","509;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","508;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","507;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1094;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1095;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1096;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1097;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1098;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1099;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1100;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1101;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1102;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1103;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1106;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1105;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1107;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1108;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1109;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1104;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1110;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1111;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1112;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1113;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1114;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1115;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1116;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1119;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1117;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1118;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1120;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1121;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1122;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1123;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1124;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1125;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1126;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1127;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1128;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1129;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1130;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1131;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1132;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1133;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1134;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1142;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1146;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1145;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1144;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1143;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1149;block.shulker_box.close":"1;block/shulker_box/close;1","1150;block.shulker_box.open":"1;block/shulker_box/open;1","1399;block.sign.waxed_interact_fail":"1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail3;1,1;block/sign/waxed_interact_fail3;1","1183;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1184;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1185;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1186;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1187;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1188;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1189;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1190;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1191;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1192;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1193;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1194;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1224;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1225;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1239;block.sniffer_egg.crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1240;block.sniffer_egg.hatch":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1238;block.sniffer_egg.plop":"1;mob/chicken/plop;1,1;mob/chicken/plop;1,1;mob/chicken/plop;1","1242;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1243;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1249;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1250;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1251;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1195;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1199;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1198;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1197;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1196;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1200;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1204;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1203;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1202;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1201;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1263;block.sponge.absorb":"1;block/sponge/absorb1;1,1;block/sponge/absorb2;1,1;block/sponge/absorb3;1","1258;block.sponge.break":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1259;block.sponge.fall":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1260;block.sponge.hit":"0.8;block/sponge/step1;1,0.8;block/sponge/step2;1,0.8;block/sponge/step3;1,0.8;block/sponge/step4;1,0.8;block/sponge/step5;1,0.8;block/sponge/step6;1","1261;block.sponge.place":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1262;block.sponge.step":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1206;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1207;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1208;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1209;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1210;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","859;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","863;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","862;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","861;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","860;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1270;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1273;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1274;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1275;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1278;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1271;block.stone_button.click_off":"0.3;random/click;1","1272;block.stone_button.click_on":"0.3;random/click;1","1276;block.stone_pressure_plate.click_off":"0.3;random/click;1","1277;block.stone_pressure_plate.click_on":"0.3;random/click;1","482;block.suspicious_gravel.break":"1;block/suspicious_gravel/break1;1,1;block/suspicious_gravel/break2;1,1;block/suspicious_gravel/break3;1,1;block/suspicious_gravel/break4;1,1;block/suspicious_gravel/break5;1,1;block/suspicious_gravel/break6;1","486;block.suspicious_gravel.fall":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","485;block.suspicious_gravel.hit":"0.8;block/suspicious_gravel/step1;1,0.8;block/suspicious_gravel/step2;1,0.8;block/suspicious_gravel/step3;1,0.8;block/suspicious_gravel/step4;1","484;block.suspicious_gravel.place":"1;block/suspicious_gravel/place1;1,1;block/suspicious_gravel/place2;1,1;block/suspicious_gravel/place3;1,1;block/suspicious_gravel/place4;1","483;block.suspicious_gravel.step":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","477;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","481;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","480;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","479;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","478;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1283;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1285;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1284;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","1301;block.tripwire.attach":"1;random/click;1","1302;block.tripwire.click_off":"1;random/click;1","1303;block.tripwire.click_on":"1;random/click;1","1304;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1309;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1313;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1312;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1311;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1310;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1363;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1364;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1365;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1366;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1367;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","884;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","888;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","887;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","886;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","885;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1400;block.water.ambient":"1;liquid/water;1","879;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","883;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","882;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","881;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","880;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1403;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1404;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1405;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1406;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1407;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1408;block.wet_sponge.break":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1409;block.wet_sponge.fall":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1410;block.wet_sponge.hit":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1411;block.wet_sponge.place":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1412;block.wet_sponge.step":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1446;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1447;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1448;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1449;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1450;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1442;block.wooden_button.click_off":"0.3;random/wood_click;1","1443;block.wooden_button.click_on":"0.3;random/wood_click;1","1438;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1439;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1444;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1445;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1440;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1441;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1451;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1452;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1453;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1454;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1455;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1290;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","63;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","64;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","65;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","66;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","67;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","68;entity.arrow.hit_player":"1;random/successful_hit;1","69;entity.arrow.shoot":"1;random/bow;1","73;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","74;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","75;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","76;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","77;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","78;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","79;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","120;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","121;entity.bat.death":"1;mob/bat/death;1","122;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","123;entity.bat.loop":"1;mob/bat/loop;1","124;entity.bat.takeoff":"1;mob/bat/takeoff;1","129;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","130;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","132;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","131;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","134;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","133;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","147;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","148;entity.blaze.burn":"1;fire/fire;1","149;entity.blaze.death":"1;mob/blaze/death;1","150;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","151;entity.blaze.shoot":"1;mob/ghast/fireball4;1","152;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","153;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","198;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","199;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","200;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","201;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","202;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","203;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","204;entity.camel.saddle":"1;entity.horse.saddle;1","205;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","206;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","207;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","208;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","217;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","222;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","219;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","220;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","221;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","223;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","224;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","225;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","218;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","270;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","271;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","272;entity.chicken.egg":"1;mob/chicken/plop;1","273;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","274;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","288;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","289;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","290;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","311;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","312;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","313;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","314;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","315;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","316;entity.creeper.death":"1;mob/creeper/death;1","317;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","318;entity.creeper.primed":"1;random/fuse;1","353;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","354;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","355;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","356;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","357;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","358;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","359;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","360;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","361;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","362;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","363;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","364;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","365;entity.donkey.chest":"1;mob/chicken/plop;1","366;entity.donkey.death":"1;mob/horse/donkey/death;1","367;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","368;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","411;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","386;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","387;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","388;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","389;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","390;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","391;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","392;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","393;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","394;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","396;entity.egg.throw":"1;random/bow;1","397;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","398;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","399;entity.elder_guardian.curse":"1;mob/guardian/curse;1","400;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","401;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","402;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","403;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","404;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","409;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","410;entity.ender_dragon.death":"1;mob/enderdragon/end;1","412;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","413;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","414;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","415;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","416;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","417;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","428;entity.ender_pearl.throw":"1;random/bow;1","418;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","419;entity.enderman.death":"1;mob/endermen/death;1","420;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","421;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","422;entity.enderman.stare":"1;mob/endermen/stare;1","423;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","424;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","425;entity.endermite.death":"1;mob/silverfish/kill;1","426;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","427;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","432;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","433;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","434;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","435;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","437;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","438;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","439;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","440;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","436;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","441;entity.experience_bottle.throw":"1;random/bow;1","442;entity.experience_orb.pickup":"1;random/orb;1","446;entity.firework_rocket.blast":"1;fireworks/blast1;1","447;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","448;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","449;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","450;entity.firework_rocket.launch":"1;fireworks/launch1;1","451;entity.firework_rocket.shoot":"1;random/bow;1","452;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","453;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","456;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","457;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","458;entity.fishing_bobber.splash":"1;random/splash;1","459;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","466;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","467;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","468;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","469;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","470;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","471;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","472;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","473;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","474;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","475;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","476;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","498;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","499;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","500;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","501;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","502;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","503;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","504;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","505;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","512;entity.generic.big_fall":"1;damage/fallbig;1","513;entity.generic.burn":"1;random/fizz;1","514;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","515;entity.generic.drink":"1;random/drink;1","516;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","517;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","518;entity.generic.extinguish_fire":"1;random/fizz;1","519;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","520;entity.generic.small_fall":"1;damage/fallsmall;1","521;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","522;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","523;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","524;entity.ghast.death":"1;mob/ghast/death;1","525;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","526;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","527;entity.ghast.shoot":"1;mob/ghast/fireball4;1","528;entity.ghast.warn":"1;mob/ghast/charge;1","540;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","541;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","542;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","543;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","544;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","545;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","546;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","547;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","548;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","549;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","550;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","551;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","557;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","552;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","553;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","554;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","555;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","556;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","559;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","560;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","561;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","562;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","563;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","564;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","565;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","566;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","568;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","581;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","582;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","583;entity.guardian.attack":"1;mob/guardian/attack_loop;1","584;entity.guardian.death":"1;mob/guardian/guardian_death;1","585;entity.guardian.death_land":"1;mob/guardian/land_death;1","586;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","587;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","588;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","610;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","611;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","612;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","613;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","614;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","615;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","616;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","617;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","634;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","635;entity.horse.angry":"1;mob/horse/angry1;1","636;entity.horse.armor":"1;mob/horse/armor;1","637;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","638;entity.horse.death":"1;mob/horse/death;1","639;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","640;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","641;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","642;entity.horse.jump":"1;mob/horse/jump;1","643;entity.horse.land":"1;mob/horse/land;1","644;entity.horse.saddle":"1;mob/horse/leather;1","645;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","646;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","647;entity.hostile.big_fall":"1;damage/fallbig;1","648;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","649;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","650;entity.hostile.small_fall":"1;damage/fallsmall;1","651;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","652;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","653;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","654;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","655;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","656;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","657;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","658;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","659;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","660;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","661;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","662;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","663;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","664;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","668;entity.iron_golem.attack":"1;mob/irongolem/throw;1","669;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","670;entity.iron_golem.death":"1;mob/irongolem/death;1","671;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","672;entity.iron_golem.repair":"1;mob/irongolem/repair;1","673;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","681;entity.item.break":"1;random/break;1","682;entity.item.pickup":"1;random/pop;1","676;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","677;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","678;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","679;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","680;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","698;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","699;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","701;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","702;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","703;entity.lingering_potion.throw":"1;random/bow;1","704;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","705;entity.llama.angry":"1;mob/llama/angry1;1","706;entity.llama.chest":"1;mob/chicken/plop;1","707;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","708;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","709;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","710;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","711;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","712;entity.llama.swag":"1;mob/llama/swag;1","720;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","713;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","721;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","722;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","723;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","724;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","725;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","741;entity.minecart.inside":"1;minecart/inside;1","740;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","742;entity.minecart.riding":"1;minecart/base;1","743;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","744;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","745;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","747;entity.mooshroom.shear":"1;mob/sheep/shear;1","746;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","778;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","779;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","780;entity.mule.chest":"1;mob/chicken/plop;1","781;entity.mule.death":"1;mob/horse/donkey/death;1","782;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","783;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","922;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","923;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","921;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","924;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","925;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","933;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","928;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","936;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","932;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","929;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","930;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","935;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","926;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","927;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","931;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","934;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","937;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","938;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","939;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","940;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","941;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","942;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","943;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","944;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","945;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","946;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","947;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","948;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","949;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","950;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","951;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","952;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","953;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","954;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","955;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","956;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","957;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","958;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","959;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","960;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","961;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","962;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","963;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","964;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","965;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","966;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","967;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","968;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","969;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","970;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","971;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","972;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","973;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","974;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","975;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","976;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","977;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","978;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","979;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","980;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","981;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","982;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","983;entity.pig.death":"1;mob/pig/death;1","984;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","985;entity.pig.saddle":"1;mob/horse/leather;1","986;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","987;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","988;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","989;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","990;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","996;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","991;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","993;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","992;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","994;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","995;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","997;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","998;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","1002;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","999;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","1000;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","1001;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","1003;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","1004;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","1005;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","1006;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","1009;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","1010;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","1011;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1012;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","1013;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","1014;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1015;entity.player.big_fall":"1;damage/fallbig;1","1016;entity.player.breath":"1;random/breath;1","1017;entity.player.burp":"1;random/burp;1","1018;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1019;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1020;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1021;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1022;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1023;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1024;entity.player.levelup":"1;random/levelup;1","1025;entity.player.small_fall":"1;damage/fallsmall;1","1026;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1027;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1028;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1029;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1030;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1031;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1032;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1033;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1034;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1049;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1050;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1051;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1052;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1053;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1054;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1056;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1057;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1058;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1059;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1060;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1062;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1063;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1064;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1065;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1066;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1069;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1067;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1068;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1091;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1092;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1093;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1135;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1136;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1137;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1138;entity.sheep.shear":"1;mob/sheep/shear;1","1139;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1148;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1153;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1154;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1155;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1156;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1157;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1158;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1159;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1151;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1152;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1160;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1161;entity.silverfish.death":"1;mob/silverfish/kill;1","1162;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1163;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1164;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1165;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1166;entity.skeleton.death":"1;mob/skeleton/death;1","1175;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1176;entity.skeleton.shoot":"1;random/bow;1","1177;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1167;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1171;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1168;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1172;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1169;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1173;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1174;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1170;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1178;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1179;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1220;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1180;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1221;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1181;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1222;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1182;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1223;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1230;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1235;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1236;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1231;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1227;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1237;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1229;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1228;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1232;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1234;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1233;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1226;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1245;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1246;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1248;entity.snow_golem.shear":"1;mob/sheep/shear;1","1247;entity.snow_golem.shoot":"1;random/bow;1","1241;entity.snowball.throw":"1;random/bow;1","1252;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1253;entity.spider.death":"1;mob/spider/death;1","1254;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1255;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1256;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1257;entity.splash_potion.throw":"1;random/bow;1","1266;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1267;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1268;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1269;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1279;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1280;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1281;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1282;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1211;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1214;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1218;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1212;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1215;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1213;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1219;entity.strider.saddle":"1;mob/horse/leather;1","1216;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1217;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1286;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1287;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1288;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1289;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1291;entity.tnt.primed":"1;random/fuse;1","1306;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1307;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1308;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1314;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1315;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1316;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1317;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1318;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1319;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1320;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1321;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1322;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1323;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1324;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1325;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1335;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1336;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1337;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1338;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1339;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1340;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1341;entity.villager.death":"1;mob/villager/death;1","1342;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1343;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1344;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1346;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1347;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1348;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1349;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1350;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1351;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1352;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1353;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1354;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1355;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1356;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1357;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1358;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1345;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1359;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1360;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1361;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1362;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1369;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1370;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1371;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1372;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1373;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1374;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1375;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1376;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1377;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1378;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1379;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1380;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1381;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1382;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1383;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1384;entity.warden.dig":"1;mob/warden/dig;1","1385;entity.warden.emerge":"1;mob/warden/emerge;1","1386;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1387;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1388;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1389;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1390;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1391;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1392;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1393;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1394;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1395;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1396;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1397;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1398;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1413;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1414;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1415;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1416;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1417;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1418;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1419;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1420;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1421;entity.wither.death":"1;mob/wither/death;1","1422;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1423;entity.wither.shoot":"1;mob/wither/shoot;1","1428;entity.wither.spawn":"1;mob/wither/spawn;1","1424;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1425;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1426;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1427;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1429;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1430;entity.wolf.death":"1;mob/wolf/death;1","1431;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1432;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1433;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1434;entity.wolf.pant":"1;mob/wolf/panting;1","1435;entity.wolf.shake":"1;mob/wolf/shake;1","1436;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1437;entity.wolf.whine":"1;mob/wolf/whine;1","1456;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1457;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1458;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1459;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1460;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1461;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1462;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1464;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1463;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1465;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1466;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1467;entity.zombie.death":"1;mob/zombie/death;1","1468;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1472;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1473;entity.zombie.infect":"1;mob/zombie/infect;1","1478;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1469;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1470;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1471;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1479;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1480;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1481;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1482;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1483;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1484;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1474;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1475;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1476;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1477;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1061;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","54;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","55;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","56;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","57;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","58;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","59;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","60;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","61;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","62;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","71;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","70;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","72;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","159;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","160;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","161;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","163;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","164;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","165;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","167;item.brush.brushing.generic":"0.4;item/brush/brushing_generic1;1,0.4;item/brush/brushing_generic2;1,0.4;item/brush/brushing_generic3;1,0.4;item/brush/brushing_generic4;1","169;item.brush.brushing.gravel":"0.6;item/brush/brushing_gravel1;1,0.6;item/brush/brushing_gravel2;1,0.6;item/brush/brushing_gravel3;1,0.6;item/brush/brushing_gravel4;1","171;item.brush.brushing.gravel.complete":"1;item/brush/brushing_gravel_complete1;1,1;item/brush/brushing_gravel_complete2;1,1;item/brush/brushing_gravel_complete3;1,1;item/brush/brushing_gravel_complete4;1","168;item.brush.brushing.sand":"0.6;item/brush/brushing_sand1;1,0.6;item/brush/brushing_sand2;1,0.6;item/brush/brushing_sand3;1,0.6;item/brush/brushing_sand4;1","170;item.brush.brushing.sand.complete":"1;item/brush/brush_sand_complete1;1,1;item/brush/brush_sand_complete2;1,1;item/brush/brush_sand_complete3;1,1;item/brush/brush_sand_complete4;1,1;item/brush/brush_sand_complete5;1","177;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","178;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","179;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","180;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","181;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","182;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","183;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","184;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","185;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","186;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","187;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","188;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","189;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","190;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","191;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","286;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","320;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","321;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","322;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","323;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","324;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","325;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","326;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","327;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","328;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","395;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","405;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","445;item.firecharge.use":"1;mob/ghast/fireball4;1","460;item.flintandsteel.use":"1;fire/ignite;1","539;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","609;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","625;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","624;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","665;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","719;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","837;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1140;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1141;item.shield.break":"1;random/break;1","1147;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1265;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1264;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1292;item.totem.use":"1;item/totem/use_totem;1","1293;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1294;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1295;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1296;item.trident.riptide_1":"1;item/trident/riptide1;1","1297;item.trident.riptide_2":"1;item/trident/riptide2;1","1298;item.trident.riptide_3":"1;item/trident/riptide3;1","1299;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1300;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","784;music.creative":"1;music.game;1,1;music/game/creative/creative1;1,1;music/game/creative/creative2;1,1;music/game/creative/creative3;1,1;music/game/creative/creative4;1,1;music/game/creative/creative5;1,1;music/game/creative/creative6;1","785;music.credits":"1;music/game/end/credits;1","802;music.dragon":"1;music/game/end/boss;1","803;music.end":"1;music/game/end/end;1","804;music.game":"0.4;music/game/a_familiar_room;1,1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1","805;music.menu":"0.4;music/game/a_familiar_room;1,0.4;music/game/bromeliad;1,0.4;music/game/crescent_dunes;1,0.4;music/game/echo_in_the_wind;1,1;music/menu/menu1;1,1;music/menu/menu2;1,1;music/menu/menu3;1,1;music/menu/menu4;1","806;music.nether.basalt_deltas":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","807;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/nether1;7,1;music/game/nether/nether2;7,1;music/game/nether/nether3;7,1;music/game/nether/nether4;7","818;music.nether.nether_wastes":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/nether_wastes/rubedo;6","821;music.nether.soul_sand_valley":"1;music/game/nether/nether1;1,1;music/game/nether/nether2;1,1;music/game/nether/nether3;1,1;music/game/nether/nether4;1,0.5;music/game/nether/soulsand_valley/so_below;7","826;music.overworld.badlands":"0.4;music/game/crescent_dunes;2,0.4;music/game/echo_in_the_wind;2,1;music/game/hal1;2,1;music/game/hal2;2,1;music/game/hal3;2,1;music/game/hal4;2,1;music/game/nuance1;2,1;music/game/nuance2;2,0.4;music/game/one_more_day;2,1;music/game/piano1;2,1;music/game/piano2;2,1;music/game/piano3;2","829;music.overworld.bamboo_jungle":"0.4;music/game/bromeliad;2,1;music/game/hal1;2,1;music/game/hal2;2,1;music/game/hal3;2,1;music/game/hal4;2,0.4;music/game/left_to_bloom;2,1;music/game/nuance1;2,1;music/game/nuance2;2,1;music/game/piano1;2,1;music/game/piano2;2,1;music/game/piano3;2","817;music.overworld.cherry_grove":"0.4;music/game/bromeliad;3,1;music/game/calm1;3,1;music/game/calm2;3,1;music/game/calm3;3,0.4;music/game/echo_in_the_wind;3,0.4;music/game/left_to_bloom;3","808;music.overworld.deep_dark":"1;music/game/ancestry;1","825;music.overworld.desert":"0.4;music/game/crescent_dunes;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,1;music/game/nuance1;3,1;music/game/nuance2;3,0.4;music/game/one_more_day;3","809;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal4;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/wending;2","824;music.overworld.flower_forest":"0.4;music/game/bromeliad;1,0.4;music/game/echo_in_the_wind;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1","814;music.overworld.forest":"0.4;music/game/bromeliad;1,1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,1;music/game/nuance1;1,1;music/game/nuance2;1,0.4;music/game/one_more_day;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","819;music.overworld.frozen_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2","810;music.overworld.grove":"1;music/game/calm1;1,1;music/game/calm2;1,1;music/game/calm3;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano3;1,0.4;music/game/wending;1","811;music.overworld.jagged_peaks":"0.4;music/game/floating_dream;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/nuance1;1,1;music/game/nuance2;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;1,0.4;music/game/wending;1","827;music.overworld.jungle":"0.4;music/game/bromeliad;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,0.4;music/game/left_to_bloom;3,1;music/game/nuance1;3,1;music/game/nuance2;3,1;music/game/piano1;3,1;music/game/piano2;3,1;music/game/piano3;3","812;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/calm1;2,1;music/game/calm2;2,1;music/game/calm3;2,0.4;music/game/echo_in_the_wind;2,1;music/game/floating_dream;2,0.4;music/game/one_more_day;2,1;music/game/piano3;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2","816;music.overworld.meadow":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,0.4;music/game/left_to_bloom;1,0.4;music/game/one_more_day;2","815;music.overworld.old_growth_taiga":"1;music/game/calm1;3,1;music/game/calm2;3,1;music/game/calm3;3,0.4;music/game/comforting_memories;3,0.4;music/game/floating_dream;3,1;music/game/hal1;3,1;music/game/hal2;3,1;music/game/hal3;3,1;music/game/hal4;3,0.4;music/game/left_to_bloom;3,1;music/game/nuance1;3,1;music/game/nuance2;3,0.4;music/game/one_more_day;3,1;music/game/piano1;3,1;music/game/piano2;3,1;music/game/piano3;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3","820;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1","828;music.overworld.sparse_jungle":"0.4;music/game/bromeliad;2,1;music/game/hal1;2,1;music/game/hal2;2,1;music/game/hal3;2,1;music/game/hal4;2,0.4;music/game/left_to_bloom;2,1;music/game/nuance1;2,1;music/game/nuance2;2,1;music/game/piano1;2,1;music/game/piano2;2,1;music/game/piano3;2","822;music.overworld.stony_peaks":"1;music/game/hal1;1,1;music/game/hal2;1,1;music/game/hal3;1,1;music/game/hal4;1,1;music/game/piano1;1,1;music/game/piano2;1,1;music/game/piano3;1,0.4;music/game/stand_tall;2,0.4;music/game/wending;1","813;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","830;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","787;music_disc.11":"1;records/11;1","788;music_disc.13":"1;records/13;1","786;music_disc.5":"1;records/5;1","789;music_disc.blocks":"1;records/blocks;1","790;music_disc.cat":"1;records/cat;1","791;music_disc.chirp":"1;records/chirp;1","792;music_disc.far":"1;records/far;1","793;music_disc.mall":"1;records/mall;1","794;music_disc.mellohi":"1;records/mellohi;1","800;music_disc.otherside":"1;records/otherside;1","795;music_disc.pigstep":"1;records/pigstep;1","801;music_disc.relic":"1;records/relic;1","796;music_disc.stal":"1;records/stal;1","797;music_disc.strad":"1;records/strad;1","798;music_disc.wait":"1;records/wait;1","799;music_disc.ward":"1;records/ward;1","1205;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1326;ui.button.click":"1;random/click_stereo;1","1329;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1327;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1328;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1331;ui.stonecutter.select_recipe":"1;random/click;1","1330;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1332;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1333;ui.toast.in":"0.4;ui/toast/in;1","1334;ui.toast.out":"0.4;ui/toast/out;1","1401;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1402;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.20.3":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.5;ambient/underwater/enter1;1,0.5;ambient/underwater/enter2;1,0.5;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.3;ambient/underwater/exit1;1,0.3;ambient/underwater/exit2;1,0.3;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.resonate":"1;block/amethyst/resonate1;1,1;block/amethyst/resonate2;1,1;block/amethyst/resonate3;1,1;block/amethyst/resonate4;1","35;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","36;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","37;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","38;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","39;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","40;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","41;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","45;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","44;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","42;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","46;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","47;block.anvil.destroy":"1;random/anvil_break;1","48;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","50;block.anvil.land":"1;random/anvil_land;1","51;block.anvil.place":"1;random/anvil_land;1","52;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","53;block.anvil.use":"1;random/anvil_use;1","80;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","81;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","82;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","83;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","84;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","85;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","86;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","87;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","88;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","89;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","90;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","91;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","92;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","93;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","94;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","95;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","96;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","97;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","98;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","99;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","100;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","101;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","102;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","107;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","108;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","103;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","104;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","111;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","112;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","634;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","635;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","636;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","637;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","633;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","109;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","110;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","105;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","106;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","113;block.barrel.close":"1;block/barrel/close;1","114;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","115;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","119;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","118;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","117;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","116;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","125;block.beacon.activate":"1;block/beacon/activate;1","126;block.beacon.ambient":"0.9;block/beacon/ambient;1","127;block.beacon.deactivate":"1;block/beacon/deactivate;1","128;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","135;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","136;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","137;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","138;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","139;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","141;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","140;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","142;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","143;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","144;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","145;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","146;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","413;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","414;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","162;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","154;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","155;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","156;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","157;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","158;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","175;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","181;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","182;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","183;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","184;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","185;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","201;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","202;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","206;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","205;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","204;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","203;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","218;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","219;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","220;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","221;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","222;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","223;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","224;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","225;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","235;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","236;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","237;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","240;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","238;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","239;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","241;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","242;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","243;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","244;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","245;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","256;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","257;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","258;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","259;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","260;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","251;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","252;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","253;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","254;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","255;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","246;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","247;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","248;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","249;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","250;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","270;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","271;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","266;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","267;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","274;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","275;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","262;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","263;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","264;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","265;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","261;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","272;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","273;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","268;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","269;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","276;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","277;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","278;block.chest.open":"1;block/chest/open;1","284;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","285;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","286;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","287;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","288;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","290;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","291;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","292;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","289;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","293;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","294;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","300;block.comparator.click":"1;random/click;1","301;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","302;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","303;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","304;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","305;block.conduit.activate":"0.9;block/conduit/activate;1","306;block.conduit.ambient":"1;block/conduit/ambient;1","307;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","308;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","309;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","317;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","321;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","320;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","319;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","318;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","310;block.copper_bulb.break":"1;block/copper_bulb/break1;1,1;block/copper_bulb/break2;1,1;block/copper_bulb/break3;1,1;block/copper_bulb/break4;1","314;block.copper_bulb.fall":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","313;block.copper_bulb.hit":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","312;block.copper_bulb.place":"1;block/copper_bulb/place1;1,1;block/copper_bulb/place2;1,1;block/copper_bulb/place3;1,1;block/copper_bulb/place4;1","311;block.copper_bulb.step":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","316;block.copper_bulb.turn_off":"1;block/copper_bulb/turn_off;1","315;block.copper_bulb.turn_on":"1;block/copper_bulb/turn_on;1","322;block.copper_door.close":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1","323;block.copper_door.open":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1,1;block/copper_door/toggle3;1","324;block.copper_grate.break":"1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","328;block.copper_grate.fall":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","327;block.copper_grate.hit":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","326;block.copper_grate.place":"1;block/copper_grate/break1;1,1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","325;block.copper_grate.step":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","329;block.copper_trapdoor.close":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","330;block.copper_trapdoor.open":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","331;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","332;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","333;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","334;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","335;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","341;block.crafter.craft":"1;block/crafter/craft;1,1;block/crafter/craft;1,1;block/crafter/craft;1","342;block.crafter.fail":"1;block/crafter/fail;1,1;block/crafter/fail;1,1;block/crafter/fail;1","346;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","356;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","357;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","358;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","359;block.decorated_pot.insert":"0.9;block/decorated_pot/insert1;1,0.9;block/decorated_pot/insert2;1,0.9;block/decorated_pot/insert3;1,0.9;block/decorated_pot/insert4;1","360;block.decorated_pot.insert_fail":"0.9;block/decorated_pot/insert_fail1;1,0.9;block/decorated_pot/insert_fail2;1,0.9;block/decorated_pot/insert_fail3;1,0.9;block/decorated_pot/insert_fail4;1,0.9;block/decorated_pot/insert_fail5;1","362;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","363;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1","361;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","369;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","370;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","371;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","372;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","373;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","364;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","365;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","366;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","367;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","368;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","374;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","375;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","376;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","377;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","378;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","379;block.dispenser.dispense":"1;random/click;1","380;block.dispenser.fail":"1;random/click;1","381;block.dispenser.launch":"1;random/bow;1","398;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","402;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","401;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","400;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","399;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","435;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","458;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","460;block.end_portal.spawn":"1;block/end_portal/endportal;1","459;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","436;block.ender_chest.close":"1;block/enderchest/close;1","437;block.ender_chest.open":"1;block/enderchest/open;1","472;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","473;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","483;block.fire.ambient":"1;fire/fire;1","484;block.fire.extinguish":"1;random/fizz;1","490;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","491;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","492;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","493;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","494;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","516;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","517;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","518;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","519;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","520;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","522;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","523;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","524;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","525;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","526;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","521;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","914;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","916;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","915;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","540;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","558;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","559;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","560;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","561;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","562;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","563;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","564;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","565;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","566;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","567;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","598;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","599;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","600;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","601;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","602;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","603;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","604;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","605;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","606;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","607;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","608;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","609;block.growing_plant.crop":"1;mob/sheep/shear;1","618;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","619;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","620;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","621;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","622;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","624;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","625;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","626;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","627;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","623;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","1451;block.hanging_sign.waxed_interact_fail":"1;block.sign.waxed_interact_fail;1","658;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","659;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","660;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","661;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","662;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","663;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","706;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","707;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","714;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","715;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","723;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","724;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","725;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","726;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","727;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","728;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","729;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","730;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","731;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","732;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","733;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","734;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","735;block.lava.ambient":"1;liquid/lava;1","736;block.lava.extinguish":"1;random/fizz;1","737;block.lava.pop":"1;liquid/lavapop;1","740;block.lever.click":"1;random/click;1","1420;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","754;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","758;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","757;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","756;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","755;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","766;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","767;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","768;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","769;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","770;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","771;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","772;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","773;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","774;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","775;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","776;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","779;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","777;block.metal_pressure_plate.click_off":"0.3;random/click;1","778;block.metal_pressure_plate.click_on":"0.3;random/click;1","798;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","799;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","800;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","801;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","802;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","788;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","789;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","790;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","791;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","792;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","803;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","804;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","805;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","806;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","807;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","808;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","809;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","810;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","811;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","812;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","813;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","814;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","815;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","816;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","817;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","871;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","875;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","874;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","873;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","872;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1112;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1113;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1114;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1115;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1116;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1117;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1118;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1119;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1120;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1121;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","909;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","913;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","912;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","911;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","910;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","876;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","878;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","879;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","880;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","881;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","882;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","887;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","888;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","883;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","884;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","891;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","892;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","629;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","630;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","631;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","632;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","628;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","889;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","890;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","885;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","886;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","929;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","933;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","932;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","931;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","930;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","934;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","938;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","937;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","936;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","935;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","954;block.note_block.banjo":"1;note/banjo;1","939;block.note_block.basedrum":"1;note/bd;1","940;block.note_block.bass":"1;note/bassattack;1","941;block.note_block.bell":"1;note/bell;1","953;block.note_block.bit":"1;note/bit;1","942;block.note_block.chime":"1;note/icechime;1","951;block.note_block.cow_bell":"1;note/cow_bell;1","952;block.note_block.didgeridoo":"1;note/didgeridoo;1","943;block.note_block.flute":"1;note/flute;1","944;block.note_block.guitar":"1;note/guitar;1","945;block.note_block.harp":"1;note/harp2;1","946;block.note_block.hat":"1;note/hat;1","957;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","958;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","960;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","956;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","959;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","955;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","950;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","947;block.note_block.pling":"1;note/pling;1","948;block.note_block.snare":"1;note/snare;1","949;block.note_block.xylophone":"1;note/xylobone;1","904;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","908;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","907;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","906;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","905;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","894;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","895;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","896;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","897;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","898;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","793;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","794;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","795;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","796;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","797;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","1048;block.piston.contract":"1;tile/piston/in;1","1049;block.piston.extend":"1;tile/piston/out;1","403;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","409;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","411;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","410;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","412;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","407;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","406;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","408;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","405;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","404;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1077;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1078;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1079;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1080;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1081;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1361;block.polished_tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1362;block.polished_tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1363;block.polished_tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1364;block.polished_tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1365;block.polished_tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1082;block.portal.ambient":"1;portal/portal;1","1083;block.portal.travel":"1;portal/travel;1","1084;block.portal.trigger":"1;portal/trigger;1","1085;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1086;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1087;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1088;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1089;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1097;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1122;block.redstone_torch.burnout":"1;random/fizz;1","1123;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1124;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1125;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1126;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1127;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1128;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1129;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1130;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1131;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","535;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","539;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","538;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","537;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","536;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1136;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1137;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1138;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1139;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1140;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1141;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1142;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1143;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1144;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1145;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1148;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1147;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1149;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1150;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1151;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1146;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1152;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1153;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1154;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1155;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1156;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1157;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1158;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1161;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1159;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1160;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1162;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1163;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1164;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1165;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1166;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1167;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1168;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1169;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1170;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1171;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1172;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1173;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1174;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1175;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1176;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1184;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1188;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1187;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1186;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1185;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1191;block.shulker_box.close":"1;block/shulker_box/close;1","1192;block.shulker_box.open":"1;block/shulker_box/open;1","1452;block.sign.waxed_interact_fail":"1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail3;1,1;block/sign/waxed_interact_fail3;1","1225;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1226;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1227;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1228;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1229;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1230;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1231;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1232;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1233;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1234;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1235;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1236;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1266;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1267;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1281;block.sniffer_egg.crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1282;block.sniffer_egg.hatch":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1280;block.sniffer_egg.plop":"1;mob/chicken/plop;1,1;mob/chicken/plop;1,1;mob/chicken/plop;1","1284;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1285;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1291;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1292;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1293;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1237;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1241;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1240;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1239;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1238;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1242;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1246;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1245;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1244;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1243;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1305;block.sponge.absorb":"1;block/sponge/absorb1;1,1;block/sponge/absorb2;1,1;block/sponge/absorb3;1","1300;block.sponge.break":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1301;block.sponge.fall":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1302;block.sponge.hit":"0.8;block/sponge/step1;1,0.8;block/sponge/step2;1,0.8;block/sponge/step3;1,0.8;block/sponge/step4;1,0.8;block/sponge/step5;1,0.8;block/sponge/step6;1","1303;block.sponge.place":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1304;block.sponge.step":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1248;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1249;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1250;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1251;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1252;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","899;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","903;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","902;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","901;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","900;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1312;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1315;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1316;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1317;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1320;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1313;block.stone_button.click_off":"0.3;random/click;1","1314;block.stone_button.click_on":"0.3;random/click;1","1318;block.stone_pressure_plate.click_off":"0.3;random/click;1","1319;block.stone_pressure_plate.click_on":"0.3;random/click;1","511;block.suspicious_gravel.break":"1;block/suspicious_gravel/break1;1,1;block/suspicious_gravel/break2;1,1;block/suspicious_gravel/break3;1,1;block/suspicious_gravel/break4;1,1;block/suspicious_gravel/break5;1,1;block/suspicious_gravel/break6;1","515;block.suspicious_gravel.fall":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","514;block.suspicious_gravel.hit":"0.8;block/suspicious_gravel/step1;1,0.8;block/suspicious_gravel/step2;1,0.8;block/suspicious_gravel/step3;1,0.8;block/suspicious_gravel/step4;1","513;block.suspicious_gravel.place":"1;block/suspicious_gravel/place1;1,1;block/suspicious_gravel/place2;1,1;block/suspicious_gravel/place3;1,1;block/suspicious_gravel/place4;1","512;block.suspicious_gravel.step":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","506;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","510;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","509;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","508;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","507;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1325;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1327;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1326;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","645;block.trial_spawner.ambient":"1;block/trial_spawner/ambient1;1,1;block/trial_spawner/ambient2;1,1;block/trial_spawner/ambient3;1,1;block/trial_spawner/ambient4;1,1;block/trial_spawner/ambient5;1","638;block.trial_spawner.break":"0.9;block/trial_spawner/break1;1,0.9;block/trial_spawner/break2;1,0.9;block/trial_spawner/break3;1","647;block.trial_spawner.close_shutter":"1;block/trial_spawner/close_shutter;1","644;block.trial_spawner.detect_player":"1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player3;1,1;block/trial_spawner/detect_player3;1","648;block.trial_spawner.eject_item":"1;block/trial_spawner/eject_item1;1","642;block.trial_spawner.fall":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","641;block.trial_spawner.hit":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","646;block.trial_spawner.open_shutter":"1;block/trial_spawner/open_shutter;1","640;block.trial_spawner.place":"1;block/trial_spawner/place1;1,1;block/trial_spawner/place2;1,1;block/trial_spawner/place3;1","643;block.trial_spawner.spawn_mob":"1;block/trial_spawner/spawn1;1,1;block/trial_spawner/spawn2;1,1;block/trial_spawner/spawn3;1,1;block/trial_spawner/spawn4;1","639;block.trial_spawner.step":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","1343;block.tripwire.attach":"1;random/click;1","1344;block.tripwire.click_off":"1;random/click;1","1345;block.tripwire.click_on":"1;random/click;1","1346;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1351;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1355;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1354;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1353;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1352;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1356;block.tuff_bricks.break":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1357;block.tuff_bricks.fall":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1358;block.tuff_bricks.hit":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1359;block.tuff_bricks.place":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1360;block.tuff_bricks.step":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1415;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1416;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1417;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1418;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1419;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","924;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","928;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","927;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","926;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","925;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1453;block.water.ambient":"1;liquid/water;1","919;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","923;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","922;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","921;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","920;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1456;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1457;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1458;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1459;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1460;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1461;block.wet_sponge.break":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1462;block.wet_sponge.fall":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1463;block.wet_sponge.hit":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1464;block.wet_sponge.place":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1465;block.wet_sponge.step":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1500;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1501;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1502;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1503;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1504;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1496;block.wooden_button.click_off":"0.3;random/wood_click;1","1497;block.wooden_button.click_on":"0.3;random/wood_click;1","1492;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1493;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1498;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1499;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1494;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1495;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1505;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1506;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1507;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1508;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1509;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1332;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","63;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","64;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","65;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","66;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","67;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","68;entity.arrow.hit_player":"1;random/successful_hit;1","69;entity.arrow.shoot":"1;random/bow;1","73;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","74;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","75;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","76;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","77;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","78;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","79;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","120;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","121;entity.bat.death":"1;mob/bat/death;1","122;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","123;entity.bat.loop":"1;mob/bat/loop;1","124;entity.bat.takeoff":"1;mob/bat/takeoff;1","129;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","130;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","132;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","131;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","134;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","133;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","147;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","148;entity.blaze.burn":"1;fire/fire;1","149;entity.blaze.death":"1;mob/blaze/death;1","150;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","151;entity.blaze.shoot":"1;mob/ghast/fireball4;1","152;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","153;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","173;entity.breeze.death":"1;mob/breeze/death1;1,1;mob/breeze/death2;1","174;entity.breeze.hurt":"1;mob/breeze/hurt1;1,1;mob/breeze/hurt2;1,1;mob/breeze/hurt3;1","168;entity.breeze.idle_air":"1;mob/breeze/idle_air1;1,1;mob/breeze/idle_air2;1,1;mob/breeze/idle_air3;1,1;mob/breeze/idle_air4;1","167;entity.breeze.idle_ground":"1;mob/breeze/idle1;1,1;mob/breeze/idle2;1,1;mob/breeze/idle3;1,1;mob/breeze/idle4;1","166;entity.breeze.inhale":"1;mob/breeze/inhale1;1,1;mob/breeze/inhale1;1,1;mob/breeze/inhale2;1,1;mob/breeze/inhale2;1","170;entity.breeze.jump":"1;mob/breeze/jump1;1,1;mob/breeze/jump2;1","171;entity.breeze.land":"1;mob/breeze/land1;1,1;mob/breeze/land2;1","169;entity.breeze.shoot":"1;mob/breeze/shoot;1,1;mob/breeze/shoot;1,1;mob/breeze/shoot;1","172;entity.breeze.slide":"1;mob/breeze/slide1;1,1;mob/breeze/slide2;1,1;mob/breeze/slide3;1,1;mob/breeze/slide4;1","207;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","208;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","209;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","210;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","211;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","212;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","213;entity.camel.saddle":"1;entity.horse.saddle;1","214;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","215;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","216;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","217;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","226;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","231;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","228;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","229;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","230;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","232;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","233;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","234;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","227;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","279;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","280;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","281;entity.chicken.egg":"1;mob/chicken/plop;1","282;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","283;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","297;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","298;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","299;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","336;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","337;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","338;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","339;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","340;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","343;entity.creeper.death":"1;mob/creeper/death;1","344;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","345;entity.creeper.primed":"1;random/fuse;1","382;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","383;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","384;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","385;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","386;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","387;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","388;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","389;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","390;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","391;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","392;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","393;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","394;entity.donkey.chest":"1;mob/chicken/plop;1","395;entity.donkey.death":"1;mob/horse/donkey/death;1","396;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","397;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","440;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","415;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","416;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","417;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","418;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","419;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","420;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","421;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","422;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","423;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","425;entity.egg.throw":"1;random/bow;1","426;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","427;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","428;entity.elder_guardian.curse":"1;mob/guardian/curse;1","429;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","430;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","431;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","432;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","433;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","438;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","439;entity.ender_dragon.death":"1;mob/enderdragon/end;1","441;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","442;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","443;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","444;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","445;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","446;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","457;entity.ender_pearl.throw":"1;random/bow;1","447;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","448;entity.enderman.death":"1;mob/endermen/death;1","449;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","450;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","451;entity.enderman.stare":"1;mob/endermen/stare;1","452;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","453;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","454;entity.endermite.death":"1;mob/silverfish/kill;1","455;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","456;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","461;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","462;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","463;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","464;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","466;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","467;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","468;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","469;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","465;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","470;entity.experience_bottle.throw":"1;random/bow;1","471;entity.experience_orb.pickup":"1;random/orb;1","475;entity.firework_rocket.blast":"1;fireworks/blast1;1","476;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","477;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","478;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","479;entity.firework_rocket.launch":"1;fireworks/launch1;1","480;entity.firework_rocket.shoot":"1;random/bow;1","481;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","482;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","485;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","486;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","487;entity.fishing_bobber.splash":"1;random/splash;1","488;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","495;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","496;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","497;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","498;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","499;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","500;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","501;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","502;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","503;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","504;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","505;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","527;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","528;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","529;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","530;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","531;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","532;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","533;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","534;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","541;entity.generic.big_fall":"1;damage/fallbig;1","542;entity.generic.burn":"1;random/fizz;1","543;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","544;entity.generic.drink":"1;random/drink;1","545;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","546;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","547;entity.generic.extinguish_fire":"1;random/fizz;1","548;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","549;entity.generic.small_fall":"1;damage/fallsmall;1","550;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","551;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","1466;entity.generic.wind_burst":"1;mob/breeze/wind_burst1;1,1;mob/breeze/wind_burst2;1,1;mob/breeze/wind_burst3;1","552;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","553;entity.ghast.death":"1;mob/ghast/death;1","554;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","555;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","556;entity.ghast.shoot":"1;mob/ghast/fireball4;1","557;entity.ghast.warn":"1;mob/ghast/charge;1","569;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","570;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","571;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","572;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","573;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","574;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","575;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","576;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","577;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","578;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","579;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","580;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","586;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","581;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","582;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","583;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","584;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","585;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","588;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","589;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","590;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","591;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","592;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","593;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","594;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","595;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","597;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","610;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","611;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","612;entity.guardian.attack":"1;mob/guardian/attack_loop;1","613;entity.guardian.death":"1;mob/guardian/guardian_death;1","614;entity.guardian.death_land":"1;mob/guardian/land_death;1","615;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","616;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","617;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","650;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","651;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","652;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","653;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","654;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","655;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","656;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","657;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","674;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","675;entity.horse.angry":"1;mob/horse/angry1;1","676;entity.horse.armor":"1;mob/horse/armor;1","677;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","678;entity.horse.death":"1;mob/horse/death;1","679;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","680;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","681;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","682;entity.horse.jump":"1;mob/horse/jump;1","683;entity.horse.land":"1;mob/horse/land;1","684;entity.horse.saddle":"1;mob/horse/leather;1","685;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","686;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","687;entity.hostile.big_fall":"1;damage/fallbig;1","688;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","689;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","690;entity.hostile.small_fall":"1;damage/fallsmall;1","691;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","692;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","693;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","694;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","695;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","696;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","697;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","698;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","699;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","700;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","701;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","702;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","703;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","704;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","708;entity.iron_golem.attack":"1;mob/irongolem/throw;1","709;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","710;entity.iron_golem.death":"1;mob/irongolem/death;1","711;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","712;entity.iron_golem.repair":"1;mob/irongolem/repair;1","713;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","721;entity.item.break":"1;random/break;1","722;entity.item.pickup":"1;random/pop;1","716;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","717;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","718;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","719;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","720;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","738;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","739;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","741;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","742;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","743;entity.lingering_potion.throw":"1;random/bow;1","744;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","745;entity.llama.angry":"1;mob/llama/angry1;1","746;entity.llama.chest":"1;mob/chicken/plop;1","747;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","748;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","749;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","750;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","751;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","752;entity.llama.swag":"1;mob/llama/swag;1","760;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","753;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","761;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","762;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","763;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","764;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","765;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","781;entity.minecart.inside":"1;minecart/inside;1","780;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","782;entity.minecart.riding":"1;minecart/base;1","783;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","784;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","785;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","787;entity.mooshroom.shear":"1;mob/sheep/shear;1","786;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","818;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","819;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","820;entity.mule.chest":"1;mob/chicken/plop;1","821;entity.mule.death":"1;mob/horse/donkey/death;1","822;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","823;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","962;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","963;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","961;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","964;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","965;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","973;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","968;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","976;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","972;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","969;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","970;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","975;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","966;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","967;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","971;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","974;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","977;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","978;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","979;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","980;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","981;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","982;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","983;entity.parrot.imitate.breeze":"0.7;entity.breeze.idle_ground;1","984;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","985;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","986;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","987;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","988;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","989;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","990;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","991;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","992;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","993;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","994;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","995;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","996;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","997;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","998;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","999;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","1000;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","1001;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","1002;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","1003;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","1004;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","1005;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","1006;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","1007;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","1008;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","1009;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","1010;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","1011;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","1012;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","1013;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","1014;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","1015;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","1016;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","1017;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","1018;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","1019;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","1020;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","1021;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","1022;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","1023;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1024;entity.pig.death":"1;mob/pig/death;1","1025;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1026;entity.pig.saddle":"1;mob/horse/leather;1","1027;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","1028;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","1029;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","1030;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","1031;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","1037;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1032;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","1034;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","1033;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","1035;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","1036;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","1038;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","1039;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","1043;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1040;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","1041;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","1042;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","1044;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","1045;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","1046;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","1047;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","1050;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","1051;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","1052;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1053;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","1054;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","1055;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1056;entity.player.big_fall":"1;damage/fallbig;1","1057;entity.player.breath":"1;random/breath;1","1058;entity.player.burp":"1;random/burp;1","1059;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1060;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1061;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1062;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1063;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1064;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1065;entity.player.levelup":"1;random/levelup;1","1066;entity.player.small_fall":"1;damage/fallsmall;1","1067;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1068;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1069;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1070;entity.player.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1071;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1072;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1073;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1074;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1075;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1076;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1091;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1092;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1093;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1094;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1095;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1096;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1098;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1099;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1100;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1101;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1102;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1104;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1105;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1106;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1107;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1108;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1111;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1109;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1110;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1133;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1134;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1135;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1177;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1178;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1179;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1180;entity.sheep.shear":"1;mob/sheep/shear;1","1181;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1190;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1195;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1196;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1197;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1198;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1199;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1200;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1201;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1193;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1194;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1202;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1203;entity.silverfish.death":"1;mob/silverfish/kill;1","1204;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1205;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1206;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1207;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1208;entity.skeleton.death":"1;mob/skeleton/death;1","1217;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1218;entity.skeleton.shoot":"1;random/bow;1","1219;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1209;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1213;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1210;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1214;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1211;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1215;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1216;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1212;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1220;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1221;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1262;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1222;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1263;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1223;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1264;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1224;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1265;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1272;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1277;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1278;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1273;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1269;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1279;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1271;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1270;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1274;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1276;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1275;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1268;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1287;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1288;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1290;entity.snow_golem.shear":"1;mob/sheep/shear;1","1289;entity.snow_golem.shoot":"1;random/bow;1","1283;entity.snowball.throw":"1;random/bow;1","1294;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1295;entity.spider.death":"1;mob/spider/death;1","1296;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1297;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1298;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1299;entity.splash_potion.throw":"1;random/bow;1","1308;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1309;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1310;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1311;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1321;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1322;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1323;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1324;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1253;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1256;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1260;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1254;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1257;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1255;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1261;entity.strider.saddle":"1;mob/horse/leather;1","1258;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1259;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1328;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1329;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1330;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1331;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1333;entity.tnt.primed":"1;random/fuse;1","1348;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1349;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1350;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1366;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1367;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1368;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1369;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1370;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1371;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1372;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1373;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1374;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1375;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1376;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1377;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1387;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1388;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1389;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1390;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1391;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1392;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1393;entity.villager.death":"1;mob/villager/death;1","1394;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1395;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1396;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1398;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1399;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1400;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1401;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1402;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1403;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1404;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1405;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1406;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1407;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1408;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1409;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1410;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1397;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1411;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1412;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1413;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1414;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1421;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1422;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1423;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1424;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1425;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1426;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1427;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1428;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1429;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1430;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1431;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1432;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1433;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1434;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1435;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1436;entity.warden.dig":"1;mob/warden/dig;1","1437;entity.warden.emerge":"1;mob/warden/emerge;1","1438;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1439;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1440;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1441;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1442;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1443;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1444;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1445;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1446;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1447;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1448;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1449;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1450;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1467;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1468;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1469;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1470;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1471;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1472;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1473;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1474;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1475;entity.wither.death":"1;mob/wither/death;1","1476;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1477;entity.wither.shoot":"1;mob/wither/shoot;1","1482;entity.wither.spawn":"1;mob/wither/spawn;1","1478;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1479;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1480;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1481;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1483;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1484;entity.wolf.death":"1;mob/wolf/death;1","1485;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1486;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1487;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1488;entity.wolf.pant":"1;mob/wolf/panting;1","1489;entity.wolf.shake":"1;mob/wolf/shake;1","1490;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1491;entity.wolf.whine":"1;mob/wolf/whine;1","1510;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1511;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1512;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1513;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1514;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1515;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1516;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1518;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1517;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1519;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1520;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1521;entity.zombie.death":"1;mob/zombie/death;1","1522;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1526;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1527;entity.zombie.infect":"1;mob/zombie/infect;1","1532;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1523;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1524;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1525;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1533;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1534;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1535;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1536;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1537;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1538;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1528;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1529;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1530;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1531;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1103;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","54;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","55;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","56;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","57;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","58;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","59;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","60;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","61;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","62;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","71;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","70;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","72;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","159;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","160;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","161;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","163;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","164;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","165;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","176;item.brush.brushing.generic":"0.4;item/brush/brushing_generic1;1,0.4;item/brush/brushing_generic2;1,0.4;item/brush/brushing_generic3;1,0.4;item/brush/brushing_generic4;1","178;item.brush.brushing.gravel":"0.6;item/brush/brushing_gravel1;1,0.6;item/brush/brushing_gravel2;1,0.6;item/brush/brushing_gravel3;1,0.6;item/brush/brushing_gravel4;1","180;item.brush.brushing.gravel.complete":"1;item/brush/brushing_gravel_complete1;1,1;item/brush/brushing_gravel_complete2;1,1;item/brush/brushing_gravel_complete3;1,1;item/brush/brushing_gravel_complete4;1","177;item.brush.brushing.sand":"0.6;item/brush/brushing_sand1;1,0.6;item/brush/brushing_sand2;1,0.6;item/brush/brushing_sand3;1,0.6;item/brush/brushing_sand4;1","179;item.brush.brushing.sand.complete":"1;item/brush/brush_sand_complete1;1,1;item/brush/brush_sand_complete2;1,1;item/brush/brush_sand_complete3;1,1;item/brush/brush_sand_complete4;1,1;item/brush/brush_sand_complete5;1","186;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","187;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","188;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","189;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","190;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","191;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","192;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","193;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","194;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","195;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","196;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","197;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","198;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","199;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","200;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","295;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","347;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","348;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","349;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","350;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","351;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","352;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","353;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","354;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","355;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","424;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","434;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","474;item.firecharge.use":"1;mob/ghast/fireball4;1","489;item.flintandsteel.use":"1;fire/ignite;1","568;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","649;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","665;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","664;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","705;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","759;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","877;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1182;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1183;item.shield.break":"1;random/break;1","1189;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1307;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1306;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1334;item.totem.use":"1;item/totem/use_totem;1","1335;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1336;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1337;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1338;item.trident.riptide_1":"1;item/trident/riptide1;1","1339;item.trident.riptide_2":"1;item/trident/riptide2;1","1340;item.trident.riptide_3":"1;item/trident/riptide3;1","1341;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1342;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","824;music.creative":"1;music.game;1,1;music/game/creative/biome_fest;1,1;music/game/creative/blind_spots;1,1;music/game/creative/haunt_muskie;1,1;music/game/creative/aria_math;1,1;music/game/creative/dreiton;1,1;music/game/creative/taswell;1","825;music.credits":"1;music/game/end/alpha;1","842;music.dragon":"1;music/game/end/boss;1","843;music.end":"1;music/game/end/the_end;1","844;music.game":"0.4;music/game/a_familiar_room;1,1;music/game/minecraft;1,1;music/game/clark;1,1;music/game/sweden;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/haggstrom;1,1;music/game/danny;1,0.4;music/game/left_to_bloom;1,1;music/game/key;1,1;music/game/oxygene;1,0.4;music/game/one_more_day;1,1;music/game/dry_hands;1,1;music/game/wet_hands;1,1;music/game/mice_on_venus;1","845;music.menu":"0.4;music/game/a_familiar_room;1,0.4;music/game/bromeliad;1,0.4;music/game/crescent_dunes;1,0.4;music/game/echo_in_the_wind;1,1;music/menu/mutation;1,1;music/menu/moog_city_2;1,1;music/menu/beginning_2;1,1;music/menu/floating_trees;1","846;music.nether.basalt_deltas":"1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,1;music/game/nether/warmth;1,1;music/game/nether/ballad_of_the_cats;1,0.5;music/game/nether/soulsand_valley/so_below;7","847;music.nether.crimson_forest":"0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/concrete_halls;7,1;music/game/nether/dead_voxel;7,1;music/game/nether/warmth;7,1;music/game/nether/ballad_of_the_cats;7","858;music.nether.nether_wastes":"1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,1;music/game/nether/warmth;1,1;music/game/nether/ballad_of_the_cats;1,0.5;music/game/nether/nether_wastes/rubedo;6","861;music.nether.soul_sand_valley":"1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,1;music/game/nether/warmth;1,1;music/game/nether/ballad_of_the_cats;1,0.5;music/game/nether/soulsand_valley/so_below;7","866;music.overworld.badlands":"0.4;music/game/crescent_dunes;2,0.4;music/game/echo_in_the_wind;2,1;music/game/subwoofer_lullaby;2,1;music/game/living_mice;2,1;music/game/haggstrom;2,1;music/game/danny;2,1;music/game/key;2,1;music/game/oxygene;2,0.4;music/game/one_more_day;2,1;music/game/dry_hands;2,1;music/game/wet_hands;2,1;music/game/mice_on_venus;2","869;music.overworld.bamboo_jungle":"0.4;music/game/bromeliad;2,1;music/game/subwoofer_lullaby;2,1;music/game/living_mice;2,1;music/game/haggstrom;2,1;music/game/danny;2,0.4;music/game/left_to_bloom;2,1;music/game/key;2,1;music/game/oxygene;2,1;music/game/dry_hands;2,1;music/game/wet_hands;2,1;music/game/mice_on_venus;2","857;music.overworld.cherry_grove":"0.4;music/game/bromeliad;3,1;music/game/minecraft;3,1;music/game/clark;3,1;music/game/sweden;3,0.4;music/game/echo_in_the_wind;3,0.4;music/game/left_to_bloom;3","848;music.overworld.deep_dark":"1;music/game/ancestry;1","865;music.overworld.desert":"0.4;music/game/crescent_dunes;3,1;music/game/subwoofer_lullaby;3,1;music/game/living_mice;3,1;music/game/haggstrom;3,1;music/game/danny;3,1;music/game/key;3,1;music/game/oxygene;3,0.4;music/game/one_more_day;3","849;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/subwoofer_lullaby;1,1;music/game/danny;1,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/oxygene;1,0.4;music/game/wending;2","864;music.overworld.flower_forest":"0.4;music/game/bromeliad;1,0.4;music/game/echo_in_the_wind;1,1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/haggstrom;1,1;music/game/danny;1,0.4;music/game/left_to_bloom;1,1;music/game/key;1,1;music/game/oxygene;1","854;music.overworld.forest":"0.4;music/game/bromeliad;1,1;music/game/minecraft;1,1;music/game/clark;1,1;music/game/sweden;1,0.4;music/game/comforting_memories;1,0.4;music/game/floating_dream;1,1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/haggstrom;1,1;music/game/danny;1,0.4;music/game/left_to_bloom;1,1;music/game/key;1,1;music/game/oxygene;1,0.4;music/game/one_more_day;1,1;music/game/dry_hands;1,1;music/game/wet_hands;1,1;music/game/mice_on_venus;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","859;music.overworld.frozen_peaks":"1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/haggstrom;1,1;music/game/danny;1,1;music/game/dry_hands;1,1;music/game/wet_hands;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2","850;music.overworld.grove":"1;music/game/minecraft;1,1;music/game/clark;1,1;music/game/sweden;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/oxygene;1,1;music/game/mice_on_venus;1,0.4;music/game/wending;1","851;music.overworld.jagged_peaks":"0.4;music/game/floating_dream;1,1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/key;1,1;music/game/oxygene;1,1;music/game/dry_hands;1,1;music/game/wet_hands;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;1,0.4;music/game/wending;1","867;music.overworld.jungle":"0.4;music/game/bromeliad;3,1;music/game/subwoofer_lullaby;3,1;music/game/living_mice;3,1;music/game/haggstrom;3,1;music/game/danny;3,0.4;music/game/left_to_bloom;3,1;music/game/key;3,1;music/game/oxygene;3,1;music/game/dry_hands;3,1;music/game/wet_hands;3,1;music/game/mice_on_venus;3","852;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/minecraft;2,1;music/game/clark;2,1;music/game/sweden;2,0.4;music/game/echo_in_the_wind;2,1;music/game/floating_dream;2,0.4;music/game/one_more_day;2,1;music/game/mice_on_venus;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2","856;music.overworld.meadow":"1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/haggstrom;1,1;music/game/danny;1,0.4;music/game/left_to_bloom;1,0.4;music/game/one_more_day;2","855;music.overworld.old_growth_taiga":"1;music/game/minecraft;3,1;music/game/clark;3,1;music/game/sweden;3,0.4;music/game/comforting_memories;3,0.4;music/game/floating_dream;3,1;music/game/subwoofer_lullaby;3,1;music/game/living_mice;3,1;music/game/haggstrom;3,1;music/game/danny;3,0.4;music/game/left_to_bloom;3,1;music/game/key;3,1;music/game/oxygene;3,0.4;music/game/one_more_day;3,1;music/game/dry_hands;3,1;music/game/wet_hands;3,1;music/game/mice_on_venus;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3","860;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/haggstrom;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1","868;music.overworld.sparse_jungle":"0.4;music/game/bromeliad;2,1;music/game/subwoofer_lullaby;2,1;music/game/living_mice;2,1;music/game/haggstrom;2,1;music/game/danny;2,0.4;music/game/left_to_bloom;2,1;music/game/key;2,1;music/game/oxygene;2,1;music/game/dry_hands;2,1;music/game/wet_hands;2,1;music/game/mice_on_venus;2","862;music.overworld.stony_peaks":"1;music/game/subwoofer_lullaby;1,1;music/game/living_mice;1,1;music/game/haggstrom;1,1;music/game/danny;1,1;music/game/dry_hands;1,1;music/game/wet_hands;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,0.4;music/game/wending;1","853;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","870;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","827;music_disc.11":"1;records/11;1","828;music_disc.13":"1;records/13;1","826;music_disc.5":"1;records/5;1","829;music_disc.blocks":"1;records/blocks;1","830;music_disc.cat":"1;records/cat;1","831;music_disc.chirp":"1;records/chirp;1","832;music_disc.far":"1;records/far;1","833;music_disc.mall":"1;records/mall;1","834;music_disc.mellohi":"1;records/mellohi;1","840;music_disc.otherside":"1;records/otherside;1","835;music_disc.pigstep":"1;records/pigstep;1","841;music_disc.relic":"1;records/relic;1","836;music_disc.stal":"1;records/stal;1","837;music_disc.strad":"1;records/strad;1","838;music_disc.wait":"1;records/wait;1","839;music_disc.ward":"1;records/ward;1","1247;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1378;ui.button.click":"1;random/click_stereo;1","1381;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1379;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1380;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1383;ui.stonecutter.select_recipe":"1;random/click;1","1382;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1384;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1385;ui.toast.in":"0.4;ui/toast/in;1","1386;ui.toast.out":"0.4;ui/toast/out;1","1454;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1455;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.20.5":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.5;ambient/underwater/enter1;1,0.5;ambient/underwater/enter2;1,0.5;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.3;ambient/underwater/exit1;1,0.3;ambient/underwater/exit2;1,0.3;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.resonate":"1;block/amethyst/resonate1;1,1;block/amethyst/resonate2;1,1;block/amethyst/resonate3;1,1;block/amethyst/resonate4;1","35;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","36;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","37;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","38;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","39;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","40;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","41;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","45;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","44;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","42;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","46;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","47;block.anvil.destroy":"1;random/anvil_break;1","48;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","50;block.anvil.land":"1;random/anvil_land;1","51;block.anvil.place":"1;random/anvil_land;1","52;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","53;block.anvil.use":"1;random/anvil_use;1","95;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","96;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","97;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","98;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","99;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","100;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","101;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","102;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","103;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","104;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","105;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","106;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","107;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","108;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","109;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","110;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","111;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","112;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","113;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","114;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","115;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","116;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","117;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","122;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","123;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","118;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","119;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","126;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","127;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","669;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","670;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","671;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","672;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","668;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","124;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","125;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","120;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","121;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","128;block.barrel.close":"1;block/barrel/close;1","129;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","130;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","134;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","133;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","132;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","131;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","140;block.beacon.activate":"1;block/beacon/activate;1","141;block.beacon.ambient":"0.9;block/beacon/ambient;1","142;block.beacon.deactivate":"1;block/beacon/deactivate;1","143;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","150;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","151;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","152;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","153;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","154;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","156;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","155;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","157;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","158;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","159;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","160;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","161;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","443;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","444;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","182;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","174;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","175;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","176;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","177;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","178;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","199;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","205;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","206;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","207;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","208;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","209;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","225;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","226;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","230;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","229;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","228;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","227;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","242;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","243;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","244;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","245;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","246;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","247;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","248;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","249;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","259;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","260;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","261;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","264;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","262;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","263;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","265;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","266;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","267;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","268;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","269;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","280;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","281;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","282;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","283;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","284;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","275;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","276;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","277;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","278;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","279;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","270;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","271;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","272;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","273;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","274;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","294;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","295;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","290;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","291;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","298;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","299;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","286;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","287;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","288;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","289;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","285;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","296;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","297;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","292;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","293;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","300;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","301;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","302;block.chest.open":"1;block/chest/open;1","308;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","309;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","310;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","311;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","312;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","314;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","315;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","316;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","313;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","317;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","318;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","320;block.cobweb.break":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","324;block.cobweb.fall":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","323;block.cobweb.hit":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","322;block.cobweb.place":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","321;block.cobweb.step":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","329;block.comparator.click":"1;random/click;1","330;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","331;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","332;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","333;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","334;block.conduit.activate":"0.9;block/conduit/activate;1","335;block.conduit.ambient":"1;block/conduit/ambient;1","336;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","337;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","338;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","346;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","350;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","349;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","348;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","347;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","339;block.copper_bulb.break":"1;block/copper_bulb/break1;1,1;block/copper_bulb/break2;1,1;block/copper_bulb/break3;1,1;block/copper_bulb/break4;1","343;block.copper_bulb.fall":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","342;block.copper_bulb.hit":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","341;block.copper_bulb.place":"1;block/copper_bulb/place1;1,1;block/copper_bulb/place2;1,1;block/copper_bulb/place3;1,1;block/copper_bulb/place4;1","340;block.copper_bulb.step":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","345;block.copper_bulb.turn_off":"1;block/copper_bulb/turn_off;1","344;block.copper_bulb.turn_on":"1;block/copper_bulb/turn_on;1","351;block.copper_door.close":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1","352;block.copper_door.open":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1,1;block/copper_door/toggle3;1","353;block.copper_grate.break":"1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","357;block.copper_grate.fall":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","356;block.copper_grate.hit":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","355;block.copper_grate.place":"1;block/copper_grate/break1;1,1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","354;block.copper_grate.step":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","358;block.copper_trapdoor.close":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","359;block.copper_trapdoor.open":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","360;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","361;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","362;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","363;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","364;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","370;block.crafter.craft":"1;block/crafter/craft;1,1;block/crafter/craft;1,1;block/crafter/craft;1","371;block.crafter.fail":"1;block/crafter/fail;1,1;block/crafter/fail;1,1;block/crafter/fail;1","375;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","385;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","386;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","387;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","388;block.decorated_pot.insert":"0.9;block/decorated_pot/insert1;1,0.9;block/decorated_pot/insert2;1,0.9;block/decorated_pot/insert3;1,0.9;block/decorated_pot/insert4;1","389;block.decorated_pot.insert_fail":"0.9;block/decorated_pot/insert_fail1;1,0.9;block/decorated_pot/insert_fail2;1,0.9;block/decorated_pot/insert_fail3;1,0.9;block/decorated_pot/insert_fail4;1,0.9;block/decorated_pot/insert_fail5;1","391;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","392;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1","390;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","398;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","399;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","400;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","401;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","402;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","393;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","394;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","395;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","396;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","397;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","403;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","404;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","405;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","406;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","407;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","408;block.dispenser.dispense":"1;random/click;1","409;block.dispenser.fail":"1;random/click;1","410;block.dispenser.launch":"1;random/bow;1","428;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","432;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","431;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","430;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","429;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","465;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","488;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","490;block.end_portal.spawn":"1;block/end_portal/endportal;1","489;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","466;block.ender_chest.close":"1;block/enderchest/close;1","467;block.ender_chest.open":"1;block/enderchest/open;1","502;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","503;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","513;block.fire.ambient":"1;fire/fire;1","514;block.fire.extinguish":"1;random/fizz;1","520;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","521;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","522;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","523;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","524;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","546;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","547;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","548;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","549;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","550;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","552;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","553;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","554;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","555;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","556;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","551;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","958;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","960;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","959;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","570;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","588;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","589;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","590;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","591;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","592;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","593;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","594;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","595;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","596;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","597;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","628;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","629;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","630;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","631;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","632;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","633;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","634;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","635;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","636;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","637;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","638;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","639;block.growing_plant.crop":"1;mob/sheep/shear;1","648;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","649;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","650;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","651;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","652;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","654;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","655;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","656;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","657;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","653;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","1510;block.hanging_sign.waxed_interact_fail":"1;block.sign.waxed_interact_fail;1","658;block.heavy_core.break":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","659;block.heavy_core.fall":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","660;block.heavy_core.hit":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","661;block.heavy_core.place":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","662;block.heavy_core.step":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","698;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","699;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","700;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","701;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","702;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","703;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","746;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","747;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","754;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","755;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","763;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","764;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","765;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","766;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","767;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","768;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","769;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","770;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","771;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","772;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","773;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","774;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","775;block.lava.ambient":"1;liquid/lava;1","776;block.lava.extinguish":"1;random/fizz;1","777;block.lava.pop":"1;liquid/lavapop;1","780;block.lever.click":"1;random/click;1","1479;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","794;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","798;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","797;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","796;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","795;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","809;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","810;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","811;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","812;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","813;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","814;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","815;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","816;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","817;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","818;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","819;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","822;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","820;block.metal_pressure_plate.click_off":"0.3;random/click;1","821;block.metal_pressure_plate.click_on":"0.3;random/click;1","841;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","842;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","843;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","844;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","845;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","831;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","832;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","833;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","834;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","835;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","846;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","847;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","848;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","849;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","850;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","851;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","852;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","853;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","854;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","855;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","856;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","857;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","858;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","859;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","860;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","915;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","919;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","918;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","917;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","916;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1158;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1159;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1160;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1161;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1162;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1163;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1164;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1165;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1166;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1167;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","953;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","957;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","956;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","955;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","954;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","920;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","922;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","923;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","924;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","925;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","926;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","931;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","932;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","927;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","928;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","935;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","936;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","664;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","665;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","666;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","667;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","663;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","933;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","934;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","929;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","930;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","973;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","977;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","976;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","975;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","974;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","978;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","982;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","981;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","980;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","979;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","998;block.note_block.banjo":"1;note/banjo;1","983;block.note_block.basedrum":"1;note/bd;1","984;block.note_block.bass":"1;note/bassattack;1","985;block.note_block.bell":"1;note/bell;1","997;block.note_block.bit":"1;note/bit;1","986;block.note_block.chime":"1;note/icechime;1","995;block.note_block.cow_bell":"1;note/cow_bell;1","996;block.note_block.didgeridoo":"1;note/didgeridoo;1","987;block.note_block.flute":"1;note/flute;1","988;block.note_block.guitar":"1;note/guitar;1","989;block.note_block.harp":"1;note/harp2;1","990;block.note_block.hat":"1;note/hat;1","1001;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","1002;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","1004;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","1000;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","1003;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","999;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","994;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","991;block.note_block.pling":"1;note/pling;1","992;block.note_block.snare":"1;note/snare;1","993;block.note_block.xylophone":"1;note/xylobone;1","948;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","952;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","951;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","950;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","949;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","938;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","939;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","940;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","941;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","942;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","836;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","837;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","838;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","839;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","840;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","1094;block.piston.contract":"1;tile/piston/in;1","1095;block.piston.extend":"1;tile/piston/out;1","433;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","439;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","441;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","440;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","442;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","437;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","436;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","438;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","435;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","434;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1123;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1124;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1125;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1126;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1127;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1407;block.polished_tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1408;block.polished_tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1409;block.polished_tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1410;block.polished_tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1411;block.polished_tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1128;block.portal.ambient":"1;portal/portal;1","1129;block.portal.travel":"1;portal/travel;1","1130;block.portal.trigger":"1;portal/trigger;1","1131;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1132;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1133;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1134;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1135;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1143;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1168;block.redstone_torch.burnout":"1;random/fizz;1","1169;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1170;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1171;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1172;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1173;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1174;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1175;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1176;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1177;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","565;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","569;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","568;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","567;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","566;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1182;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1183;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1184;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1185;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1186;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1187;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1188;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1189;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1190;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1191;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1194;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1193;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1195;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1196;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1197;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1192;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1198;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1199;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1200;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1201;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1202;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1203;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1204;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1207;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1205;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1206;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1208;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1209;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1210;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1211;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1212;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1213;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1214;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1215;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1216;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1217;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1218;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1219;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1220;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1221;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1222;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1230;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1234;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1233;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1232;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1231;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1237;block.shulker_box.close":"1;block/shulker_box/close;1","1238;block.shulker_box.open":"1;block/shulker_box/open;1","1511;block.sign.waxed_interact_fail":"1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail3;1,1;block/sign/waxed_interact_fail3;1","1271;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1272;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1273;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1274;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1275;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1276;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1277;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1278;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1279;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1280;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1281;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1282;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1312;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1313;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1327;block.sniffer_egg.crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1328;block.sniffer_egg.hatch":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1326;block.sniffer_egg.plop":"1;mob/chicken/plop;1,1;mob/chicken/plop;1,1;mob/chicken/plop;1","1330;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1331;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1337;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1338;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1339;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1283;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1287;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1286;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1285;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1284;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1288;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1292;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1291;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1290;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1289;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1351;block.sponge.absorb":"1;block/sponge/absorb1;1,1;block/sponge/absorb2;1,1;block/sponge/absorb3;1","1346;block.sponge.break":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1347;block.sponge.fall":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1348;block.sponge.hit":"0.8;block/sponge/step1;1,0.8;block/sponge/step2;1,0.8;block/sponge/step3;1,0.8;block/sponge/step4;1,0.8;block/sponge/step5;1,0.8;block/sponge/step6;1","1349;block.sponge.place":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1350;block.sponge.step":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1294;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1295;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1296;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1297;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1298;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","943;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","947;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","946;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","945;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","944;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1358;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1361;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1362;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1363;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1366;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1359;block.stone_button.click_off":"0.3;random/click;1","1360;block.stone_button.click_on":"0.3;random/click;1","1364;block.stone_pressure_plate.click_off":"0.3;random/click;1","1365;block.stone_pressure_plate.click_on":"0.3;random/click;1","541;block.suspicious_gravel.break":"1;block/suspicious_gravel/break1;1,1;block/suspicious_gravel/break2;1,1;block/suspicious_gravel/break3;1,1;block/suspicious_gravel/break4;1,1;block/suspicious_gravel/break5;1,1;block/suspicious_gravel/break6;1","545;block.suspicious_gravel.fall":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","544;block.suspicious_gravel.hit":"0.8;block/suspicious_gravel/step1;1,0.8;block/suspicious_gravel/step2;1,0.8;block/suspicious_gravel/step3;1,0.8;block/suspicious_gravel/step4;1","543;block.suspicious_gravel.place":"1;block/suspicious_gravel/place1;1,1;block/suspicious_gravel/place2;1,1;block/suspicious_gravel/place3;1,1;block/suspicious_gravel/place4;1","542;block.suspicious_gravel.step":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","536;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","540;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","539;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","538;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","537;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1371;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1373;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1372;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","679;block.trial_spawner.about_to_spawn_item":"1;block/trial_spawner/about_to_spawn_item;1","684;block.trial_spawner.ambient":"1;block/trial_spawner/ambient1;1,1;block/trial_spawner/ambient2;1,1;block/trial_spawner/ambient3;1,1;block/trial_spawner/ambient4;1,1;block/trial_spawner/ambient5;1","685;block.trial_spawner.ambient_charged":"1;block/trial_spawner/ambient_charged1;1,1;block/trial_spawner/ambient_charged2;1,1;block/trial_spawner/ambient_charged3;1,1;block/trial_spawner/ambient_charged4;1,1;block/trial_spawner/ambient_charged5;1","673;block.trial_spawner.break":"0.9;block/trial_spawner/break1;1,0.9;block/trial_spawner/break2;1,0.9;block/trial_spawner/break3;1","683;block.trial_spawner.charge_activate":"1;block/trial_spawner/charge_activate;1","687;block.trial_spawner.close_shutter":"1;block/trial_spawner/close_shutter;1","682;block.trial_spawner.detect_player":"1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player3;1,1;block/trial_spawner/detect_player3;1","688;block.trial_spawner.eject_item":"1;block/trial_spawner/eject_item1;1","677;block.trial_spawner.fall":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","676;block.trial_spawner.hit":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","686;block.trial_spawner.open_shutter":"1;block/trial_spawner/open_shutter;1","675;block.trial_spawner.place":"1;block/trial_spawner/place1;1,1;block/trial_spawner/place2;1,1;block/trial_spawner/place3;1","680;block.trial_spawner.spawn_item":"1;block/trial_spawner/spawn_item1;1,1;block/trial_spawner/spawn_item2;1,1;block/trial_spawner/spawn_item3;1","681;block.trial_spawner.spawn_item_begin":"1;block/trial_spawner/spawn_item_begin1;1,1;block/trial_spawner/spawn_item_begin2;1,1;block/trial_spawner/spawn_item_begin3;1","678;block.trial_spawner.spawn_mob":"1;block/trial_spawner/spawn1;1,1;block/trial_spawner/spawn2;1,1;block/trial_spawner/spawn3;1,1;block/trial_spawner/spawn4;1","674;block.trial_spawner.step":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","1389;block.tripwire.attach":"1;random/click;1","1390;block.tripwire.click_off":"1;random/click;1","1391;block.tripwire.click_on":"1;random/click;1","1392;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1397;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1401;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1400;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1399;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1398;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1402;block.tuff_bricks.break":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1403;block.tuff_bricks.fall":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1404;block.tuff_bricks.hit":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1405;block.tuff_bricks.place":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1406;block.tuff_bricks.step":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1433;block.vault.activate":"1;block/vault/activate;1","1434;block.vault.ambient":"1;block/vault/ambient1;1,1;block/vault/ambient2;1,1;block/vault/ambient3;1","1435;block.vault.break":"1;block/vault/break1;1,1;block/vault/break2;1,1;block/vault/break3;1,1;block/vault/break4;1","1436;block.vault.close_shutter":"1;block/trial_spawner/close_shutter;1","1437;block.vault.deactivate":"1;block/vault/deactivate;1","1438;block.vault.eject_item":"1;block/vault/eject1;1,1;block/vault/eject2;1,1;block/vault/eject3;1","1439;block.vault.fall":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1440;block.vault.hit":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1441;block.vault.insert_item":"1;block/vault/insert;1","1442;block.vault.insert_item_fail":"1;block/vault/insert_fail;1","1443;block.vault.open_shutter":"1;block/vault/open_shutter;1","1444;block.vault.place":"1;block/vault/place1;1,1;block/vault/place2;1,1;block/vault/place3;1,1;block/vault/place4;1","1445;block.vault.step":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1474;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1475;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1476;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1477;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1478;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","968;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","972;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","971;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","970;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","969;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1512;block.water.ambient":"1;liquid/water;1","963;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","967;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","966;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","965;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","964;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1515;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1516;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1517;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1518;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1519;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1520;block.wet_sponge.break":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1521;block.wet_sponge.dries":"1;random/fizz;1","1522;block.wet_sponge.fall":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1523;block.wet_sponge.hit":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1524;block.wet_sponge.place":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1525;block.wet_sponge.step":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1565;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1566;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1567;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1568;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1569;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1561;block.wooden_button.click_off":"0.3;random/wood_click;1","1562;block.wooden_button.click_on":"0.3;random/wood_click;1","1557;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1558;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1563;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1564;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1559;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1560;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1570;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1571;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1572;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1573;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1574;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1378;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","57;entity.armadillo.ambient":"1;mob/armadillo/ambient1;1,1;mob/armadillo/ambient2;1,1;mob/armadillo/ambient3;1,1;mob/armadillo/ambient4;1,1;mob/armadillo/ambient5;1,1;mob/armadillo/ambient6;1,1;mob/armadillo/ambient7;1,1;mob/armadillo/ambient8;1","66;entity.armadillo.brush":"0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1","59;entity.armadillo.death":"1;mob/armadillo/death1;1,1;mob/armadillo/death2;1,1;mob/armadillo/death3;1,1;mob/armadillo/death4;1","54;entity.armadillo.eat":"1;mob/armadillo/eat1;1,1;mob/armadillo/eat2;1,1;mob/armadillo/eat3;1","55;entity.armadillo.hurt":"1;mob/armadillo/hurt1;1,1;mob/armadillo/hurt2;1,1;mob/armadillo/hurt3;1,1;mob/armadillo/hurt4;1,1;mob/armadillo/hurt5;1","56;entity.armadillo.hurt_reduced":"1;mob/armadillo/hurt_reduced1;1,1;mob/armadillo/hurt_reduced2;1,1;mob/armadillo/hurt_reduced3;1,1;mob/armadillo/hurt_reduced4;1","61;entity.armadillo.land":"1;mob/armadillo/land1;1,1;mob/armadillo/land2;1,1;mob/armadillo/land3;1,1;mob/armadillo/land4;1","64;entity.armadillo.peek":"1;mob/armadillo/peek;1","60;entity.armadillo.roll":"1;mob/armadillo/roll1;1,1;mob/armadillo/roll2;1,1;mob/armadillo/roll3;1,1;mob/armadillo/roll4;1","62;entity.armadillo.scute_drop":"1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop2;1,1;mob/armadillo/scute_drop2;1","58;entity.armadillo.step":"1;mob/armadillo/step1;1,1;mob/armadillo/step2;1,1;mob/armadillo/step3;1,1;mob/armadillo/step4;1,1;mob/armadillo/step5;1","63;entity.armadillo.unroll_finish":"1;mob/armadillo/unroll_finish1;1,1;mob/armadillo/unroll_finish2;1","65;entity.armadillo.unroll_start":"1;mob/armadillo/unroll_start;1","78;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","79;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","80;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","81;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","82;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","83;entity.arrow.hit_player":"1;random/successful_hit;1","84;entity.arrow.shoot":"1;random/bow;1","88;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","89;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","90;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","91;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","92;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","93;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","94;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","135;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","136;entity.bat.death":"1;mob/bat/death;1","137;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","138;entity.bat.loop":"1;mob/bat/loop;1","139;entity.bat.takeoff":"1;mob/bat/takeoff;1","144;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","145;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","147;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","146;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","149;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","148;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","162;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","163;entity.blaze.burn":"1;fire/fire;1","164;entity.blaze.death":"1;mob/blaze/death;1","165;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","166;entity.blaze.shoot":"1;mob/ghast/fireball4;1","167;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","168;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","169;entity.bogged.ambient":"1;mob/bogged/ambient1;1,1;mob/bogged/ambient2;1,1;mob/bogged/ambient3;1,1;mob/bogged/ambient4;1","170;entity.bogged.death":"1;mob/bogged/death;1","171;entity.bogged.hurt":"1;mob/bogged/hurt1;1,1;mob/bogged/hurt2;1,1;mob/bogged/hurt3;1,1;mob/bogged/hurt4;1","172;entity.bogged.shear":"1;mob/sheep/shear;1","173;entity.bogged.step":"1;mob/bogged/step1;1,1;mob/bogged/step2;1,1;mob/bogged/step3;1,1;mob/bogged/step4;1","186;entity.breeze.charge":"1;mob/breeze/charge1;1,1;mob/breeze/charge2;1,1;mob/breeze/charge3;1","195;entity.breeze.death":"1;mob/breeze/death1;1,1;mob/breeze/death2;1","187;entity.breeze.deflect":"1;mob/breeze/deflect1;1,1;mob/breeze/deflect2;1,1;mob/breeze/deflect3;1","196;entity.breeze.hurt":"1;mob/breeze/hurt1;1,1;mob/breeze/hurt2;1,1;mob/breeze/hurt3;1","190;entity.breeze.idle_air":"1;mob/breeze/idle_air1;1,1;mob/breeze/idle_air2;1,1;mob/breeze/idle_air3;1,1;mob/breeze/idle_air4;1","189;entity.breeze.idle_ground":"1;mob/breeze/idle1;1,1;mob/breeze/idle2;1,1;mob/breeze/idle3;1,1;mob/breeze/idle4;1","188;entity.breeze.inhale":"1;mob/breeze/inhale1;1,1;mob/breeze/inhale1;1,1;mob/breeze/inhale2;1,1;mob/breeze/inhale2;1","192;entity.breeze.jump":"1;mob/breeze/jump1;1,1;mob/breeze/jump2;1","193;entity.breeze.land":"1;mob/breeze/land1;1,1;mob/breeze/land2;1","191;entity.breeze.shoot":"1;mob/breeze/shoot;1,1;mob/breeze/shoot;1,1;mob/breeze/shoot;1","194;entity.breeze.slide":"1;mob/breeze/slide1;1,1;mob/breeze/slide2;1,1;mob/breeze/slide3;1,1;mob/breeze/slide4;1","197;entity.breeze.whirl":"1;mob/breeze/whirl;1","198;entity.breeze.wind_burst":"1;mob/breeze/wind_burst1;1,1;mob/breeze/wind_burst2;1,1;mob/breeze/wind_burst3;1","231;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","232;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","233;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","234;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","235;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","236;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","237;entity.camel.saddle":"1;entity.horse.saddle;1","238;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","239;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","240;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","241;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","250;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","255;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","252;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","253;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","254;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","256;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","257;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","258;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","251;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","303;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","304;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","305;entity.chicken.egg":"1;mob/chicken/plop;1","306;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","307;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","326;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","327;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","328;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","365;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","366;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","367;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","368;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","369;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","372;entity.creeper.death":"1;mob/creeper/death;1","373;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","374;entity.creeper.primed":"1;random/fuse;1","411;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","412;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","413;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","414;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","415;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","416;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","417;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","418;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","419;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","420;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","421;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","422;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","423;entity.donkey.chest":"1;mob/chicken/plop;1","424;entity.donkey.death":"1;mob/horse/donkey/death;1","425;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","426;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","427;entity.donkey.jump":"1;mob/horse/jump;1","470;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","445;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","446;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","447;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","448;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","449;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","450;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","451;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","452;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","453;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","455;entity.egg.throw":"1;random/bow;1","456;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","457;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","458;entity.elder_guardian.curse":"1;mob/guardian/curse;1","459;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","460;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","461;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","462;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","463;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","468;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","469;entity.ender_dragon.death":"1;mob/enderdragon/end;1","471;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","472;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","473;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","474;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","475;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","476;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","487;entity.ender_pearl.throw":"1;random/bow;1","477;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","478;entity.enderman.death":"1;mob/endermen/death;1","479;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","480;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","481;entity.enderman.stare":"1;mob/endermen/stare;1","482;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","483;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","484;entity.endermite.death":"1;mob/silverfish/kill;1","485;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","486;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","491;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","492;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","493;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","494;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","496;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","497;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","498;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","499;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","495;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","500;entity.experience_bottle.throw":"1;random/bow;1","501;entity.experience_orb.pickup":"1;random/orb;1","505;entity.firework_rocket.blast":"1;fireworks/blast1;1","506;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","507;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","508;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","509;entity.firework_rocket.launch":"1;fireworks/launch1;1","510;entity.firework_rocket.shoot":"1;random/bow;1","511;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","512;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","515;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","516;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","517;entity.fishing_bobber.splash":"1;random/splash;1","518;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","525;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","526;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","527;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","528;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","529;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","530;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","531;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","532;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","533;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","534;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","535;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","557;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","558;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","559;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","560;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","561;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","562;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","563;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","564;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","571;entity.generic.big_fall":"1;damage/fallbig;1","572;entity.generic.burn":"1;random/fizz;1","573;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","574;entity.generic.drink":"1;random/drink;1","575;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","576;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","577;entity.generic.extinguish_fire":"1;random/fizz;1","578;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","579;entity.generic.small_fall":"1;damage/fallsmall;1","580;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","581;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","582;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","583;entity.ghast.death":"1;mob/ghast/death;1","584;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","585;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","586;entity.ghast.shoot":"1;mob/ghast/fireball4;1","587;entity.ghast.warn":"1;mob/ghast/charge;1","599;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","600;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","601;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","602;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","603;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","604;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","605;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","606;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","607;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","608;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","609;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","610;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","616;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","611;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","612;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","613;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","614;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","615;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","618;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","619;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","620;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","621;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","622;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","623;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","624;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","625;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","627;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","640;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","641;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","642;entity.guardian.attack":"1;mob/guardian/attack_loop;1","643;entity.guardian.death":"1;mob/guardian/guardian_death;1","644;entity.guardian.death_land":"1;mob/guardian/land_death;1","645;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","646;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","647;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","690;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","691;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","692;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","693;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","694;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","695;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","696;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","697;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","714;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","715;entity.horse.angry":"1;mob/horse/angry1;1","716;entity.horse.armor":"1;mob/horse/armor;1","717;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","718;entity.horse.death":"1;mob/horse/death;1","719;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","720;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","721;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","722;entity.horse.jump":"1;mob/horse/jump;1","723;entity.horse.land":"1;mob/horse/land;1","724;entity.horse.saddle":"1;mob/horse/leather;1","725;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","726;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","727;entity.hostile.big_fall":"1;damage/fallbig;1","728;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","729;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","730;entity.hostile.small_fall":"1;damage/fallsmall;1","731;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","732;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","733;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","734;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","735;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","736;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","737;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","738;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","739;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","740;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","741;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","742;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","743;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","744;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","748;entity.iron_golem.attack":"1;mob/irongolem/throw;1","749;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","750;entity.iron_golem.death":"1;mob/irongolem/death;1","751;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","752;entity.iron_golem.repair":"1;mob/irongolem/repair;1","753;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","761;entity.item.break":"1;random/break;1","762;entity.item.pickup":"1;random/pop;1","756;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","757;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","758;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","759;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","760;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","778;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","779;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","781;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","782;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","783;entity.lingering_potion.throw":"1;random/bow;1","784;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","785;entity.llama.angry":"1;mob/llama/angry1;1","786;entity.llama.chest":"1;mob/chicken/plop;1","787;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","788;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","789;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","790;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","791;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","792;entity.llama.swag":"1;mob/llama/swag;1","803;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","793;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","804;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","805;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","806;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","807;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","808;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","824;entity.minecart.inside":"1;minecart/inside;1","823;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","825;entity.minecart.riding":"1;minecart/base;1","826;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","827;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","828;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","830;entity.mooshroom.shear":"1;mob/sheep/shear;1","829;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","861;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","862;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","863;entity.mule.chest":"1;mob/chicken/plop;1","864;entity.mule.death":"1;mob/horse/donkey/death;1","865;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","866;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","867;entity.mule.jump":"1;mob/horse/jump;1","1006;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","1007;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","1005;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","1009;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","1010;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","1018;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1013;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1021;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","1017;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","1014;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","1015;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","1020;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","1011;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","1012;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","1016;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","1019;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","1022;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","1023;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","1024;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","1025;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","1026;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","1027;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","1028;entity.parrot.imitate.bogged":"1;entity.bogged.ambient;1","1029;entity.parrot.imitate.breeze":"0.7;entity.breeze.idle_ground;1","1030;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","1031;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","1032;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","1033;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","1034;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","1035;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","1036;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","1037;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","1038;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","1039;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","1040;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","1041;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","1042;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","1043;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","1044;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","1045;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","1046;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","1047;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","1048;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","1049;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","1050;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","1051;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","1052;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","1053;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","1054;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","1055;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","1056;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","1057;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","1058;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","1059;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","1060;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","1061;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","1062;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","1063;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","1064;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","1065;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","1066;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","1067;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","1068;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","1069;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1070;entity.pig.death":"1;mob/pig/death;1","1071;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1072;entity.pig.saddle":"1;mob/horse/leather;1","1073;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","1074;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","1075;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","1076;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","1077;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","1083;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1078;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","1080;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","1079;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","1081;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","1082;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","1084;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","1085;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","1089;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1086;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","1087;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","1088;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","1090;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","1091;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","1092;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","1093;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","1096;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","1097;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","1098;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1099;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","1100;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","1101;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1102;entity.player.big_fall":"1;damage/fallbig;1","1103;entity.player.breath":"1;random/breath;1","1104;entity.player.burp":"1;random/burp;1","1105;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1106;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1107;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1108;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1109;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1110;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1111;entity.player.levelup":"1;random/levelup;1","1112;entity.player.small_fall":"1;damage/fallsmall;1","1113;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1114;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1115;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1116;entity.player.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1117;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1118;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1119;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1120;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1121;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1122;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1137;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1138;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1139;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1140;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1141;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1142;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1144;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1145;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1146;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1147;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1148;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1150;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1151;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1152;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1153;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1154;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1157;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1155;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1156;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1179;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1180;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1181;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1223;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1224;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1225;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1226;entity.sheep.shear":"1;mob/sheep/shear;1","1227;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1236;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1241;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1242;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1243;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1244;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1245;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1246;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1247;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1239;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1240;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1248;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1249;entity.silverfish.death":"1;mob/silverfish/kill;1","1250;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1251;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1252;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1253;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1254;entity.skeleton.death":"1;mob/skeleton/death;1","1263;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1264;entity.skeleton.shoot":"1;random/bow;1","1265;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1255;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1259;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1256;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1260;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1257;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1261;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1262;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1258;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1266;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1267;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1308;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1268;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1309;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1269;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1310;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1270;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1311;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1318;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1323;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1324;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1319;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1315;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1325;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1317;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1316;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1320;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1322;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1321;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1314;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1333;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1334;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1336;entity.snow_golem.shear":"1;mob/sheep/shear;1","1335;entity.snow_golem.shoot":"1;random/bow;1","1329;entity.snowball.throw":"1;random/bow;1","1340;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1341;entity.spider.death":"1;mob/spider/death;1","1342;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1343;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1344;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1345;entity.splash_potion.throw":"1;random/bow;1","1354;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1355;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1356;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1357;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1367;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1368;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1369;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1370;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1299;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1302;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1306;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1300;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1303;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1301;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1307;entity.strider.saddle":"1;mob/horse/leather;1","1304;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1305;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1374;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1375;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1376;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1377;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1379;entity.tnt.primed":"1;random/fuse;1","1394;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1395;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1396;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1412;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1413;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1414;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1415;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1416;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1417;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1418;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1419;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1420;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1421;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1422;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1423;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1446;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1447;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1448;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1449;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1450;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1451;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1452;entity.villager.death":"1;mob/villager/death;1","1453;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1454;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1455;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1457;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1458;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1459;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1460;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1461;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1462;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1463;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1464;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1465;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1466;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1467;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1468;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1469;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1456;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1470;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1471;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1472;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1473;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1480;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1481;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1482;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1483;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1484;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1485;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1486;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1487;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1488;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1489;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1490;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1491;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1492;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1493;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1494;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1495;entity.warden.dig":"1;mob/warden/dig;1","1496;entity.warden.emerge":"1;mob/warden/emerge;1","1497;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1498;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1499;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1500;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1501;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1502;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1503;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1504;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1505;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1506;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1507;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1508;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1509;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1527;entity.wind_charge.throw":"1;random/bow;1","1526;entity.wind_charge.wind_burst":"1;entity/wind_charge/wind_burst1;1,1;entity/wind_charge/wind_burst2;1,1;entity/wind_charge/wind_burst3;1","1528;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1529;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1530;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1531;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1532;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1533;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1534;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1535;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1536;entity.wither.death":"1;mob/wither/death;1","1537;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1538;entity.wither.shoot":"1;mob/wither/shoot;1","1543;entity.wither.spawn":"1;mob/wither/spawn;1","1539;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1540;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1541;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1542;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1548;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1549;entity.wolf.death":"1;mob/wolf/death;1","1550;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1551;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1552;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1553;entity.wolf.pant":"1;mob/wolf/panting;1","1554;entity.wolf.shake":"1;mob/wolf/shake;1","1555;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1556;entity.wolf.whine":"1;mob/wolf/whine;1","1575;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1576;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1577;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1578;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1579;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1580;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1581;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1583;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1582;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1584;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1585;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1586;entity.zombie.death":"1;mob/zombie/death;1","1587;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1591;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1592;entity.zombie.infect":"1;mob/zombie/infect;1","1597;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1588;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1589;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1590;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1598;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1599;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1600;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1601;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1602;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1603;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1593;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1594;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1595;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1596;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1604;event.mob_effect.bad_omen":"1;event/mob_effects/bad_omen;1","1606;event.mob_effect.raid_omen":"1;event/mob_effects/raid_omen;1","1605;event.mob_effect.trial_omen":"1;event/mob_effects/trial_omen;1","1149;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","67;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","68;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","69;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","70;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","71;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","72;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","73;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","74;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","75;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","76;item.armor.equip_wolf":"1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf2;1,1;item/armor/equip_wolf2;1","77;item.armor.unequip_wolf":"1;item/armor/unequip_wolf1;1,1;item/armor/unequip_wolf2;1","86;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","85;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","87;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","179;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","180;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","181;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","183;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","184;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","185;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","200;item.brush.brushing.generic":"0.4;item/brush/brushing_generic1;1,0.4;item/brush/brushing_generic2;1,0.4;item/brush/brushing_generic3;1,0.4;item/brush/brushing_generic4;1","202;item.brush.brushing.gravel":"0.6;item/brush/brushing_gravel1;1,0.6;item/brush/brushing_gravel2;1,0.6;item/brush/brushing_gravel3;1,0.6;item/brush/brushing_gravel4;1","204;item.brush.brushing.gravel.complete":"1;item/brush/brushing_gravel_complete1;1,1;item/brush/brushing_gravel_complete2;1,1;item/brush/brushing_gravel_complete3;1,1;item/brush/brushing_gravel_complete4;1","201;item.brush.brushing.sand":"0.6;item/brush/brushing_sand1;1,0.6;item/brush/brushing_sand2;1,0.6;item/brush/brushing_sand3;1,0.6;item/brush/brushing_sand4;1","203;item.brush.brushing.sand.complete":"1;item/brush/brush_sand_complete1;1,1;item/brush/brush_sand_complete2;1,1;item/brush/brush_sand_complete3;1,1;item/brush/brush_sand_complete4;1,1;item/brush/brush_sand_complete5;1","210;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","211;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","212;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","213;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","214;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","215;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","216;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","217;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","218;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","219;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","220;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","221;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","222;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","223;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","224;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","319;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","376;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","377;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","378;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","379;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","380;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","381;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","382;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","383;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","384;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","454;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","464;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","504;item.firecharge.use":"1;mob/ghast/fireball4;1","519;item.flintandsteel.use":"1;fire/ignite;1","598;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","689;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","705;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","704;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","745;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","799;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","800;item.mace.smash_air":"1;item/mace/smash_air1;1,1;item/mace/smash_air2;1,1;item/mace/smash_air3;1","801;item.mace.smash_ground":"1;item/mace/smash_ground1;1,1;item/mace/smash_ground2;1,1;item/mace/smash_ground3;1,1;item/mace/smash_ground4;1","802;item.mace.smash_ground_heavy":"1;item/mace/smash_ground_heavy;1","921;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1008;item.ominous_bottle.dispose":"1;item/ominous_bottle/dispose;1","1228;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1229;item.shield.break":"1;random/break;1","1235;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1353;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1352;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1380;item.totem.use":"1;item/totem/use_totem;1","1381;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1382;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1383;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1384;item.trident.riptide_1":"1;item/trident/riptide1;1","1385;item.trident.riptide_2":"1;item/trident/riptide2;1","1386;item.trident.riptide_3":"1;item/trident/riptide3;1","1387;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1388;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","1544;item.wolf_armor.break":"1;item/armor/break_wolf;1","1545;item.wolf_armor.crack":"1;item/armor/crack_wolf1;1,1;item/armor/crack_wolf2;1,1;item/armor/crack_wolf3;1,1;item/armor/crack_wolf4;1","1546;item.wolf_armor.damage":"1;item/armor/damage_wolf1;1,1;item/armor/damage_wolf2;1,1;item/armor/damage_wolf3;1,1;item/armor/damage_wolf4;1","1547;item.wolf_armor.repair":"1;item/armor/repair_wolf1;1,1;item/armor/repair_wolf2;1,1;item/armor/repair_wolf3;1,1;item/armor/repair_wolf4;1","868;music.creative":"1;music.game;1,1;music/game/creative/aria_math;1,1;music/game/creative/biome_fest;1,1;music/game/creative/blind_spots;1,1;music/game/creative/dreiton;1,1;music/game/creative/haunt_muskie;1,1;music/game/creative/taswell;1","869;music.credits":"1;music/game/end/alpha;1","886;music.dragon":"1;music/game/end/boss;1","887;music.end":"1;music/game/end/the_end;1","888;music.game":"0.4;music/game/a_familiar_room;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1,1;music/game/sweden;1,1;music/game/wet_hands;1","889;music.menu":"0.4;music/game/a_familiar_room;1,0.4;music/game/bromeliad;1,0.4;music/game/crescent_dunes;1,0.4;music/game/echo_in_the_wind;1,1;music/menu/beginning_2;1,1;music/menu/floating_trees;1,1;music/menu/moog_city_2;1,1;music/menu/mutation;1","890;music.nether.basalt_deltas":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","891;music.nether.crimson_forest":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/dead_voxel;1,1;music/game/nether/warmth;1","902;music.nether.nether_wastes":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/nether_wastes/rubedo;6,1;music/game/nether/warmth;1","905;music.nether.soul_sand_valley":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","910;music.overworld.badlands":"0.4;music/game/crescent_dunes;2,1;music/game/danny;2,1;music/game/dry_hands;2,0.4;music/game/echo_in_the_wind;2,1;music/game/haggstrom;2,1;music/game/key;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,0.4;music/game/one_more_day;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","913;music.overworld.bamboo_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","901;music.overworld.cherry_grove":"0.4;music/game/bromeliad;3,1;music/game/clark;3,0.4;music/game/echo_in_the_wind;3,0.4;music/game/left_to_bloom;3,1;music/game/minecraft;3,1;music/game/sweden;3","892;music.overworld.deep_dark":"1;music/game/ancestry;1","909;music.overworld.desert":"0.4;music/game/crescent_dunes;3,1;music/game/danny;3,1;music/game/haggstrom;3,1;music/game/key;3,1;music/game/living_mice;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3","893;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/danny;1,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;2","908;music.overworld.flower_forest":"0.4;music/game/bromeliad;1,1;music/game/danny;1,0.4;music/game/echo_in_the_wind;1,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1","898;music.overworld.forest":"0.4;music/game/bromeliad;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1,1;music/game/sweden;1,1;music/game/wet_hands;1","903;music.overworld.frozen_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,1;music/game/wet_hands;1","894;music.overworld.grove":"1;music/game/clark;1,0.4;music/game/comforting_memories;1,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,1;music/game/oxygene;1,1;music/game/sweden;1,0.4;music/game/wending;1","895;music.overworld.jagged_peaks":"1;music/game/dry_hands;1,0.4;music/game/floating_dream;1,1;music/game/key;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/oxygene;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","911;music.overworld.jungle":"0.4;music/game/bromeliad;3,1;music/game/danny;3,1;music/game/dry_hands;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,1;music/game/wet_hands;3","896;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/clark;2,0.4;music/game/echo_in_the_wind;2,1;music/game/floating_dream;2,1;music/game/mice_on_venus;2,1;music/game/minecraft;2,0.4;music/game/one_more_day;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2,1;music/game/sweden;2","900;music.overworld.meadow":"1;music/game/danny;1,1;music/game/haggstrom;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;2,1;music/game/subwoofer_lullaby;1","899;music.overworld.old_growth_taiga":"1;music/game/clark;3,0.4;music/game/comforting_memories;3,1;music/game/danny;3,1;music/game/dry_hands;3,0.4;music/game/floating_dream;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/minecraft;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3,1;music/game/sweden;3,1;music/game/wet_hands;3","904;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1","912;music.overworld.sparse_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","906;music.overworld.stony_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","897;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","914;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","871;music_disc.11":"1;records/11;1","872;music_disc.13":"1;records/13;1","870;music_disc.5":"1;records/5;1","873;music_disc.blocks":"1;records/blocks;1","874;music_disc.cat":"1;records/cat;1","875;music_disc.chirp":"1;records/chirp;1","876;music_disc.far":"1;records/far;1","877;music_disc.mall":"1;records/mall;1","878;music_disc.mellohi":"1;records/mellohi;1","884;music_disc.otherside":"1;records/otherside;1","879;music_disc.pigstep":"1;records/pigstep;1","885;music_disc.relic":"1;records/relic;1","880;music_disc.stal":"1;records/stal;1","881;music_disc.strad":"1;records/strad;1","882;music_disc.wait":"1;records/wait;1","883;music_disc.ward":"1;records/ward;1","1293;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1424;ui.button.click":"1;random/click_stereo;1","1427;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1425;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1426;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1429;ui.stonecutter.select_recipe":"1;random/click;1","1428;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1430;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1431;ui.toast.in":"0.4;ui/toast/in;1","1432;ui.toast.out":"0.4;ui/toast/out;1","1513;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1514;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.21":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1,1;ambient/cave/cave20;1,1;ambient/cave/cave21;1,1;ambient/cave/cave22;1,1;ambient/cave/cave23;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.5;ambient/underwater/enter1;1,0.5;ambient/underwater/enter2;1,0.5;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.3;ambient/underwater/exit1;1,0.3;ambient/underwater/exit2;1,0.3;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.resonate":"1;block/amethyst/resonate1;1,1;block/amethyst/resonate2;1,1;block/amethyst/resonate3;1,1;block/amethyst/resonate4;1","35;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","36;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","37;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","38;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","39;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","40;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","41;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","45;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","44;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","42;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","46;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","47;block.anvil.destroy":"1;random/anvil_break;1","48;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","50;block.anvil.land":"1;random/anvil_land;1","51;block.anvil.place":"1;random/anvil_land;1","52;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","53;block.anvil.use":"1;random/anvil_use;1","95;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","96;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","97;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","98;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","99;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","100;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","101;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","102;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","103;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","104;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","105;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","106;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","107;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","108;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","109;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","110;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","111;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","112;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","113;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","114;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","115;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","116;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","117;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","122;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","123;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","118;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","119;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","126;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","127;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","669;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","670;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","671;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","672;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","668;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","124;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","125;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","120;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","121;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","128;block.barrel.close":"1;block/barrel/close;1","129;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","130;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","134;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","133;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","132;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","131;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","140;block.beacon.activate":"1;block/beacon/activate;1","141;block.beacon.ambient":"0.9;block/beacon/ambient;1","142;block.beacon.deactivate":"1;block/beacon/deactivate;1","143;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","150;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","151;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","152;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","153;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","154;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","156;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","155;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","157;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","158;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","159;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","160;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","161;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","443;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","444;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","182;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","174;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","175;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","176;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","177;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","178;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","199;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","205;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","206;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","207;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","208;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","209;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","225;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","226;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","230;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","229;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","228;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","227;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","242;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","243;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","244;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","245;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","246;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","247;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","248;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","249;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","259;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","260;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","261;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","264;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","262;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","263;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","265;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","266;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","267;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","268;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","269;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","280;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","281;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","282;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","283;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","284;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","275;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","276;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","277;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","278;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","279;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","270;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","271;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","272;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","273;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","274;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","294;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","295;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","290;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","291;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","298;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","299;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","286;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","287;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","288;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","289;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","285;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","296;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","297;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","292;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","293;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","300;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","301;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","302;block.chest.open":"1;block/chest/open;1","308;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","309;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","310;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","311;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","312;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","314;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","315;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","316;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","313;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","317;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","318;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","320;block.cobweb.break":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","324;block.cobweb.fall":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","323;block.cobweb.hit":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","322;block.cobweb.place":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","321;block.cobweb.step":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","329;block.comparator.click":"1;random/click;1","330;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","331;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","332;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","333;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","334;block.conduit.activate":"0.9;block/conduit/activate;1","335;block.conduit.ambient":"1;block/conduit/ambient;1","336;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","337;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","338;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","346;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","350;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","349;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","348;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","347;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","339;block.copper_bulb.break":"1;block/copper_bulb/break1;1,1;block/copper_bulb/break2;1,1;block/copper_bulb/break3;1,1;block/copper_bulb/break4;1","343;block.copper_bulb.fall":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","342;block.copper_bulb.hit":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","341;block.copper_bulb.place":"1;block/copper_bulb/place1;1,1;block/copper_bulb/place2;1,1;block/copper_bulb/place3;1,1;block/copper_bulb/place4;1","340;block.copper_bulb.step":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","345;block.copper_bulb.turn_off":"1;block/copper_bulb/toggle;1","344;block.copper_bulb.turn_on":"1;block/copper_bulb/toggle;1","351;block.copper_door.close":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1","352;block.copper_door.open":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1,1;block/copper_door/toggle3;1","353;block.copper_grate.break":"1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","357;block.copper_grate.fall":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","356;block.copper_grate.hit":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","355;block.copper_grate.place":"1;block/copper_grate/break1;1,1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","354;block.copper_grate.step":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","358;block.copper_trapdoor.close":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","359;block.copper_trapdoor.open":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","360;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","361;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","362;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","363;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","364;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","370;block.crafter.craft":"1;block/crafter/craft;1,1;block/crafter/craft;1,1;block/crafter/craft;1","371;block.crafter.fail":"1;block/crafter/fail;1,1;block/crafter/fail;1,1;block/crafter/fail;1","375;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","385;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","386;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","387;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","388;block.decorated_pot.insert":"0.9;block/decorated_pot/insert1;1,0.9;block/decorated_pot/insert2;1,0.9;block/decorated_pot/insert3;1,0.9;block/decorated_pot/insert4;1","389;block.decorated_pot.insert_fail":"0.9;block/decorated_pot/insert_fail1;1,0.9;block/decorated_pot/insert_fail2;1,0.9;block/decorated_pot/insert_fail3;1,0.9;block/decorated_pot/insert_fail4;1,0.9;block/decorated_pot/insert_fail5;1","391;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","392;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1","390;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","398;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","399;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","400;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","401;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","402;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","393;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","394;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","395;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","396;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","397;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","403;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","404;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","405;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","406;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","407;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","408;block.dispenser.dispense":"1;random/click;1","409;block.dispenser.fail":"1;random/click;1","410;block.dispenser.launch":"1;random/bow;1","428;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","432;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","431;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","430;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","429;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","465;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","488;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","490;block.end_portal.spawn":"1;block/end_portal/endportal;1","489;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","466;block.ender_chest.close":"1;block/enderchest/close;1","467;block.ender_chest.open":"1;block/enderchest/open;1","502;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","503;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","513;block.fire.ambient":"1;fire/fire;1","514;block.fire.extinguish":"1;random/fizz;1","520;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","521;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","522;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","523;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","524;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","546;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","547;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","548;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","549;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","550;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","552;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","553;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","554;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","555;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","556;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","551;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","961;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","963;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","962;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","570;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","588;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","589;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","590;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","591;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","592;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","593;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","594;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","595;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","596;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","597;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","628;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","629;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","630;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","631;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","632;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","633;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","634;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","635;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","636;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","637;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","638;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","639;block.growing_plant.crop":"1;mob/sheep/shear;1","648;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","649;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","650;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","651;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","652;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","654;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","655;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","656;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","657;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","653;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","1514;block.hanging_sign.waxed_interact_fail":"1;block.sign.waxed_interact_fail;1","658;block.heavy_core.break":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","659;block.heavy_core.fall":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","660;block.heavy_core.hit":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","661;block.heavy_core.place":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","662;block.heavy_core.step":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","698;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","699;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","700;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","701;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","702;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","703;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","746;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","747;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","754;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","755;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","763;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","764;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","765;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","766;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","767;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","768;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","769;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","770;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","771;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","772;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","773;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","774;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","775;block.lava.ambient":"1;liquid/lava;1","776;block.lava.extinguish":"1;random/fizz;1","777;block.lava.pop":"1;liquid/lavapop;1","780;block.lever.click":"1;random/click;1","1483;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","794;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","798;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","797;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","796;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","795;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","809;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","810;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","811;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","812;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","813;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","814;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","815;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","816;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","817;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","818;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","819;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","822;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","820;block.metal_pressure_plate.click_off":"0.3;random/click;1","821;block.metal_pressure_plate.click_on":"0.3;random/click;1","841;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","842;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","843;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","844;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","845;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","831;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","832;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","833;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","834;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","835;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","846;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","847;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","848;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","849;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","850;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","851;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","852;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","853;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","854;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","855;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","856;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","857;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","858;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","859;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","860;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","918;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","922;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","921;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","920;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","919;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1161;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1162;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1163;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1164;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1165;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1166;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1167;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1168;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1169;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1170;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","956;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","960;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","959;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","958;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","957;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","923;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","925;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","926;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","927;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","928;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","929;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","934;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","935;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","930;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","931;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","938;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","939;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","664;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","665;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","666;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","667;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","663;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","936;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","937;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","932;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","933;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","976;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","980;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","979;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","978;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","977;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","981;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","985;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","984;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","983;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","982;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","1001;block.note_block.banjo":"1;note/banjo;1","986;block.note_block.basedrum":"1;note/bd;1","987;block.note_block.bass":"1;note/bassattack;1","988;block.note_block.bell":"1;note/bell;1","1000;block.note_block.bit":"1;note/bit;1","989;block.note_block.chime":"1;note/icechime;1","998;block.note_block.cow_bell":"1;note/cow_bell;1","999;block.note_block.didgeridoo":"1;note/didgeridoo;1","990;block.note_block.flute":"1;note/flute;1","991;block.note_block.guitar":"1;note/guitar;1","992;block.note_block.harp":"1;note/harp2;1","993;block.note_block.hat":"1;note/hat;1","1004;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","1005;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","1007;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","1003;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","1006;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","1002;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","997;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","994;block.note_block.pling":"1;note/pling;1","995;block.note_block.snare":"1;note/snare;1","996;block.note_block.xylophone":"1;note/xylobone;1","951;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","955;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","954;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","953;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","952;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","941;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","942;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","943;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","944;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","945;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","836;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","837;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","838;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","839;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","840;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","1097;block.piston.contract":"1;tile/piston/in;1","1098;block.piston.extend":"1;tile/piston/out;1","433;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","439;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","441;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","440;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","442;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","437;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","436;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","438;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","435;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","434;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1126;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1127;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1128;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1129;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1130;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1410;block.polished_tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1411;block.polished_tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1412;block.polished_tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1413;block.polished_tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1414;block.polished_tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1131;block.portal.ambient":"1;portal/portal;1","1132;block.portal.travel":"1;portal/travel;1","1133;block.portal.trigger":"1;portal/trigger;1","1134;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1135;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1136;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1137;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1138;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1146;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1171;block.redstone_torch.burnout":"1;random/fizz;1","1172;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1173;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1174;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1175;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1176;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1177;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1178;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1179;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1180;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","565;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","569;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","568;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","567;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","566;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1185;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1186;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1187;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1188;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1189;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1190;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1191;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1192;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1193;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1194;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1197;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1196;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1198;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1199;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1200;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1195;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1201;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1202;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1203;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1204;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1205;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1206;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1207;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1210;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1208;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1209;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1211;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1212;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1213;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1214;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1215;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1216;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1217;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1218;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1219;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1220;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1221;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1222;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1223;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1224;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1225;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1233;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1237;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1236;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1235;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1234;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1240;block.shulker_box.close":"1;block/shulker_box/close;1","1241;block.shulker_box.open":"1;block/shulker_box/open;1","1515;block.sign.waxed_interact_fail":"1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail3;1,1;block/sign/waxed_interact_fail3;1","1274;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1275;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1276;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1277;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1278;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1279;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1280;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1281;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1282;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1283;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1284;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1285;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1315;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1316;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1330;block.sniffer_egg.crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1331;block.sniffer_egg.hatch":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1329;block.sniffer_egg.plop":"1;mob/chicken/plop;1,1;mob/chicken/plop;1,1;mob/chicken/plop;1","1333;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1334;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1340;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1341;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1342;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1286;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1290;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1289;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1288;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1287;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1291;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1295;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1294;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1293;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1292;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1354;block.sponge.absorb":"1;block/sponge/absorb1;1,1;block/sponge/absorb2;1,1;block/sponge/absorb3;1","1349;block.sponge.break":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1350;block.sponge.fall":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1351;block.sponge.hit":"0.8;block/sponge/step1;1,0.8;block/sponge/step2;1,0.8;block/sponge/step3;1,0.8;block/sponge/step4;1,0.8;block/sponge/step5;1,0.8;block/sponge/step6;1","1352;block.sponge.place":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1353;block.sponge.step":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1297;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1298;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1299;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1300;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1301;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","946;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","950;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","949;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","948;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","947;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1361;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1364;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1365;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1366;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1369;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1362;block.stone_button.click_off":"0.3;random/click;1","1363;block.stone_button.click_on":"0.3;random/click;1","1367;block.stone_pressure_plate.click_off":"0.3;random/click;1","1368;block.stone_pressure_plate.click_on":"0.3;random/click;1","541;block.suspicious_gravel.break":"1;block/suspicious_gravel/break1;1,1;block/suspicious_gravel/break2;1,1;block/suspicious_gravel/break3;1,1;block/suspicious_gravel/break4;1,1;block/suspicious_gravel/break5;1,1;block/suspicious_gravel/break6;1","545;block.suspicious_gravel.fall":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","544;block.suspicious_gravel.hit":"0.8;block/suspicious_gravel/step1;1,0.8;block/suspicious_gravel/step2;1,0.8;block/suspicious_gravel/step3;1,0.8;block/suspicious_gravel/step4;1","543;block.suspicious_gravel.place":"1;block/suspicious_gravel/place1;1,1;block/suspicious_gravel/place2;1,1;block/suspicious_gravel/place3;1,1;block/suspicious_gravel/place4;1","542;block.suspicious_gravel.step":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","536;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","540;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","539;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","538;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","537;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1374;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1376;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1375;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","679;block.trial_spawner.about_to_spawn_item":"1;block/trial_spawner/about_to_spawn_item;1","684;block.trial_spawner.ambient":"1;block/trial_spawner/ambient1;1,1;block/trial_spawner/ambient2;1,1;block/trial_spawner/ambient3;1,1;block/trial_spawner/ambient4;1,1;block/trial_spawner/ambient5;1","685;block.trial_spawner.ambient_ominous":"1;block/trial_spawner/ambient_ominous1;1,1;block/trial_spawner/ambient_ominous2;1,1;block/trial_spawner/ambient_ominous3;1,1;block/trial_spawner/ambient_ominous4;1,1;block/trial_spawner/ambient_ominous5;1","673;block.trial_spawner.break":"0.9;block/trial_spawner/break1;1,0.9;block/trial_spawner/break2;1,0.9;block/trial_spawner/break3;1","687;block.trial_spawner.close_shutter":"1;block/trial_spawner/close_shutter;1","682;block.trial_spawner.detect_player":"1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player3;1,1;block/trial_spawner/detect_player3;1","688;block.trial_spawner.eject_item":"1;block/trial_spawner/eject_item1;1","677;block.trial_spawner.fall":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","676;block.trial_spawner.hit":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","683;block.trial_spawner.ominous_activate":"1;block/trial_spawner/ominous_activate;1","686;block.trial_spawner.open_shutter":"1;block/trial_spawner/open_shutter;1","675;block.trial_spawner.place":"1;block/trial_spawner/place1;1,1;block/trial_spawner/place2;1,1;block/trial_spawner/place3;1","680;block.trial_spawner.spawn_item":"1;block/trial_spawner/spawn_item1;1,1;block/trial_spawner/spawn_item2;1,1;block/trial_spawner/spawn_item3;1","681;block.trial_spawner.spawn_item_begin":"1;block/trial_spawner/spawn_item_begin1;1,1;block/trial_spawner/spawn_item_begin2;1,1;block/trial_spawner/spawn_item_begin3;1","678;block.trial_spawner.spawn_mob":"1;block/trial_spawner/spawn1;1,1;block/trial_spawner/spawn2;1,1;block/trial_spawner/spawn3;1,1;block/trial_spawner/spawn4;1","674;block.trial_spawner.step":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","1392;block.tripwire.attach":"1;random/click;1","1393;block.tripwire.click_off":"1;random/click;1","1394;block.tripwire.click_on":"1;random/click;1","1395;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1400;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1404;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1403;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1402;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1401;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1405;block.tuff_bricks.break":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1406;block.tuff_bricks.fall":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1407;block.tuff_bricks.hit":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1408;block.tuff_bricks.place":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1409;block.tuff_bricks.step":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1436;block.vault.activate":"1;block/vault/activate;1","1437;block.vault.ambient":"1;block/vault/ambient1;1,1;block/vault/ambient2;1,1;block/vault/ambient3;1","1438;block.vault.break":"1;block/vault/break1;1,1;block/vault/break2;1,1;block/vault/break3;1,1;block/vault/break4;1","1439;block.vault.close_shutter":"1;block/trial_spawner/close_shutter;1","1440;block.vault.deactivate":"1;block/vault/deactivate;1","1441;block.vault.eject_item":"1;block/vault/eject1;1,1;block/vault/eject2;1,1;block/vault/eject3;1","1443;block.vault.fall":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1444;block.vault.hit":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1445;block.vault.insert_item":"1;block/vault/insert;1","1446;block.vault.insert_item_fail":"1;block/vault/insert_fail;1","1447;block.vault.open_shutter":"1;block/vault/open_shutter;1","1448;block.vault.place":"1;block/vault/place1;1,1;block/vault/place2;1,1;block/vault/place3;1,1;block/vault/place4;1","1442;block.vault.reject_rewarded_player":"1;block/vault/reject_rewarded_player;1","1449;block.vault.step":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1478;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1479;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1480;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1481;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1482;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","971;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","975;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","974;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","973;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","972;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1516;block.water.ambient":"1;liquid/water;1","966;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","970;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","969;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","968;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","967;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1519;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1520;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1521;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1522;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1523;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1524;block.wet_sponge.break":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1525;block.wet_sponge.dries":"1;random/fizz;1","1526;block.wet_sponge.fall":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1527;block.wet_sponge.hit":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1528;block.wet_sponge.place":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1529;block.wet_sponge.step":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1569;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1570;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1571;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1572;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1573;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1565;block.wooden_button.click_off":"0.3;random/wood_click;1","1566;block.wooden_button.click_on":"0.3;random/wood_click;1","1561;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1562;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1567;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1568;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1563;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1564;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1574;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1575;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1576;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1577;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1578;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1381;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","57;entity.armadillo.ambient":"1;mob/armadillo/ambient1;1,1;mob/armadillo/ambient2;1,1;mob/armadillo/ambient3;1,1;mob/armadillo/ambient4;1,1;mob/armadillo/ambient5;1,1;mob/armadillo/ambient6;1,1;mob/armadillo/ambient7;1,1;mob/armadillo/ambient8;1","66;entity.armadillo.brush":"0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1","59;entity.armadillo.death":"1;mob/armadillo/death1;1,1;mob/armadillo/death2;1,1;mob/armadillo/death3;1,1;mob/armadillo/death4;1","54;entity.armadillo.eat":"1;mob/armadillo/eat1;1,1;mob/armadillo/eat2;1,1;mob/armadillo/eat3;1","55;entity.armadillo.hurt":"1;mob/armadillo/hurt1;1,1;mob/armadillo/hurt2;1,1;mob/armadillo/hurt3;1,1;mob/armadillo/hurt4;1,1;mob/armadillo/hurt5;1","56;entity.armadillo.hurt_reduced":"1;mob/armadillo/hurt_reduced1;1,1;mob/armadillo/hurt_reduced2;1,1;mob/armadillo/hurt_reduced3;1,1;mob/armadillo/hurt_reduced4;1","61;entity.armadillo.land":"1;mob/armadillo/land1;1,1;mob/armadillo/land2;1,1;mob/armadillo/land3;1,1;mob/armadillo/land4;1","64;entity.armadillo.peek":"1;mob/armadillo/peek;1","60;entity.armadillo.roll":"1;mob/armadillo/roll1;1,1;mob/armadillo/roll2;1,1;mob/armadillo/roll3;1,1;mob/armadillo/roll4;1","62;entity.armadillo.scute_drop":"1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop2;1,1;mob/armadillo/scute_drop2;1","58;entity.armadillo.step":"1;mob/armadillo/step1;1,1;mob/armadillo/step2;1,1;mob/armadillo/step3;1,1;mob/armadillo/step4;1,1;mob/armadillo/step5;1","63;entity.armadillo.unroll_finish":"1;mob/armadillo/unroll_finish1;1,1;mob/armadillo/unroll_finish2;1","65;entity.armadillo.unroll_start":"1;mob/armadillo/unroll_start;1","78;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","79;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","80;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","81;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","82;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","83;entity.arrow.hit_player":"1;random/successful_hit;1","84;entity.arrow.shoot":"1;random/bow;1","88;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","89;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","90;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","91;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","92;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","93;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","94;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","135;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","136;entity.bat.death":"1;mob/bat/death;1","137;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","138;entity.bat.loop":"1;mob/bat/loop;1","139;entity.bat.takeoff":"1;mob/bat/takeoff;1","144;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","145;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","147;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","146;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","149;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","148;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","162;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","163;entity.blaze.burn":"1;fire/fire;1","164;entity.blaze.death":"1;mob/blaze/death;1","165;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","166;entity.blaze.shoot":"1;mob/ghast/fireball4;1","167;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","168;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","169;entity.bogged.ambient":"1;mob/bogged/ambient1;1,1;mob/bogged/ambient2;1,1;mob/bogged/ambient3;1,1;mob/bogged/ambient4;1","170;entity.bogged.death":"1;mob/bogged/death;1","171;entity.bogged.hurt":"1;mob/bogged/hurt1;1,1;mob/bogged/hurt2;1,1;mob/bogged/hurt3;1,1;mob/bogged/hurt4;1","172;entity.bogged.shear":"1;mob/sheep/shear;1","173;entity.bogged.step":"1;mob/bogged/step1;1,1;mob/bogged/step2;1,1;mob/bogged/step3;1,1;mob/bogged/step4;1","186;entity.breeze.charge":"1;mob/breeze/charge1;1,1;mob/breeze/charge2;1,1;mob/breeze/charge3;1","195;entity.breeze.death":"1;mob/breeze/death1;1,1;mob/breeze/death2;1","187;entity.breeze.deflect":"1;mob/breeze/deflect1;1,1;mob/breeze/deflect2;1,1;mob/breeze/deflect3;1","196;entity.breeze.hurt":"1;mob/breeze/hurt1;1,1;mob/breeze/hurt2;1,1;mob/breeze/hurt3;1","190;entity.breeze.idle_air":"1;mob/breeze/idle_air1;1,1;mob/breeze/idle_air2;1,1;mob/breeze/idle_air3;1,1;mob/breeze/idle_air4;1","189;entity.breeze.idle_ground":"1;mob/breeze/idle1;1,1;mob/breeze/idle2;1,1;mob/breeze/idle3;1,1;mob/breeze/idle4;1","188;entity.breeze.inhale":"1;mob/breeze/inhale1;1,1;mob/breeze/inhale1;1,1;mob/breeze/inhale2;1,1;mob/breeze/inhale2;1","192;entity.breeze.jump":"1;mob/breeze/jump1;1,1;mob/breeze/jump2;1","193;entity.breeze.land":"1;mob/breeze/land1;1,1;mob/breeze/land2;1","191;entity.breeze.shoot":"1;mob/breeze/shoot;1,1;mob/breeze/shoot;1,1;mob/breeze/shoot;1","194;entity.breeze.slide":"1;mob/breeze/slide1;1,1;mob/breeze/slide2;1,1;mob/breeze/slide3;1,1;mob/breeze/slide4;1","197;entity.breeze.whirl":"1;mob/breeze/whirl;1","198;entity.breeze.wind_burst":"1;mob/breeze/wind_burst1;1,1;mob/breeze/wind_burst2;1,1;mob/breeze/wind_burst3;1","231;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","232;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","233;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","234;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","235;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","236;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","237;entity.camel.saddle":"1;entity.horse.saddle;1","238;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","239;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","240;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","241;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","250;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","255;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","252;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","253;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","254;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","256;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","257;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","258;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","251;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","303;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","304;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","305;entity.chicken.egg":"1;mob/chicken/plop;1","306;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","307;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","326;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","327;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","328;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","365;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","366;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","367;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","368;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","369;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","372;entity.creeper.death":"1;mob/creeper/death;1","373;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","374;entity.creeper.primed":"1;random/fuse;1","411;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","412;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","413;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","414;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","415;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","416;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","417;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","418;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","419;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","420;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","421;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","422;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","423;entity.donkey.chest":"1;mob/chicken/plop;1","424;entity.donkey.death":"1;mob/horse/donkey/death;1","425;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","426;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","427;entity.donkey.jump":"1;mob/horse/jump;1","470;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","445;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","446;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","447;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","448;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","449;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","450;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","451;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","452;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","453;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","455;entity.egg.throw":"1;random/bow;1","456;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","457;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","458;entity.elder_guardian.curse":"1;mob/guardian/curse;1","459;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","460;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","461;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","462;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","463;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","468;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","469;entity.ender_dragon.death":"1;mob/enderdragon/end;1","471;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","472;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","473;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","474;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","475;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","476;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","487;entity.ender_pearl.throw":"1;random/bow;1","477;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","478;entity.enderman.death":"1;mob/endermen/death;1","479;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","480;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","481;entity.enderman.stare":"1;mob/endermen/stare;1","482;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","483;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","484;entity.endermite.death":"1;mob/silverfish/kill;1","485;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","486;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","491;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","492;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","493;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","494;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","496;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","497;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","498;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","499;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","495;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","500;entity.experience_bottle.throw":"1;random/bow;1","501;entity.experience_orb.pickup":"1;random/orb;1","505;entity.firework_rocket.blast":"1;fireworks/blast1;1","506;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","507;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","508;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","509;entity.firework_rocket.launch":"1;fireworks/launch1;1","510;entity.firework_rocket.shoot":"1;random/bow;1","511;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","512;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","515;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","516;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","517;entity.fishing_bobber.splash":"1;random/splash;1","518;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","525;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","526;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","527;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","528;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","529;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","530;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","531;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","532;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","533;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","534;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","535;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","557;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","558;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","559;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","560;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","561;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","562;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","563;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","564;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","571;entity.generic.big_fall":"1;damage/fallbig;1","572;entity.generic.burn":"1;random/fizz;1","573;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","574;entity.generic.drink":"1;random/drink;1","575;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","576;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","577;entity.generic.extinguish_fire":"1;random/fizz;1","578;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","579;entity.generic.small_fall":"1;damage/fallsmall;1","580;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","581;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","582;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","583;entity.ghast.death":"1;mob/ghast/death;1","584;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","585;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","586;entity.ghast.shoot":"1;mob/ghast/fireball4;1","587;entity.ghast.warn":"1;mob/ghast/charge;1","599;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","600;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","601;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","602;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","603;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","604;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","605;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","606;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","607;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","608;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","609;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","610;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","616;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","611;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","612;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","613;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","614;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","615;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","618;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","619;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","620;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","621;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","622;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","623;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","624;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","625;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","627;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","640;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","641;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","642;entity.guardian.attack":"1;mob/guardian/attack_loop;1","643;entity.guardian.death":"1;mob/guardian/guardian_death;1","644;entity.guardian.death_land":"1;mob/guardian/land_death;1","645;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","646;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","647;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","690;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","691;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","692;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","693;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","694;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","695;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","696;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","697;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","714;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","715;entity.horse.angry":"1;mob/horse/angry1;1","716;entity.horse.armor":"1;mob/horse/armor;1","717;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","718;entity.horse.death":"1;mob/horse/death;1","719;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","720;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","721;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","722;entity.horse.jump":"1;mob/horse/jump;1","723;entity.horse.land":"1;mob/horse/land;1","724;entity.horse.saddle":"1;mob/horse/leather;1","725;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","726;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","727;entity.hostile.big_fall":"1;damage/fallbig;1","728;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","729;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","730;entity.hostile.small_fall":"1;damage/fallsmall;1","731;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","732;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","733;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","734;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","735;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","736;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","737;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","738;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","739;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","740;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","741;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","742;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","743;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","744;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","748;entity.iron_golem.attack":"1;mob/irongolem/throw;1","749;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","750;entity.iron_golem.death":"1;mob/irongolem/death;1","751;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","752;entity.iron_golem.repair":"1;mob/irongolem/repair;1","753;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","761;entity.item.break":"1;random/break;1","762;entity.item.pickup":"1;random/pop;1","756;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","757;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","758;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","759;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","760;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","778;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","779;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","781;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","782;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","783;entity.lingering_potion.throw":"1;random/bow;1","784;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","785;entity.llama.angry":"1;mob/llama/angry1;1","786;entity.llama.chest":"1;mob/chicken/plop;1","787;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","788;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","789;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","790;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","791;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","792;entity.llama.swag":"1;mob/llama/swag;1","803;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","793;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","804;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","805;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","806;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","807;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","808;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","824;entity.minecart.inside":"1;minecart/inside;1","823;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","825;entity.minecart.riding":"1;minecart/base;1","826;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","827;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","828;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","830;entity.mooshroom.shear":"1;mob/sheep/shear;1","829;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","861;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","862;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","863;entity.mule.chest":"1;mob/chicken/plop;1","864;entity.mule.death":"1;mob/horse/donkey/death;1","865;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","866;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","867;entity.mule.jump":"1;mob/horse/jump;1","1009;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","1010;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","1008;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","1012;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","1013;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","1021;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1016;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1024;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","1020;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","1017;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","1018;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","1023;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","1014;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","1015;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","1019;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","1022;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","1025;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","1026;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","1027;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","1028;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","1029;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","1030;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","1031;entity.parrot.imitate.bogged":"1;entity.bogged.ambient;1","1032;entity.parrot.imitate.breeze":"0.7;entity.breeze.idle_ground;1","1033;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","1034;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","1035;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","1036;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","1037;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","1038;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","1039;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","1040;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","1041;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","1042;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","1043;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","1044;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","1045;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","1046;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","1047;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","1048;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","1049;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","1050;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","1051;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","1052;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","1053;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","1054;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","1055;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","1056;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","1057;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","1058;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","1059;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","1060;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","1061;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","1062;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","1063;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","1064;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","1065;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","1066;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","1067;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","1068;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","1069;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","1070;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","1071;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","1072;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1073;entity.pig.death":"1;mob/pig/death;1","1074;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1075;entity.pig.saddle":"1;mob/horse/leather;1","1076;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","1077;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","1078;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","1079;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","1080;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","1086;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1081;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","1083;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","1082;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","1084;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","1085;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","1087;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","1088;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","1092;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1089;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","1090;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","1091;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","1093;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","1094;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","1095;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","1096;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","1099;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","1100;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","1101;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1102;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","1103;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","1104;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1105;entity.player.big_fall":"1;damage/fallbig;1","1106;entity.player.breath":"1;random/breath;1","1107;entity.player.burp":"1;random/burp;1","1108;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1109;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1110;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1111;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1112;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1113;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1114;entity.player.levelup":"1;random/levelup;1","1115;entity.player.small_fall":"1;damage/fallsmall;1","1116;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1117;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1118;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1119;entity.player.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1120;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1121;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1122;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1123;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1124;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1125;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1140;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1141;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1142;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1143;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1144;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1145;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1147;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1148;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1149;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1150;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1151;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1153;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1154;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1155;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1156;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1157;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1160;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1158;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1159;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1182;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1183;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1184;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1226;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1227;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1228;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1229;entity.sheep.shear":"1;mob/sheep/shear;1","1230;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1239;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1244;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1245;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1246;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1247;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1248;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1249;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1250;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1242;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1243;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1251;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1252;entity.silverfish.death":"1;mob/silverfish/kill;1","1253;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1254;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1255;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1256;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1257;entity.skeleton.death":"1;mob/skeleton/death;1","1266;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1267;entity.skeleton.shoot":"1;random/bow;1","1268;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1258;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1262;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1259;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1263;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1260;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1264;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1265;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1261;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1269;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1270;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1311;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1271;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1312;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1272;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1313;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1273;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1314;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1321;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1326;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1327;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1322;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1318;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1328;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1320;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1319;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1323;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1325;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1324;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1317;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1336;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1337;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1339;entity.snow_golem.shear":"1;mob/sheep/shear;1","1338;entity.snow_golem.shoot":"1;random/bow;1","1332;entity.snowball.throw":"1;random/bow;1","1343;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1344;entity.spider.death":"1;mob/spider/death;1","1345;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1346;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1347;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1348;entity.splash_potion.throw":"1;random/bow;1","1357;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1358;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1359;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1360;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1370;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1371;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1372;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1373;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1302;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1305;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1309;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1303;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1306;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1304;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1310;entity.strider.saddle":"1;mob/horse/leather;1","1307;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1308;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1377;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1378;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1379;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1380;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1382;entity.tnt.primed":"1;random/fuse;1","1397;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1398;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1399;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1415;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1416;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1417;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1418;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1419;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1420;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1421;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1422;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1423;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1424;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1425;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1426;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1450;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1451;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1452;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1453;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1454;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1455;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1456;entity.villager.death":"1;mob/villager/death;1","1457;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1458;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1459;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1461;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1462;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1463;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1464;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1465;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1466;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1467;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1468;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1469;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1470;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1471;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1472;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1473;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1460;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1474;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1475;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1476;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1477;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1484;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1485;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1486;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1487;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1488;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1489;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1490;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1491;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1492;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1493;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1494;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1495;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1496;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1497;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1498;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1499;entity.warden.dig":"1;mob/warden/dig;1","1500;entity.warden.emerge":"1;mob/warden/emerge;1","1501;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1502;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1503;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1504;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1505;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1506;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1507;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1508;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1509;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1510;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1511;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1512;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1513;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1531;entity.wind_charge.throw":"1;random/bow;1","1530;entity.wind_charge.wind_burst":"1;entity/wind_charge/wind_burst1;1,1;entity/wind_charge/wind_burst2;1,1;entity/wind_charge/wind_burst3;1","1532;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1533;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1534;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1535;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1536;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1537;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1538;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1539;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1540;entity.wither.death":"1;mob/wither/death;1","1541;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1542;entity.wither.shoot":"1;mob/wither/shoot;1","1547;entity.wither.spawn":"1;mob/wither/spawn;1","1543;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1544;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1545;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1546;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1552;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1553;entity.wolf.death":"1;mob/wolf/death;1","1554;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1555;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1556;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1557;entity.wolf.pant":"1;mob/wolf/panting;1","1558;entity.wolf.shake":"1;mob/wolf/shake;1","1559;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1560;entity.wolf.whine":"1;mob/wolf/whine;1","1579;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1580;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1581;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1582;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1583;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1584;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1585;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1587;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1586;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1588;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1589;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1590;entity.zombie.death":"1;mob/zombie/death;1","1591;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1595;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1596;entity.zombie.infect":"1;mob/zombie/infect;1","1601;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1592;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1593;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1594;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1602;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1603;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1604;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1605;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1606;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1607;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1597;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1598;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1599;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1600;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1608;event.mob_effect.bad_omen":"1;event/mob_effects/bad_omen;1","1610;event.mob_effect.raid_omen":"1;event/mob_effects/raid_omen;1","1609;event.mob_effect.trial_omen":"1;event/mob_effects/trial_omen;1","1152;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","67;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","68;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","69;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","70;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","71;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","72;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","73;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","74;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","75;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","76;item.armor.equip_wolf":"1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf2;1,1;item/armor/equip_wolf2;1","77;item.armor.unequip_wolf":"1;item/armor/unequip_wolf1;1,1;item/armor/unequip_wolf2;1","86;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","85;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","87;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","179;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","180;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","181;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","183;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","184;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","185;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","200;item.brush.brushing.generic":"0.4;item/brush/brushing_generic1;1,0.4;item/brush/brushing_generic2;1,0.4;item/brush/brushing_generic3;1,0.4;item/brush/brushing_generic4;1","202;item.brush.brushing.gravel":"0.6;item/brush/brushing_gravel1;1,0.6;item/brush/brushing_gravel2;1,0.6;item/brush/brushing_gravel3;1,0.6;item/brush/brushing_gravel4;1","204;item.brush.brushing.gravel.complete":"1;item/brush/brushing_gravel_complete1;1,1;item/brush/brushing_gravel_complete2;1,1;item/brush/brushing_gravel_complete3;1,1;item/brush/brushing_gravel_complete4;1","201;item.brush.brushing.sand":"0.6;item/brush/brushing_sand1;1,0.6;item/brush/brushing_sand2;1,0.6;item/brush/brushing_sand3;1,0.6;item/brush/brushing_sand4;1","203;item.brush.brushing.sand.complete":"1;item/brush/brush_sand_complete1;1,1;item/brush/brush_sand_complete2;1,1;item/brush/brush_sand_complete3;1,1;item/brush/brush_sand_complete4;1,1;item/brush/brush_sand_complete5;1","210;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","211;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","212;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","213;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","214;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","215;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","216;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","217;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","218;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","219;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","220;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","221;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","222;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","223;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","224;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","319;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","376;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","377;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","378;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","379;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","380;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","381;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","382;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","383;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","384;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","454;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","464;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","504;item.firecharge.use":"1;mob/ghast/fireball4;1","519;item.flintandsteel.use":"1;fire/ignite;1","598;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","689;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","705;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","704;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","745;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","799;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","800;item.mace.smash_air":"1;item/mace/smash_air1;1,1;item/mace/smash_air2;1,1;item/mace/smash_air3;1","801;item.mace.smash_ground":"1;item/mace/smash_ground1;1,1;item/mace/smash_ground2;1,1;item/mace/smash_ground3;1,1;item/mace/smash_ground4;1","802;item.mace.smash_ground_heavy":"1;item/mace/smash_ground_heavy;1","924;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1011;item.ominous_bottle.dispose":"1;item/ominous_bottle/dispose;1","1231;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1232;item.shield.break":"1;random/break;1","1238;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1356;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1355;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1383;item.totem.use":"1;item/totem/use_totem;1","1384;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1385;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1386;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1387;item.trident.riptide_1":"1;item/trident/riptide1;1","1388;item.trident.riptide_2":"1;item/trident/riptide2;1","1389;item.trident.riptide_3":"1;item/trident/riptide3;1","1390;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1391;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","1548;item.wolf_armor.break":"1;item/armor/break_wolf;1","1549;item.wolf_armor.crack":"1;item/armor/crack_wolf1;1,1;item/armor/crack_wolf2;1,1;item/armor/crack_wolf3;1,1;item/armor/crack_wolf4;1","1550;item.wolf_armor.damage":"1;item/armor/damage_wolf1;1,1;item/armor/damage_wolf2;1,1;item/armor/damage_wolf3;1,1;item/armor/damage_wolf4;1","1551;item.wolf_armor.repair":"1;item/armor/repair_wolf1;1,1;item/armor/repair_wolf2;1,1;item/armor/repair_wolf3;1,1;item/armor/repair_wolf4;1","868;music.creative":"1;music.game;1,1;music/game/creative/aria_math;1,1;music/game/creative/biome_fest;1,1;music/game/creative/blind_spots;1,1;music/game/creative/dreiton;1,1;music/game/creative/haunt_muskie;1,1;music/game/creative/taswell;1","869;music.credits":"1;music/game/end/alpha;1","889;music.dragon":"1;music/game/end/boss;1","890;music.end":"1;music/game/end/the_end;1","891;music.game":"0.4;music/game/a_familiar_room;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/featherfall;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.8;music/game/komorebi;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,0.4;music/game/puzzlebox;1,1;music/game/subwoofer_lullaby;1,1;music/game/sweden;1,0.4;music/game/watcher;1,1;music/game/wet_hands;1,0.8;music/game/yakusoku;1","892;music.menu":"0.4;music/game/deeper;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/featherfall;1,0.8;music/game/komorebi;1,0.8;music/game/pokopoko;1,0.4;music/game/puzzlebox;1,0.4;music/game/watcher;1,0.8;music/game/yakusoku;1,1;music/menu/beginning_2;1,1;music/menu/floating_trees;1,1;music/menu/moog_city_2;1,1;music/menu/mutation;1","893;music.nether.basalt_deltas":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","894;music.nether.crimson_forest":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/dead_voxel;1,1;music/game/nether/warmth;1","905;music.nether.nether_wastes":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/nether_wastes/rubedo;6,1;music/game/nether/warmth;1","908;music.nether.soul_sand_valley":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","913;music.overworld.badlands":"0.4;music/game/crescent_dunes;2,1;music/game/danny;2,1;music/game/dry_hands;2,0.4;music/game/echo_in_the_wind;2,0.4;music/game/featherfall;2,1;music/game/haggstrom;2,1;music/game/key;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,0.4;music/game/one_more_day;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","916;music.overworld.bamboo_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","904;music.overworld.cherry_grove":"0.4;music/game/bromeliad;3,1;music/game/clark;3,0.4;music/game/echo_in_the_wind;3,0.4;music/game/featherfall;3,0.4;music/game/left_to_bloom;3,1;music/game/minecraft;3,1;music/game/sweden;3","895;music.overworld.deep_dark":"1;music/game/ancestry;1,0.4;music/game/deeper;1","912;music.overworld.desert":"0.4;music/game/crescent_dunes;3,1;music/game/danny;3,1;music/game/haggstrom;3,1;music/game/key;3,1;music/game/living_mice;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3","896;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/danny;1,0.4;music/game/deeper;1,0.4;music/game/eld_unknown;2,0.4;music/game/endless;2,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;2,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;2","911;music.overworld.flower_forest":"0.4;music/game/bromeliad;1,1;music/game/danny;1,0.4;music/game/echo_in_the_wind;1,0.4;music/game/featherfall;2,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1","901;music.overworld.forest":"0.4;music/game/bromeliad;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1,1;music/game/sweden;1,1;music/game/wet_hands;1","906;music.overworld.frozen_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,1;music/game/wet_hands;1","897;music.overworld.grove":"1;music/game/clark;1,0.4;music/game/comforting_memories;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;1,1;music/game/sweden;1,0.4;music/game/wending;1","898;music.overworld.jagged_peaks":"1;music/game/dry_hands;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/floating_dream;1,1;music/game/key;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","914;music.overworld.jungle":"0.4;music/game/bromeliad;3,1;music/game/danny;3,1;music/game/dry_hands;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,1;music/game/wet_hands;3","899;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/clark;2,0.4;music/game/echo_in_the_wind;2,0.4;music/game/featherfall;2,1;music/game/floating_dream;2,1;music/game/mice_on_venus;2,1;music/game/minecraft;2,0.4;music/game/one_more_day;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2,1;music/game/sweden;2","903;music.overworld.meadow":"1;music/game/danny;1,1;music/game/haggstrom;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;2,1;music/game/subwoofer_lullaby;1","902;music.overworld.old_growth_taiga":"1;music/game/clark;3,0.4;music/game/comforting_memories;3,1;music/game/danny;3,1;music/game/dry_hands;3,0.4;music/game/floating_dream;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/minecraft;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3,1;music/game/sweden;3,1;music/game/wet_hands;3","907;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;1,0.8;music/game/pokopoko;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1","915;music.overworld.sparse_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","909;music.overworld.stony_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/eld_unknown;2,0.4;music/game/endless;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","900;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","917;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","871;music_disc.11":"1;records/11;1","872;music_disc.13":"1;records/13;1","870;music_disc.5":"1;records/5;1","873;music_disc.blocks":"1;records/blocks;1","874;music_disc.cat":"1;records/cat;1","875;music_disc.chirp":"1;records/chirp;1","886;music_disc.creator":"1;records/creator;1","887;music_disc.creator_music_box":"1;records/creator_music_box;1","876;music_disc.far":"1;records/far;1","877;music_disc.mall":"1;records/mall;1","878;music_disc.mellohi":"1;records/mellohi;1","884;music_disc.otherside":"1;records/otherside;1","879;music_disc.pigstep":"1;records/pigstep;1","888;music_disc.precipice":"1;records/precipice;1","885;music_disc.relic":"1;records/relic;1","880;music_disc.stal":"1;records/stal;1","881;music_disc.strad":"1;records/strad;1","882;music_disc.wait":"1;records/wait;1","883;music_disc.ward":"1;records/ward;1","1296;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1427;ui.button.click":"1;random/click_stereo;1","1430;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1428;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1429;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1432;ui.stonecutter.select_recipe":"1;random/click;1","1431;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1433;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1434;ui.toast.in":"0.4;ui/toast/in;1","1435;ui.toast.out":"0.4;ui/toast/out;1","1517;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1518;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.21.2":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1,1;ambient/cave/cave20;1,1;ambient/cave/cave21;1,1;ambient/cave/cave22;1,1;ambient/cave/cave23;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.5;ambient/underwater/enter1;1,0.5;ambient/underwater/enter2;1,0.5;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.3;ambient/underwater/exit1;1,0.3;ambient/underwater/exit2;1,0.3;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.resonate":"1;block/amethyst/resonate1;1,1;block/amethyst/resonate2;1,1;block/amethyst/resonate3;1,1;block/amethyst/resonate4;1","35;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","36;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","37;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","38;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","39;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","40;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","41;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","45;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","44;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","42;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","46;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","47;block.anvil.destroy":"1;random/anvil_break;1","48;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","50;block.anvil.land":"1;random/anvil_land;1","51;block.anvil.place":"1;random/anvil_land;1","52;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","53;block.anvil.use":"1;random/anvil_use;1","95;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","96;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","97;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","98;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","99;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","100;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","101;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","102;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","103;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","104;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","105;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","106;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","107;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","108;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","109;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","110;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","111;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","112;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","113;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","114;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","115;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","116;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","117;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","122;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","123;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","118;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","119;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","126;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","127;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","687;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","688;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","689;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","690;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","686;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","124;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","125;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","120;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","121;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","128;block.barrel.close":"1;block/barrel/close;1","129;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","130;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","134;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","133;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","132;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","131;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","140;block.beacon.activate":"1;block/beacon/activate;1","141;block.beacon.ambient":"0.9;block/beacon/ambient;1","142;block.beacon.deactivate":"1;block/beacon/deactivate;1","143;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","150;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","151;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","152;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","153;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","154;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","156;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","155;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","157;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","158;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","159;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","160;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","161;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","463;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","464;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","182;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","174;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","175;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","176;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","177;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","178;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","199;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","205;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","206;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","207;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","208;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","209;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","227;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","228;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","232;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","231;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","230;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","229;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","244;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","245;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","246;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","247;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","248;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","249;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","250;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","251;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","261;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","262;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","263;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","266;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","264;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","265;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","267;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","268;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","269;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","270;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","271;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","282;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","283;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","284;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","285;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","286;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","277;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","278;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","279;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","280;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","281;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","272;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","273;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","274;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","275;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","276;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","296;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","297;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","292;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","293;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","300;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","301;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","288;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","289;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","290;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","291;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","287;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","298;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","299;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","294;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","295;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","302;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","303;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","304;block.chest.open":"1;block/chest/open;1","310;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","311;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","312;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","313;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","314;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","316;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","317;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","318;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","315;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","319;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","320;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","322;block.cobweb.break":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","326;block.cobweb.fall":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","325;block.cobweb.hit":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","324;block.cobweb.place":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","323;block.cobweb.step":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","331;block.comparator.click":"1;random/click;1","332;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","333;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","334;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","335;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","336;block.conduit.activate":"0.9;block/conduit/activate;1","337;block.conduit.ambient":"1;block/conduit/ambient;1","338;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","339;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","340;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","348;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","352;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","351;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","350;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","349;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","341;block.copper_bulb.break":"1;block/copper_bulb/break1;1,1;block/copper_bulb/break2;1,1;block/copper_bulb/break3;1,1;block/copper_bulb/break4;1","345;block.copper_bulb.fall":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","344;block.copper_bulb.hit":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","343;block.copper_bulb.place":"1;block/copper_bulb/place1;1,1;block/copper_bulb/place2;1,1;block/copper_bulb/place3;1,1;block/copper_bulb/place4;1","342;block.copper_bulb.step":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","347;block.copper_bulb.turn_off":"1;block/copper_bulb/toggle;1","346;block.copper_bulb.turn_on":"1;block/copper_bulb/toggle;1","353;block.copper_door.close":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1","354;block.copper_door.open":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1,1;block/copper_door/toggle3;1","355;block.copper_grate.break":"1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","359;block.copper_grate.fall":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","358;block.copper_grate.hit":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","357;block.copper_grate.place":"1;block/copper_grate/break1;1,1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","356;block.copper_grate.step":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","360;block.copper_trapdoor.close":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","361;block.copper_trapdoor.open":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","362;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","363;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","364;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","365;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","366;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","372;block.crafter.craft":"1;block/crafter/craft;1,1;block/crafter/craft;1,1;block/crafter/craft;1","373;block.crafter.fail":"1;block/crafter/fail;1,1;block/crafter/fail;1,1;block/crafter/fail;1","384;block.creaking_heart.break":"1;block/creaking_heart/break/creaking_heart_break;1","385;block.creaking_heart.fall":"1;block/creaking_heart/fall/creaking_heart_fall;1","386;block.creaking_heart.hit":"1;block/creaking_heart/hit/creaking_heart_hit1;1,1;block/creaking_heart/hit/creaking_heart_hit2;1,1;block/creaking_heart/hit/creaking_heart_hit3;1,1;block/creaking_heart/hit/creaking_heart_hit4;1,1;block/creaking_heart/hit/creaking_heart_hit5;1","387;block.creaking_heart.hurt":"1;block/creaking_heart/hurt/trail1;1,1;block/creaking_heart/hurt/trail2;1,1;block/creaking_heart/hurt/trail3;1,1;block/creaking_heart/hurt/trail4;1,1;block/creaking_heart/hurt/trail5;1,1;block/creaking_heart/hurt/trail6;1,1;block/creaking_heart/hurt/trail7;1","390;block.creaking_heart.idle":"1;block/creaking_heart/idle/creaking_heart_idle1;1,1;block/creaking_heart/idle/creaking_heart_idle2;1,1;block/creaking_heart/idle/creaking_heart_idle3;1,1;block/creaking_heart/idle/creaking_heart_idle4;1","388;block.creaking_heart.place":"1;block/creaking_heart/place/wood1;1,1;block/creaking_heart/place/wood2;1,1;block/creaking_heart/place/wood3;1,1;block/creaking_heart/place/wood4;1","391;block.creaking_heart.spawn":"1;block/creaking_heart/spawnmob/creaking_heart_spawnmob;1","389;block.creaking_heart.step":"1;block/creaking_heart/step/creaking_heart_step1;1,1;block/creaking_heart/step/creaking_heart_step2;1,1;block/creaking_heart/step/creaking_heart_step3;1,1;block/creaking_heart/step/creaking_heart_step4;1,1;block/creaking_heart/step/creaking_heart_step5;1,1;block/creaking_heart/step/creaking_heart_step6;1","395;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","405;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","406;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","407;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","408;block.decorated_pot.insert":"0.9;block/decorated_pot/insert1;1,0.9;block/decorated_pot/insert2;1,0.9;block/decorated_pot/insert3;1,0.9;block/decorated_pot/insert4;1","409;block.decorated_pot.insert_fail":"0.9;block/decorated_pot/insert_fail1;1,0.9;block/decorated_pot/insert_fail2;1,0.9;block/decorated_pot/insert_fail3;1,0.9;block/decorated_pot/insert_fail4;1,0.9;block/decorated_pot/insert_fail5;1","411;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","412;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1","410;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","418;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","419;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","420;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","421;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","422;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","413;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","414;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","415;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","416;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","417;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","423;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","424;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","425;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","426;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","427;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","428;block.dispenser.dispense":"1;random/click;1","429;block.dispenser.fail":"1;random/click;1","430;block.dispenser.launch":"1;random/bow;1","448;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","452;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","451;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","450;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","449;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","485;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","508;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","510;block.end_portal.spawn":"1;block/end_portal/endportal;1","509;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","486;block.ender_chest.close":"1;block/enderchest/close;1","487;block.ender_chest.open":"1;block/enderchest/open;1","522;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","523;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","533;block.fire.ambient":"1;fire/fire;1","534;block.fire.extinguish":"1;random/fizz;1","540;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","541;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","542;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","543;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","544;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","566;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","567;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","568;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","569;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","570;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","572;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","573;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","574;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","575;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","576;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","571;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","979;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","981;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","980;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","590;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","608;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","609;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","610;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","611;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","612;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","613;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","614;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","615;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","616;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","617;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","646;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","647;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","648;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","649;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","650;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","651;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","652;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","653;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","654;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","655;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","656;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","657;block.growing_plant.crop":"1;mob/sheep/shear;1","666;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","667;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","668;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","669;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","670;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","672;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","673;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","674;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","675;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","671;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","1539;block.hanging_sign.waxed_interact_fail":"1;block.sign.waxed_interact_fail;1","676;block.heavy_core.break":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","677;block.heavy_core.fall":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","678;block.heavy_core.hit":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","679;block.heavy_core.place":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","680;block.heavy_core.step":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","716;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","717;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","718;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","719;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","720;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","721;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","764;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","765;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","772;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","773;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","781;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","782;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","783;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","784;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","785;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","786;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","787;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","788;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","789;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","790;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","791;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","792;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","793;block.lava.ambient":"1;liquid/lava;1","794;block.lava.extinguish":"1;random/fizz;1","795;block.lava.pop":"1;liquid/lavapop;1","798;block.lever.click":"1;random/click;1","1508;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","812;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","816;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","815;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","814;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","813;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","827;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","828;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","829;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","830;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","831;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","832;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","833;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","834;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","835;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","836;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","837;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","840;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","838;block.metal_pressure_plate.click_off":"0.3;random/click;1","839;block.metal_pressure_plate.click_on":"0.3;random/click;1","859;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","860;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","861;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","862;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","863;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","849;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","850;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","851;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","852;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","853;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","864;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","865;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","866;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","867;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","868;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","869;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","870;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","871;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","872;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","873;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","874;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","875;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","876;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","877;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","878;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","936;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","940;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","939;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","938;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","937;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1181;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1182;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1183;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1184;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1185;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1186;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1187;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1188;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1189;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1190;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","974;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","978;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","977;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","976;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","975;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","941;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","943;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","944;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","945;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","946;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","947;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","952;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","953;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","948;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","949;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","956;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","957;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","682;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","683;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","684;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","685;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","681;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","954;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","955;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","950;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","951;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","994;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","998;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","997;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","996;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","995;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","999;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","1003;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","1002;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","1001;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","1000;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","1019;block.note_block.banjo":"1;note/banjo;1","1004;block.note_block.basedrum":"1;note/bd;1","1005;block.note_block.bass":"1;note/bassattack;1","1006;block.note_block.bell":"1;note/bell;1","1018;block.note_block.bit":"1;note/bit;1","1007;block.note_block.chime":"1;note/icechime;1","1016;block.note_block.cow_bell":"1;note/cow_bell;1","1017;block.note_block.didgeridoo":"1;note/didgeridoo;1","1008;block.note_block.flute":"1;note/flute;1","1009;block.note_block.guitar":"1;note/guitar;1","1010;block.note_block.harp":"1;note/harp2;1","1011;block.note_block.hat":"1;note/hat;1","1022;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","1023;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","1025;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","1021;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","1024;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","1020;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","1015;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","1012;block.note_block.pling":"1;note/pling;1","1013;block.note_block.snare":"1;note/snare;1","1014;block.note_block.xylophone":"1;note/xylobone;1","969;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","973;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","972;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","971;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","970;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","959;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","960;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","961;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","962;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","963;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","1032;block.pale_hanging_moss.idle":"1;block/pale_hanging_moss/pale_hanging_moss1;1,1;block/pale_hanging_moss/pale_hanging_moss2;1,1;block/pale_hanging_moss/pale_hanging_moss3;1,1;block/pale_hanging_moss/pale_hanging_moss4;1,1;block/pale_hanging_moss/pale_hanging_moss5;1,1;block/pale_hanging_moss/pale_hanging_moss6;1,1;block/pale_hanging_moss/pale_hanging_moss7;1,1;block/pale_hanging_moss/pale_hanging_moss8;1,1;block/pale_hanging_moss/pale_hanging_moss9;1,1;block/pale_hanging_moss/pale_hanging_moss10;1,1;block/pale_hanging_moss/pale_hanging_moss11;1,1;block/pale_hanging_moss/pale_hanging_moss12;1,1;block/pale_hanging_moss/pale_hanging_moss13;1,1;block/pale_hanging_moss/pale_hanging_moss14;1,1;block/pale_hanging_moss/pale_hanging_moss15;1","854;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","855;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","856;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","857;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","858;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","1117;block.piston.contract":"1;tile/piston/in;1","1118;block.piston.extend":"1;tile/piston/out;1","453;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","459;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","461;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","460;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","462;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","457;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","456;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","458;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","455;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","454;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1146;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1147;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1148;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1149;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1150;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1435;block.polished_tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1436;block.polished_tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1437;block.polished_tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1438;block.polished_tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1439;block.polished_tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1151;block.portal.ambient":"1;portal/portal;1","1152;block.portal.travel":"1;portal/travel;1","1153;block.portal.trigger":"1;portal/trigger;1","1154;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1155;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1156;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1157;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1158;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1166;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1191;block.redstone_torch.burnout":"1;random/fizz;1","1192;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1193;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1194;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1195;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1196;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1197;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1198;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1199;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1200;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","585;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","589;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","588;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","587;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","586;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1205;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1206;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1207;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1208;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1209;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1210;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1211;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1212;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1213;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1214;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1217;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1216;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1218;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1219;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1220;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1215;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1221;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1222;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1223;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1224;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1225;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1226;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1227;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1230;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1228;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1229;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1231;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1232;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1233;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1234;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1235;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1236;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1237;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1238;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1239;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1240;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1241;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1242;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1243;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1244;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1245;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1253;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1257;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1256;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1255;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1254;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1260;block.shulker_box.close":"1;block/shulker_box/close;1","1261;block.shulker_box.open":"1;block/shulker_box/open;1","1540;block.sign.waxed_interact_fail":"1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail3;1,1;block/sign/waxed_interact_fail3;1","1294;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1295;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1296;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1297;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1298;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1299;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1300;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1301;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1302;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1303;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1304;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1305;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1340;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1341;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1355;block.sniffer_egg.crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1356;block.sniffer_egg.hatch":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1354;block.sniffer_egg.plop":"1;mob/chicken/plop;1,1;mob/chicken/plop;1,1;mob/chicken/plop;1","1358;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1359;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1365;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1366;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1367;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1306;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1310;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1309;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1308;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1307;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1311;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1315;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1314;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1313;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1312;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1317;block.spawner.break":"1;block/spawner/break1;1,1;block/spawner/break2;1,1;block/spawner/break3;1,1;block/spawner/break4;1","1319;block.spawner.hit":"1;block/spawner/step1;1,1;block/spawner/step2;1,1;block/spawner/step3;1,1;block/spawner/step4;1,1;block/spawner/step5;1","1320;block.spawner.place":"1;block/spawner/break1;1,1;block/spawner/break2;1,1;block/spawner/break3;1,1;block/spawner/break4;1","1321;block.spawner.step":"1;block/spawner/step1;1,1;block/spawner/step2;1,1;block/spawner/step3;1,1;block/spawner/step4;1,1;block/spawner/step5;1","1379;block.sponge.absorb":"1;block/sponge/absorb1;1,1;block/sponge/absorb2;1,1;block/sponge/absorb3;1","1374;block.sponge.break":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1375;block.sponge.fall":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1376;block.sponge.hit":"0.8;block/sponge/step1;1,0.8;block/sponge/step2;1,0.8;block/sponge/step3;1,0.8;block/sponge/step4;1,0.8;block/sponge/step5;1,0.8;block/sponge/step6;1","1377;block.sponge.place":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1378;block.sponge.step":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1322;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1323;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1324;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1325;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1326;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","964;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","968;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","967;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","966;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","965;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1386;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1389;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1390;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1391;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1394;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1387;block.stone_button.click_off":"0.3;random/click;1","1388;block.stone_button.click_on":"0.3;random/click;1","1392;block.stone_pressure_plate.click_off":"0.3;random/click;1","1393;block.stone_pressure_plate.click_on":"0.3;random/click;1","561;block.suspicious_gravel.break":"1;block/suspicious_gravel/break1;1,1;block/suspicious_gravel/break2;1,1;block/suspicious_gravel/break3;1,1;block/suspicious_gravel/break4;1,1;block/suspicious_gravel/break5;1,1;block/suspicious_gravel/break6;1","565;block.suspicious_gravel.fall":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","564;block.suspicious_gravel.hit":"0.8;block/suspicious_gravel/step1;1,0.8;block/suspicious_gravel/step2;1,0.8;block/suspicious_gravel/step3;1,0.8;block/suspicious_gravel/step4;1","563;block.suspicious_gravel.place":"1;block/suspicious_gravel/place1;1,1;block/suspicious_gravel/place2;1,1;block/suspicious_gravel/place3;1,1;block/suspicious_gravel/place4;1","562;block.suspicious_gravel.step":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","556;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","560;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","559;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","558;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","557;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1399;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1401;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1400;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","697;block.trial_spawner.about_to_spawn_item":"1;block/trial_spawner/about_to_spawn_item;1","702;block.trial_spawner.ambient":"1;block/trial_spawner/ambient1;1,1;block/trial_spawner/ambient2;1,1;block/trial_spawner/ambient3;1,1;block/trial_spawner/ambient4;1,1;block/trial_spawner/ambient5;1","703;block.trial_spawner.ambient_ominous":"1;block/trial_spawner/ambient_ominous1;1,1;block/trial_spawner/ambient_ominous2;1,1;block/trial_spawner/ambient_ominous3;1,1;block/trial_spawner/ambient_ominous4;1,1;block/trial_spawner/ambient_ominous5;1","691;block.trial_spawner.break":"0.9;block/trial_spawner/break1;1,0.9;block/trial_spawner/break2;1,0.9;block/trial_spawner/break3;1","705;block.trial_spawner.close_shutter":"1;block/trial_spawner/close_shutter;1","700;block.trial_spawner.detect_player":"1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player3;1,1;block/trial_spawner/detect_player3;1","706;block.trial_spawner.eject_item":"1;block/trial_spawner/eject_item1;1","695;block.trial_spawner.fall":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","694;block.trial_spawner.hit":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","701;block.trial_spawner.ominous_activate":"1;block/trial_spawner/ominous_activate;1","704;block.trial_spawner.open_shutter":"1;block/trial_spawner/open_shutter;1","693;block.trial_spawner.place":"1;block/trial_spawner/place1;1,1;block/trial_spawner/place2;1,1;block/trial_spawner/place3;1","698;block.trial_spawner.spawn_item":"1;block/trial_spawner/spawn_item1;1,1;block/trial_spawner/spawn_item2;1,1;block/trial_spawner/spawn_item3;1","699;block.trial_spawner.spawn_item_begin":"1;block/trial_spawner/spawn_item_begin1;1,1;block/trial_spawner/spawn_item_begin2;1,1;block/trial_spawner/spawn_item_begin3;1","696;block.trial_spawner.spawn_mob":"1;block/trial_spawner/spawn1;1,1;block/trial_spawner/spawn2;1,1;block/trial_spawner/spawn3;1,1;block/trial_spawner/spawn4;1","692;block.trial_spawner.step":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","1417;block.tripwire.attach":"1;random/click;1","1418;block.tripwire.click_off":"1;random/click;1","1419;block.tripwire.click_on":"1;random/click;1","1420;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1425;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1429;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1428;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1427;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1426;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1430;block.tuff_bricks.break":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1431;block.tuff_bricks.fall":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1432;block.tuff_bricks.hit":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1433;block.tuff_bricks.place":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1434;block.tuff_bricks.step":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1461;block.vault.activate":"1;block/vault/activate;1","1462;block.vault.ambient":"1;block/vault/ambient1;1,1;block/vault/ambient2;1,1;block/vault/ambient3;1","1463;block.vault.break":"1;block/vault/break1;1,1;block/vault/break2;1,1;block/vault/break3;1,1;block/vault/break4;1","1464;block.vault.close_shutter":"1;block/trial_spawner/close_shutter;1","1465;block.vault.deactivate":"1;block/vault/deactivate;1","1466;block.vault.eject_item":"1;block/vault/eject1;1,1;block/vault/eject2;1,1;block/vault/eject3;1","1468;block.vault.fall":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1469;block.vault.hit":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1470;block.vault.insert_item":"1;block/vault/insert;1","1471;block.vault.insert_item_fail":"1;block/vault/insert_fail;1","1472;block.vault.open_shutter":"1;block/vault/open_shutter;1","1473;block.vault.place":"1;block/vault/place1;1,1;block/vault/place2;1,1;block/vault/place3;1,1;block/vault/place4;1","1467;block.vault.reject_rewarded_player":"1;block/vault/reject_rewarded_player;1","1474;block.vault.step":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1503;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1504;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1505;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1506;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1507;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","989;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","993;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","992;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","991;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","990;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1541;block.water.ambient":"1;liquid/water;1","984;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","988;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","987;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","986;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","985;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1544;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1545;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1546;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1547;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1548;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1549;block.wet_sponge.break":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1550;block.wet_sponge.dries":"1;random/fizz;1","1551;block.wet_sponge.fall":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1552;block.wet_sponge.hit":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1553;block.wet_sponge.place":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1554;block.wet_sponge.step":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1594;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1595;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1596;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1597;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1598;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1590;block.wooden_button.click_off":"0.3;random/wood_click;1","1591;block.wooden_button.click_on":"0.3;random/wood_click;1","1586;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1587;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1592;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1593;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1588;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1589;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1599;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1600;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1601;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1602;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1603;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1406;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","57;entity.armadillo.ambient":"1;mob/armadillo/ambient1;1,1;mob/armadillo/ambient2;1,1;mob/armadillo/ambient3;1,1;mob/armadillo/ambient4;1,1;mob/armadillo/ambient5;1,1;mob/armadillo/ambient6;1,1;mob/armadillo/ambient7;1,1;mob/armadillo/ambient8;1","66;entity.armadillo.brush":"0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1","59;entity.armadillo.death":"1;mob/armadillo/death1;1,1;mob/armadillo/death2;1,1;mob/armadillo/death3;1,1;mob/armadillo/death4;1","54;entity.armadillo.eat":"1;mob/armadillo/eat1;1,1;mob/armadillo/eat2;1,1;mob/armadillo/eat3;1","55;entity.armadillo.hurt":"1;mob/armadillo/hurt1;1,1;mob/armadillo/hurt2;1,1;mob/armadillo/hurt3;1,1;mob/armadillo/hurt4;1,1;mob/armadillo/hurt5;1","56;entity.armadillo.hurt_reduced":"1;mob/armadillo/hurt_reduced1;1,1;mob/armadillo/hurt_reduced2;1,1;mob/armadillo/hurt_reduced3;1,1;mob/armadillo/hurt_reduced4;1","61;entity.armadillo.land":"1;mob/armadillo/land1;1,1;mob/armadillo/land2;1,1;mob/armadillo/land3;1,1;mob/armadillo/land4;1","64;entity.armadillo.peek":"1;mob/armadillo/peek;1","60;entity.armadillo.roll":"1;mob/armadillo/roll1;1,1;mob/armadillo/roll2;1,1;mob/armadillo/roll3;1,1;mob/armadillo/roll4;1","62;entity.armadillo.scute_drop":"1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop2;1,1;mob/armadillo/scute_drop2;1","58;entity.armadillo.step":"1;mob/armadillo/step1;1,1;mob/armadillo/step2;1,1;mob/armadillo/step3;1,1;mob/armadillo/step4;1,1;mob/armadillo/step5;1","63;entity.armadillo.unroll_finish":"1;mob/armadillo/unroll_finish1;1,1;mob/armadillo/unroll_finish2;1","65;entity.armadillo.unroll_start":"1;mob/armadillo/unroll_start;1","78;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","79;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","80;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","81;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","82;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","83;entity.arrow.hit_player":"1;random/successful_hit;1","84;entity.arrow.shoot":"1;random/bow;1","88;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","89;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","90;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","91;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","92;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","93;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","94;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","135;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","136;entity.bat.death":"1;mob/bat/death;1","137;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","138;entity.bat.loop":"1;mob/bat/loop;1","139;entity.bat.takeoff":"1;mob/bat/takeoff;1","144;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","145;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","147;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","146;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","149;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","148;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","162;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","163;entity.blaze.burn":"1;fire/fire;1","164;entity.blaze.death":"1;mob/blaze/death;1","165;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","166;entity.blaze.shoot":"1;mob/ghast/fireball4;1","167;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","168;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","169;entity.bogged.ambient":"1;mob/bogged/ambient1;1,1;mob/bogged/ambient2;1,1;mob/bogged/ambient3;1,1;mob/bogged/ambient4;1","170;entity.bogged.death":"1;mob/bogged/death;1","171;entity.bogged.hurt":"1;mob/bogged/hurt1;1,1;mob/bogged/hurt2;1,1;mob/bogged/hurt3;1,1;mob/bogged/hurt4;1","172;entity.bogged.shear":"1;mob/sheep/shear;1","173;entity.bogged.step":"1;mob/bogged/step1;1,1;mob/bogged/step2;1,1;mob/bogged/step3;1,1;mob/bogged/step4;1","186;entity.breeze.charge":"1;mob/breeze/charge1;1,1;mob/breeze/charge2;1,1;mob/breeze/charge3;1","195;entity.breeze.death":"1;mob/breeze/death1;1,1;mob/breeze/death2;1","187;entity.breeze.deflect":"1;mob/breeze/deflect1;1,1;mob/breeze/deflect2;1,1;mob/breeze/deflect3;1","196;entity.breeze.hurt":"1;mob/breeze/hurt1;1,1;mob/breeze/hurt2;1,1;mob/breeze/hurt3;1","190;entity.breeze.idle_air":"1;mob/breeze/idle_air1;1,1;mob/breeze/idle_air2;1,1;mob/breeze/idle_air3;1,1;mob/breeze/idle_air4;1","189;entity.breeze.idle_ground":"1;mob/breeze/idle1;1,1;mob/breeze/idle2;1,1;mob/breeze/idle3;1,1;mob/breeze/idle4;1","188;entity.breeze.inhale":"1;mob/breeze/inhale1;1,1;mob/breeze/inhale1;1,1;mob/breeze/inhale2;1,1;mob/breeze/inhale2;1","192;entity.breeze.jump":"1;mob/breeze/jump1;1,1;mob/breeze/jump2;1","193;entity.breeze.land":"1;mob/breeze/land1;1,1;mob/breeze/land2;1","191;entity.breeze.shoot":"1;mob/breeze/shoot;1,1;mob/breeze/shoot;1,1;mob/breeze/shoot;1","194;entity.breeze.slide":"1;mob/breeze/slide1;1,1;mob/breeze/slide2;1,1;mob/breeze/slide3;1,1;mob/breeze/slide4;1","197;entity.breeze.whirl":"1;mob/breeze/whirl;1","198;entity.breeze.wind_burst":"1;mob/breeze/wind_burst1;1,1;mob/breeze/wind_burst2;1,1;mob/breeze/wind_burst3;1","233;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","234;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","235;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","236;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","237;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","238;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","239;entity.camel.saddle":"1;entity.horse.saddle;1","240;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","241;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","242;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","243;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","252;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","257;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","254;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","255;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","256;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","258;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","259;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","260;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","253;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","305;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","306;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","307;entity.chicken.egg":"1;mob/chicken/plop;1","308;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","309;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","328;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","329;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","330;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","367;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","368;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","369;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","370;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","371;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","375;entity.creaking.activate":"1;mob/creaking/creaking_activate;1","374;entity.creaking.ambient":"1;mob/creaking/creaking_idle1;1,1;mob/creaking/creaking_idle2;1,1;mob/creaking/creaking_idle3;1,1;mob/creaking/creaking_idle4;1,1;mob/creaking/creaking_idle5;1,1;mob/creaking/creaking_idle6;1","377;entity.creaking.attack":"1;mob/creaking/creaking_attack1;1,1;mob/creaking/creaking_attack2;1,1;mob/creaking/creaking_attack3;1,1;mob/creaking/creaking_attack4;1","376;entity.creaking.deactivate":"1;mob/creaking/creaking_deactivate;1","378;entity.creaking.death":"1;mob/creaking/creaking_death;1","380;entity.creaking.freeze":"1;mob/creaking/creaking_freeze1;1,1;mob/creaking/creaking_freeze2;1,1;mob/creaking/creaking_freeze3;1,1;mob/creaking/creaking_freeze4;1","382;entity.creaking.spawn":"1;mob/creaking/creaking_spawn;1","379;entity.creaking.step":"1;mob/creaking/creaking_step1;1,1;mob/creaking/creaking_step2;1,1;mob/creaking/creaking_step3;1,1;mob/creaking/creaking_step4;1,1;mob/creaking/creaking_step5;1","383;entity.creaking.sway":"1;mob/creaking/creaking_sway;1","381;entity.creaking.unfreeze":"1;mob/creaking/creaking_unfreeze1;1,1;mob/creaking/creaking_unfreeze2;1,1;mob/creaking/creaking_unfreeze3;1","392;entity.creeper.death":"1;mob/creeper/death;1","393;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","394;entity.creeper.primed":"1;random/fuse;1","431;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","432;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","433;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","434;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","435;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","436;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","437;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","438;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","439;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","440;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","441;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","442;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","443;entity.donkey.chest":"1;mob/chicken/plop;1","444;entity.donkey.death":"1;mob/horse/donkey/death;1","445;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","446;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","447;entity.donkey.jump":"1;mob/horse/jump;1","490;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","465;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","466;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","467;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","468;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","469;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","470;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","471;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","472;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","473;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","475;entity.egg.throw":"1;random/bow;1","476;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","477;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","478;entity.elder_guardian.curse":"1;mob/guardian/curse;1","479;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","480;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","481;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","482;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","483;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","488;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","489;entity.ender_dragon.death":"1;mob/enderdragon/end;1","491;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","492;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","493;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","494;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","495;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","496;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","507;entity.ender_pearl.throw":"1;random/bow;1","497;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","498;entity.enderman.death":"1;mob/endermen/death;1","499;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","500;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","501;entity.enderman.stare":"1;mob/endermen/stare;1","502;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","503;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","504;entity.endermite.death":"1;mob/silverfish/kill;1","505;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","506;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","511;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","512;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","513;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","514;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","516;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","517;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","518;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","519;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","515;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","520;entity.experience_bottle.throw":"1;random/bow;1","521;entity.experience_orb.pickup":"1;random/orb;1","525;entity.firework_rocket.blast":"1;fireworks/blast1;1","526;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","527;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","528;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","529;entity.firework_rocket.launch":"1;fireworks/launch1;1","530;entity.firework_rocket.shoot":"1;random/bow;1","531;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","532;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","535;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","536;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","537;entity.fishing_bobber.splash":"1;random/splash;1","538;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","545;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","546;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","547;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","548;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","549;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","550;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","551;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","552;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","553;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","554;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","555;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","577;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","578;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","579;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","580;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","581;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","582;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","583;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","584;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","591;entity.generic.big_fall":"1;damage/fallbig;1","592;entity.generic.burn":"1;random/fizz;1","593;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","594;entity.generic.drink":"1;random/drink;1","595;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","596;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","597;entity.generic.extinguish_fire":"1;random/fizz;1","598;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","599;entity.generic.small_fall":"1;damage/fallsmall;1","600;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","601;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","602;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","603;entity.ghast.death":"1;mob/ghast/death;1","604;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","605;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","606;entity.ghast.shoot":"1;mob/ghast/fireball4;1","607;entity.ghast.warn":"1;mob/ghast/charge;1","619;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","620;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","621;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","622;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","623;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","624;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","625;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","626;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","627;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","628;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","629;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","630;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","636;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","631;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","632;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","633;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","634;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","635;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","637;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","638;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","639;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","640;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","641;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","642;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","643;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","644;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","645;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","658;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","659;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","660;entity.guardian.attack":"1;mob/guardian/attack_loop;1","661;entity.guardian.death":"1;mob/guardian/guardian_death;1","662;entity.guardian.death_land":"1;mob/guardian/land_death;1","663;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","664;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","665;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","708;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","709;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","710;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","711;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","712;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","713;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","714;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","715;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","732;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","733;entity.horse.angry":"1;mob/horse/angry1;1","734;entity.horse.armor":"0.5;mob/horse/armor;1","735;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","736;entity.horse.death":"1;mob/horse/death;1","737;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","738;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","739;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","740;entity.horse.jump":"1;mob/horse/jump;1","741;entity.horse.land":"1;mob/horse/land;1","742;entity.horse.saddle":"1;mob/horse/leather;1","743;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","744;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","745;entity.hostile.big_fall":"1;damage/fallbig;1","746;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","747;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","748;entity.hostile.small_fall":"1;damage/fallsmall;1","749;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","750;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","751;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","752;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","753;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","754;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","755;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","756;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","757;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","758;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","759;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","760;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","761;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","762;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","766;entity.iron_golem.attack":"1;mob/irongolem/throw;1","767;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","768;entity.iron_golem.death":"1;mob/irongolem/death;1","769;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","770;entity.iron_golem.repair":"1;mob/irongolem/repair;1","771;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","779;entity.item.break":"1;random/break;1","780;entity.item.pickup":"1;random/pop;1","774;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","775;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","776;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","777;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","778;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","796;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","797;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","799;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","800;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","801;entity.lingering_potion.throw":"1;random/bow;1","802;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","803;entity.llama.angry":"1;mob/llama/angry1;1","804;entity.llama.chest":"1;mob/chicken/plop;1","805;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","806;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","807;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","808;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","809;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","810;entity.llama.swag":"1;mob/llama/swag;1","821;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","811;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","822;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","823;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","824;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","825;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","826;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","842;entity.minecart.inside":"1;minecart/inside;1","841;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","843;entity.minecart.riding":"1;minecart/base;1","844;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","845;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","846;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","848;entity.mooshroom.shear":"1;mob/sheep/shear;1","847;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","879;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","880;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","881;entity.mule.chest":"1;mob/chicken/plop;1","882;entity.mule.death":"1;mob/horse/donkey/death;1","883;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","884;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","885;entity.mule.jump":"1;mob/horse/jump;1","1027;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","1028;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","1026;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","1030;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","1031;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","1040;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1035;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1043;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","1039;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","1036;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","1037;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","1042;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","1033;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","1034;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","1038;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","1041;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","1044;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","1045;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","1046;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","1047;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","1048;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","1049;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","1050;entity.parrot.imitate.bogged":"1;entity.bogged.ambient;1","1051;entity.parrot.imitate.breeze":"0.7;entity.breeze.idle_ground;1","1052;entity.parrot.imitate.creaking":"1;mob/creaking/parrot_imitate_creaking;1","1053;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","1054;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","1055;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","1056;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","1057;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","1058;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","1059;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","1060;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","1061;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","1062;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","1063;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","1064;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","1065;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","1066;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","1067;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","1068;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","1069;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","1070;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","1071;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","1072;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","1073;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","1074;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","1075;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","1076;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","1077;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","1078;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","1079;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","1080;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","1081;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","1082;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","1083;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","1084;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","1085;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","1086;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","1087;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","1088;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","1089;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","1090;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","1091;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","1092;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1093;entity.pig.death":"1;mob/pig/death;1","1094;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1095;entity.pig.saddle":"1;mob/horse/leather;1","1096;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","1097;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","1098;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","1099;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","1100;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","1106;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1101;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","1103;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","1102;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","1104;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","1105;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","1107;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","1108;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","1112;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1109;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","1110;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","1111;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","1113;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","1114;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","1115;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","1116;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","1119;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","1120;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","1121;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1122;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","1123;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","1124;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1125;entity.player.big_fall":"1;damage/fallbig;1","1126;entity.player.breath":"1;random/breath;1","1127;entity.player.burp":"1;random/burp;1","1128;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1129;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1130;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1131;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1132;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1133;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1134;entity.player.levelup":"1;random/levelup;1","1135;entity.player.small_fall":"1;damage/fallsmall;1","1136;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1137;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1138;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1139;entity.player.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1140;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1141;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1142;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1143;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1144;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1145;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1160;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1161;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1162;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1163;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1164;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1165;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1167;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1168;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1169;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1170;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1171;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1173;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1174;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1175;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1176;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1177;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1180;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1178;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1179;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1202;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1203;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1204;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1246;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1247;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1248;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1249;entity.sheep.shear":"1;mob/sheep/shear;1","1250;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1259;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1264;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1265;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1266;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1267;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1268;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1269;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1270;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1262;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1263;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1271;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1272;entity.silverfish.death":"1;mob/silverfish/kill;1","1273;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1274;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1275;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1276;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1277;entity.skeleton.death":"1;mob/skeleton/death;1","1286;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1287;entity.skeleton.shoot":"1;random/bow;1","1288;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1278;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1282;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1279;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1283;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1280;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1284;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1285;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1281;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1289;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1290;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1336;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1291;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1337;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1292;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1338;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1293;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1339;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1346;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1351;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1352;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1347;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1343;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1353;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1345;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1344;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1348;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1350;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1349;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1342;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1361;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1362;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1364;entity.snow_golem.shear":"1;mob/sheep/shear;1","1363;entity.snow_golem.shoot":"1;random/bow;1","1357;entity.snowball.throw":"1;random/bow;1","1368;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1369;entity.spider.death":"1;mob/spider/death;1","1370;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1371;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1372;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1373;entity.splash_potion.throw":"1;random/bow;1","1382;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1383;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1384;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1385;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1395;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1396;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1397;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1398;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1327;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1330;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1334;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1328;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1331;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1329;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1335;entity.strider.saddle":"1;mob/horse/leather;1","1332;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1333;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1402;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1403;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1404;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1405;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1407;entity.tnt.primed":"1;random/fuse;1","1422;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1423;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1424;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1440;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1441;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1442;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1443;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1444;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1445;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1446;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1447;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1448;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1449;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1450;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1451;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1475;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1476;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1477;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1478;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1479;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1480;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1481;entity.villager.death":"1;mob/villager/death;1","1482;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1483;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1484;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1486;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1487;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1488;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1489;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1490;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1491;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1492;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1493;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1494;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1495;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1496;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1497;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1498;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1485;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1499;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1500;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1501;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1502;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1509;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1510;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1511;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1512;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1513;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1514;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1515;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1516;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1517;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1518;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1519;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1520;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1521;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1522;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1523;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1524;entity.warden.dig":"1;mob/warden/dig;1","1525;entity.warden.emerge":"1;mob/warden/emerge;1","1526;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1527;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1528;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1529;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1530;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1531;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1532;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1533;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1534;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1535;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1536;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1537;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1538;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1556;entity.wind_charge.throw":"1;random/bow;1","1555;entity.wind_charge.wind_burst":"1;entity/wind_charge/wind_burst1;1,1;entity/wind_charge/wind_burst2;1,1;entity/wind_charge/wind_burst3;1","1557;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1558;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1559;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1560;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1561;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1562;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1563;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1564;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1565;entity.wither.death":"1;mob/wither/death;1","1566;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1567;entity.wither.shoot":"1;mob/wither/shoot;1","1572;entity.wither.spawn":"1;mob/wither/spawn;1","1568;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1569;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1570;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1571;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1577;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1578;entity.wolf.death":"1;mob/wolf/death;1","1579;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1580;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1581;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1582;entity.wolf.pant":"1;mob/wolf/panting;1","1583;entity.wolf.shake":"1;mob/wolf/shake;1","1584;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1585;entity.wolf.whine":"1;mob/wolf/whine;1","1604;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1605;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1606;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1607;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1608;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1609;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1610;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1612;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1611;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1613;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1614;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1615;entity.zombie.death":"1;mob/zombie/death;1","1616;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1620;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1621;entity.zombie.infect":"1;mob/zombie/infect;1","1626;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1617;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1618;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1619;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1627;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1628;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1629;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1630;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1631;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1632;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1622;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1623;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1624;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1625;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1633;event.mob_effect.bad_omen":"1;event/mob_effects/bad_omen;1","1635;event.mob_effect.raid_omen":"1;event/mob_effects/raid_omen;1","1634;event.mob_effect.trial_omen":"1;event/mob_effects/trial_omen;1","1172;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","67;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","68;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","69;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","70;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","71;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","72;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","73;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","74;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","75;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","76;item.armor.equip_wolf":"1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf2;1,1;item/armor/equip_wolf2;1","77;item.armor.unequip_wolf":"1;item/armor/unequip_wolf1;1,1;item/armor/unequip_wolf2;1","86;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","85;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","87;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","179;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","180;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","181;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","183;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","184;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","185;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","200;item.brush.brushing.generic":"0.4;item/brush/brushing_generic1;1,0.4;item/brush/brushing_generic2;1,0.4;item/brush/brushing_generic3;1,0.4;item/brush/brushing_generic4;1","202;item.brush.brushing.gravel":"0.6;item/brush/brushing_gravel1;1,0.6;item/brush/brushing_gravel2;1,0.6;item/brush/brushing_gravel3;1,0.6;item/brush/brushing_gravel4;1","204;item.brush.brushing.gravel.complete":"1;item/brush/brushing_gravel_complete1;1,1;item/brush/brushing_gravel_complete2;1,1;item/brush/brushing_gravel_complete3;1,1;item/brush/brushing_gravel_complete4;1","201;item.brush.brushing.sand":"0.6;item/brush/brushing_sand1;1,0.6;item/brush/brushing_sand2;1,0.6;item/brush/brushing_sand3;1,0.6;item/brush/brushing_sand4;1","203;item.brush.brushing.sand.complete":"1;item/brush/brush_sand_complete1;1,1;item/brush/brush_sand_complete2;1,1;item/brush/brush_sand_complete3;1,1;item/brush/brush_sand_complete4;1,1;item/brush/brush_sand_complete5;1","211;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","212;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","213;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","214;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","215;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","216;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","217;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","218;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","219;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","220;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","221;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","222;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","223;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","224;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","225;item.bundle.insert_fail":"1;item/bundle/insert_fail;1","226;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","321;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","396;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","397;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","398;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","399;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","400;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","401;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","402;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","403;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","404;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","474;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","484;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","524;item.firecharge.use":"1;mob/ghast/fireball4;1","539;item.flintandsteel.use":"1;fire/ignite;1","618;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","707;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","723;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","722;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","763;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","817;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","818;item.mace.smash_air":"1;item/mace/smash_air1;1,1;item/mace/smash_air2;1,1;item/mace/smash_air3;1","819;item.mace.smash_ground":"1;item/mace/smash_ground1;1,1;item/mace/smash_ground2;1,1;item/mace/smash_ground3;1,1;item/mace/smash_ground4;1","820;item.mace.smash_ground_heavy":"1;item/mace/smash_ground_heavy;1","942;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1029;item.ominous_bottle.dispose":"1;item/ominous_bottle/dispose;1","1251;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1252;item.shield.break":"1;random/break;1","1258;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1381;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1380;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1408;item.totem.use":"1;item/totem/use_totem;1","1409;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1410;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1411;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1412;item.trident.riptide_1":"1;item/trident/riptide1;1","1413;item.trident.riptide_2":"1;item/trident/riptide2;1","1414;item.trident.riptide_3":"1;item/trident/riptide3;1","1415;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1416;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","1573;item.wolf_armor.break":"1;item/armor/break_wolf;1","1574;item.wolf_armor.crack":"1;item/armor/crack_wolf1;1,1;item/armor/crack_wolf2;1,1;item/armor/crack_wolf3;1,1;item/armor/crack_wolf4;1","1575;item.wolf_armor.damage":"1;item/armor/damage_wolf1;1,1;item/armor/damage_wolf2;1,1;item/armor/damage_wolf3;1,1;item/armor/damage_wolf4;1","1576;item.wolf_armor.repair":"1;item/armor/repair_wolf1;1,1;item/armor/repair_wolf2;1,1;item/armor/repair_wolf3;1,1;item/armor/repair_wolf4;1","886;music.creative":"1;music.game;1,1;music/game/creative/aria_math;1,1;music/game/creative/biome_fest;1,1;music/game/creative/blind_spots;1,1;music/game/creative/dreiton;1,1;music/game/creative/haunt_muskie;1,1;music/game/creative/taswell;1","887;music.credits":"1;music/game/end/alpha;1","907;music.dragon":"1;music/game/end/boss;1","908;music.end":"1;music/game/end/the_end;1","909;music.game":"0.4;music/game/a_familiar_room;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/featherfall;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.8;music/game/komorebi;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,0.4;music/game/puzzlebox;1,1;music/game/subwoofer_lullaby;1,1;music/game/sweden;1,0.4;music/game/watcher;1,1;music/game/wet_hands;1,0.8;music/game/yakusoku;1","910;music.menu":"0.4;music/game/deeper;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/featherfall;1,0.8;music/game/komorebi;1,0.8;music/game/pokopoko;1,0.4;music/game/puzzlebox;1,0.4;music/game/watcher;1,0.8;music/game/yakusoku;1,1;music/menu/beginning_2;1,1;music/menu/floating_trees;1,1;music/menu/moog_city_2;1,1;music/menu/mutation;1","911;music.nether.basalt_deltas":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","912;music.nether.crimson_forest":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/dead_voxel;1,1;music/game/nether/warmth;1","923;music.nether.nether_wastes":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/nether_wastes/rubedo;6,1;music/game/nether/warmth;1","926;music.nether.soul_sand_valley":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","931;music.overworld.badlands":"0.4;music/game/crescent_dunes;2,1;music/game/danny;2,1;music/game/dry_hands;2,0.4;music/game/echo_in_the_wind;2,0.4;music/game/featherfall;2,1;music/game/haggstrom;2,1;music/game/key;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,0.4;music/game/one_more_day;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","934;music.overworld.bamboo_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","922;music.overworld.cherry_grove":"0.4;music/game/bromeliad;3,1;music/game/clark;3,0.4;music/game/echo_in_the_wind;3,0.4;music/game/featherfall;3,0.4;music/game/left_to_bloom;3,1;music/game/minecraft;3,1;music/game/sweden;3","913;music.overworld.deep_dark":"1;music/game/ancestry;1,0.4;music/game/deeper;1","930;music.overworld.desert":"0.4;music/game/crescent_dunes;3,1;music/game/danny;3,1;music/game/haggstrom;3,1;music/game/key;3,1;music/game/living_mice;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3","914;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/danny;1,0.4;music/game/deeper;1,0.4;music/game/eld_unknown;2,0.4;music/game/endless;2,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;2,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;2","929;music.overworld.flower_forest":"0.4;music/game/bromeliad;1,1;music/game/danny;1,0.4;music/game/echo_in_the_wind;1,0.4;music/game/featherfall;2,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1","919;music.overworld.forest":"0.4;music/game/bromeliad;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1,1;music/game/sweden;1,1;music/game/wet_hands;1","924;music.overworld.frozen_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,1;music/game/wet_hands;1","915;music.overworld.grove":"1;music/game/clark;1,0.4;music/game/comforting_memories;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;1,1;music/game/sweden;1,0.4;music/game/wending;1","916;music.overworld.jagged_peaks":"1;music/game/dry_hands;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/floating_dream;1,1;music/game/key;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","932;music.overworld.jungle":"0.4;music/game/bromeliad;3,1;music/game/danny;3,1;music/game/dry_hands;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,1;music/game/wet_hands;3","917;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/clark;2,0.4;music/game/echo_in_the_wind;2,0.4;music/game/featherfall;2,1;music/game/floating_dream;2,1;music/game/mice_on_venus;2,1;music/game/minecraft;2,0.4;music/game/one_more_day;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2,1;music/game/sweden;2","921;music.overworld.meadow":"1;music/game/danny;1,1;music/game/haggstrom;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;2,1;music/game/subwoofer_lullaby;1","920;music.overworld.old_growth_taiga":"1;music/game/clark;3,0.4;music/game/comforting_memories;3,1;music/game/danny;3,1;music/game/dry_hands;3,0.4;music/game/floating_dream;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/minecraft;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3,1;music/game/sweden;3,1;music/game/wet_hands;3","925;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;1,0.8;music/game/pokopoko;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1","933;music.overworld.sparse_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","927;music.overworld.stony_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/eld_unknown;2,0.4;music/game/endless;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","918;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","935;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","889;music_disc.11":"1;records/11;1","890;music_disc.13":"1;records/13;1","888;music_disc.5":"1;records/5;1","891;music_disc.blocks":"1;records/blocks;1","892;music_disc.cat":"1;records/cat;1","893;music_disc.chirp":"1;records/chirp;1","904;music_disc.creator":"1;records/creator;1","905;music_disc.creator_music_box":"1;records/creator_music_box;1","894;music_disc.far":"1;records/far;1","895;music_disc.mall":"1;records/mall;1","896;music_disc.mellohi":"1;records/mellohi;1","902;music_disc.otherside":"1;records/otherside;1","897;music_disc.pigstep":"1;records/pigstep;1","906;music_disc.precipice":"1;records/precipice;1","903;music_disc.relic":"1;records/relic;1","898;music_disc.stal":"1;records/stal;1","899;music_disc.strad":"1;records/strad;1","900;music_disc.wait":"1;records/wait;1","901;music_disc.ward":"1;records/ward;1","1316;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1452;ui.button.click":"1;random/click_stereo;1","1455;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","210;ui.hud.bubble_pop":"1;ui/hud/hud_bubble;1","1453;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1454;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1457;ui.stonecutter.select_recipe":"1;random/click;1","1456;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1458;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1459;ui.toast.in":"0.4;ui/toast/in;1","1460;ui.toast.out":"0.4;ui/toast/out;1","1542;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1543;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"},"1.21.4":{"8;ambient.basalt_deltas.additions":"0.35;ambient/nether/basalt_deltas/debris1;40,0.35;ambient/nether/basalt_deltas/debris2;40,0.35;ambient/nether/basalt_deltas/debris3;40,0.35;ambient/nether/basalt_deltas/long_debris1;40,0.35;ambient/nether/basalt_deltas/long_debris2;40,0.01;ambient/nether/basalt_deltas/click7;25,0.01;ambient/nether/basalt_deltas/click8;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.19;ambient/nether/basalt_deltas/click1;20,0.19;ambient/nether/basalt_deltas/click2;20,0.19;ambient/nether/basalt_deltas/click3;20,0.25;ambient/nether/basalt_deltas/click4;20,0.25;ambient/nether/basalt_deltas/click5;20,0.01;ambient/nether/basalt_deltas/click6;20,0.25;ambient/nether/basalt_deltas/heavy_click1;20,0.25;ambient/nether/basalt_deltas/heavy_click2;20,0.55;ambient/nether/basalt_deltas/basaltground1;10,0.55;ambient/nether/basalt_deltas/basaltground2;10,0.55;ambient/nether/basalt_deltas/basaltground3;10,0.5;ambient/nether/basalt_deltas/plode1;10,0.5;ambient/nether/basalt_deltas/plode2;10,0.5;ambient/nether/basalt_deltas/plode3;10,0.66;ambient/nether/basalt_deltas/twist1;10,0.66;ambient/nether/basalt_deltas/twist2;10,0.77;ambient/nether/basalt_deltas/twist3;10,0.66;ambient/nether/basalt_deltas/twist4;10","9;ambient.basalt_deltas.loop":"0.5;ambient/nether/basalt_deltas/ambience;1","10;ambient.basalt_deltas.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","7;ambient.cave":"1;ambient/cave/cave1;1,1;ambient/cave/cave2;1,1;ambient/cave/cave3;1,1;ambient/cave/cave4;1,1;ambient/cave/cave5;1,1;ambient/cave/cave6;1,1;ambient/cave/cave7;1,1;ambient/cave/cave8;1,1;ambient/cave/cave9;1,1;ambient/cave/cave10;1,1;ambient/cave/cave11;1,1;ambient/cave/cave12;1,1;ambient/cave/cave13;1,1;ambient/cave/cave14;1,1;ambient/cave/cave15;1,1;ambient/cave/cave16;1,1;ambient/cave/cave17;1,1;ambient/cave/cave18;1,1;ambient/cave/cave19;1,1;ambient/cave/cave20;1,1;ambient/cave/cave21;1,1;ambient/cave/cave22;1,1;ambient/cave/cave23;1","11;ambient.crimson_forest.additions":"0.4;ambient/nether/crimson_forest/particles1;35,0.4;ambient/nether/crimson_forest/particles2;35,0.4;ambient/nether/crimson_forest/particles3;35,0.1;ambient/nether/crimson_forest/shine1;6,0.1;ambient/nether/crimson_forest/shine2;6,0.1;ambient/nether/crimson_forest/shine3;6,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom1;4,0.7;ambient/nether/crimson_forest/voom2;4,0.7;ambient/nether/crimson_forest/voom2;4,0.4;ambient/nether/crimson_forest/addition1;3,0.5;ambient/nether/crimson_forest/addition2;3,0.32;ambient/nether/crimson_forest/addition3;3,0.25;ambient/nether/crimson_forest/shroom1;2,0.25;ambient/nether/crimson_forest/shroom2;2,0.25;ambient/nether/crimson_forest/shroom3;2,0.25;ambient/nether/crimson_forest/twang1;2","12;ambient.crimson_forest.loop":"0.74;ambient/nether/crimson_forest/ambience;1","13;ambient.crimson_forest.mood":"1;ambient/nether/crimson_forest/mood1;1,1;ambient/nether/crimson_forest/mood2;1,1;ambient/nether/crimson_forest/mood3;1,1;ambient/nether/crimson_forest/mood4;1","14;ambient.nether_wastes.additions":"0.3;ambient/nether/nether_wastes/addition1;1,0.3;ambient/nether/nether_wastes/addition2;1,0.1;ambient/nether/nether_wastes/addition3;1,0.67;ambient/nether/nether_wastes/addition4;5,0.3;ambient/nether/nether_wastes/addition5;1,0.3;ambient/nether/nether_wastes/addition6;1,0.3;ambient/nether/nether_wastes/addition7;1,0.67;ambient/nether/nether_wastes/addition8;5,0.9;ambient/nether/nether_wastes/dark1;5,0.9;ambient/nether/nether_wastes/dark2;5,0.25;ambient/nether/nether_wastes/ground1;3,0.4;ambient/nether/nether_wastes/ground2;1,0.4;ambient/nether/nether_wastes/ground3;1,0.4;ambient/nether/nether_wastes/ground4;1","15;ambient.nether_wastes.loop":"0.77;ambient/nether/nether_wastes/ambience;1","16;ambient.nether_wastes.mood":"1;ambient/nether/nether_wastes/mood1;1,1;ambient/nether/nether_wastes/mood2;1,1;ambient/nether/nether_wastes/mood3;1,1;ambient/nether/nether_wastes/mood4;1,1;ambient/nether/nether_wastes/mood5;1","17;ambient.soul_sand_valley.additions":"0.2;ambient/nether/soulsand_valley/sand1;25,0.2;ambient/nether/soulsand_valley/sand2;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.3;ambient/nether/soulsand_valley/wind1;25,0.25;ambient/nether/soulsand_valley/wind2;25,0.3;ambient/nether/soulsand_valley/wind2;25,0.25;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind3;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.3;ambient/nether/soulsand_valley/wind4;25,0.4;ambient/nether/soulsand_valley/voices1;5,0.4;ambient/nether/soulsand_valley/voices2;5,0.4;ambient/nether/soulsand_valley/voices3;5,0.8;ambient/nether/soulsand_valley/voices4;5,0.4;ambient/nether/soulsand_valley/voices5;5,0.15;ambient/nether/soulsand_valley/voices5;5,0.9;ambient/nether/soulsand_valley/whisper1;5,0.9;ambient/nether/soulsand_valley/whisper2;5,0.9;ambient/nether/soulsand_valley/whisper3;5,0.9;ambient/nether/soulsand_valley/whisper4;5,0.9;ambient/nether/soulsand_valley/whisper5;5,0.9;ambient/nether/soulsand_valley/whisper6;5,0.9;ambient/nether/soulsand_valley/whisper7;5,1;ambient/nether/soulsand_valley/whisper8;5,0.6;ambient/nether/soulsand_valley/with1;4,0.4;ambient/nether/soulsand_valley/sand3;2","18;ambient.soul_sand_valley.loop":"0.85;ambient/nether/soulsand_valley/ambience;1","19;ambient.soul_sand_valley.mood":"1;ambient/nether/soulsand_valley/mood1;1,1;ambient/nether/soulsand_valley/mood2;1,1;ambient/nether/soulsand_valley/mood3;1,1;ambient/nether/soulsand_valley/mood4;1","23;ambient.underwater.enter":"0.5;ambient/underwater/enter1;1,0.5;ambient/underwater/enter2;1,0.5;ambient/underwater/enter3;1","24;ambient.underwater.exit":"0.3;ambient/underwater/exit1;1,0.3;ambient/underwater/exit2;1,0.3;ambient/underwater/exit3;1","25;ambient.underwater.loop":"0.65;ambient/underwater/underwater_ambience;1","26;ambient.underwater.loop.additions":"1;ambient/underwater/additions/bubbles1;1,1;ambient/underwater/additions/bubbles2;1,1;ambient/underwater/additions/bubbles3;1,1;ambient/underwater/additions/bubbles4;1,1;ambient/underwater/additions/bubbles5;1,1;ambient/underwater/additions/bubbles6;1,1;ambient/underwater/additions/water1;1,1;ambient/underwater/additions/water2;1","27;ambient.underwater.loop.additions.rare":"1;ambient/underwater/additions/animal1;1,0.45;ambient/underwater/additions/bass_whale1;1,0.5;ambient/underwater/additions/bass_whale2;1,0.7;ambient/underwater/additions/crackles1;1,1;ambient/underwater/additions/crackles2;1,0.5;ambient/underwater/additions/driplets1;1,0.5;ambient/underwater/additions/driplets2;1,1;ambient/underwater/additions/earth_crack;1","28;ambient.underwater.loop.additions.ultra_rare":"1;ambient/underwater/additions/animal2;1,1;ambient/underwater/additions/dark1;1,0.7;ambient/underwater/additions/dark2;1,1;ambient/underwater/additions/dark3;1,1;ambient/underwater/additions/dark4;1","20;ambient.warped_forest.additions":"0.3;ambient/nether/crimson_forest/addition1;1,0.4;ambient/nether/crimson_forest/particles1;40,0.3;ambient/nether/crimson_forest/particles2;40,0.3;ambient/nether/crimson_forest/particles3;40,0.06;ambient/nether/warped_forest/addition1;3,0.06;ambient/nether/warped_forest/addition2;3,0.06;ambient/nether/warped_forest/addition3;3,0.07;ambient/nether/warped_forest/addition4;3,0.07;ambient/nether/warped_forest/addition5;3,0.15;ambient/nether/warped_forest/addition6;1,0.1;ambient/nether/warped_forest/enish1;10,0.1;ambient/nether/warped_forest/enish2;6,0.07;ambient/nether/warped_forest/enish3;6,0.2;ambient/nether/warped_forest/help1;1,0.2;ambient/nether/warped_forest/help2;1,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here2;3,0.2;ambient/nether/warped_forest/here3;3,0.1;ambient/nether/warped_forest/here1;2,0.1;ambient/nether/warped_forest/here1;2","21;ambient.warped_forest.loop":"0.71;ambient/nether/warped_forest/ambience;1","22;ambient.warped_forest.mood":"1;ambient/nether/warped_forest/creak1;1,1;ambient/nether/warped_forest/creak2;1,1;ambient/nether/warped_forest/creak3;1,1;ambient/nether/warped_forest/creak4;1,1;ambient/nether/warped_forest/creak5;1,1;ambient/nether/warped_forest/mood1;1,1;ambient/nether/warped_forest/mood2;1,1;ambient/nether/warped_forest/mood3;1,1;ambient/nether/warped_forest/mood4;1,1;ambient/nether/warped_forest/mood5;1,1;ambient/nether/warped_forest/mood6;1,1;ambient/nether/warped_forest/mood7;1","29;block.amethyst_block.break":"1;block/amethyst/break1;1,1;block/amethyst/break2;1,1;block/amethyst/break3;1,1;block/amethyst/break4;1","30;block.amethyst_block.chime":"0.2;block/amethyst/shimmer;1","31;block.amethyst_block.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","32;block.amethyst_block.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","33;block.amethyst_block.place":"1;block/amethyst/place1;1,1;block/amethyst/place2;1,1;block/amethyst/place3;1,1;block/amethyst/place4;1","34;block.amethyst_block.resonate":"1;block/amethyst/resonate1;1,1;block/amethyst/resonate2;1,1;block/amethyst/resonate3;1,1;block/amethyst/resonate4;1","35;block.amethyst_block.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","36;block.amethyst_cluster.break":"0.8;block/amethyst_cluster/break1;1,0.8;block/amethyst_cluster/break2;1,0.8;block/amethyst_cluster/break3;1,0.8;block/amethyst_cluster/break4;1","37;block.amethyst_cluster.fall":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step14;1","38;block.amethyst_cluster.hit":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1","39;block.amethyst_cluster.place":"0.9;block/amethyst_cluster/place1;1,0.9;block/amethyst_cluster/place2;1,0.9;block/amethyst_cluster/place3;1,0.9;block/amethyst_cluster/place4;1","40;block.amethyst_cluster.step":"1;block/amethyst/step1;1,1;block/amethyst/step2;1,1;block/amethyst/step3;1,1;block/amethyst/step4;1,1;block/amethyst/step5;1,1;block/amethyst/step6;1,1;block/amethyst/step7;1,1;block/amethyst/step8;1,1;block/amethyst/step9;1,1;block/amethyst/step10;1,1;block/amethyst/step11;1,1;block/amethyst/step12;1,1;block/amethyst/step13;1,1;block/amethyst/step14;1","41;block.ancient_debris.break":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","45;block.ancient_debris.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","44;block.ancient_debris.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","43;block.ancient_debris.place":"1;block/ancient_debris/break1;1,1;block/ancient_debris/break2;1,1;block/ancient_debris/break3;1,1;block/ancient_debris/break4;1,1;block/ancient_debris/break5;1","42;block.ancient_debris.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","46;block.anvil.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","47;block.anvil.destroy":"1;random/anvil_break;1","48;block.anvil.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","49;block.anvil.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","50;block.anvil.land":"1;random/anvil_land;1","51;block.anvil.place":"1;random/anvil_land;1","52;block.anvil.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","53;block.anvil.use":"1;random/anvil_use;1","95;block.azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","96;block.azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","97;block.azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","98;block.azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","99;block.azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","100;block.azalea_leaves.break":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","101;block.azalea_leaves.fall":"1;block/azalea_leaves/step1;1,1;block/azalea_leaves/step2;1,1;block/azalea_leaves/step3;1,1;block/azalea_leaves/step4;1,1;block/azalea_leaves/step5;1","102;block.azalea_leaves.hit":"0.8;block/azalea_leaves/step1;1,0.8;block/azalea_leaves/step2;1,0.8;block/azalea_leaves/step3;1,0.8;block/azalea_leaves/step4;1,0.8;block/azalea_leaves/step5;1","103;block.azalea_leaves.place":"0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break1;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break2;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break3;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break4;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break5;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break6;1,0.85;block/azalea_leaves/break7;1,0.85;block/azalea_leaves/break7;1","104;block.azalea_leaves.step":"0.85;block/azalea_leaves/step1;1,0.85;block/azalea_leaves/step2;1,0.85;block/azalea_leaves/step3;1,0.85;block/azalea_leaves/step4;1,0.85;block/azalea_leaves/step5;1","105;block.bamboo.break":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","106;block.bamboo.fall":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","107;block.bamboo.hit":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","108;block.bamboo.place":"0.8;block/bamboo/place1;1,0.8;block/bamboo/place2;1,0.8;block/bamboo/place3;1,0.8;block/bamboo/place4;1,0.8;block/bamboo/place5;1,0.8;block/bamboo/place6;1","109;block.bamboo.step":"1;block/bamboo/step1;1,1;block/bamboo/step2;1,1;block/bamboo/step3;1,1;block/bamboo/step4;1,1;block/bamboo/step5;1,1;block/bamboo/step6;1","110;block.bamboo_sapling.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","111;block.bamboo_sapling.hit":"0.8;block/bamboo/sapling_hit1;1,0.8;block/bamboo/sapling_hit2;1,0.8;block/bamboo/sapling_hit3;1,0.8;block/bamboo/sapling_hit4;1,0.8;block/bamboo/sapling_hit5;1","112;block.bamboo_sapling.place":"0.85;block/bamboo/sapling_place1;1,0.85;block/bamboo/sapling_place2;1,0.85;block/bamboo/sapling_place3;1,0.85;block/bamboo/sapling_place4;1,0.85;block/bamboo/sapling_place5;1,0.85;block/bamboo/sapling_place6;1","113;block.bamboo_wood.break":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","114;block.bamboo_wood.fall":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","115;block.bamboo_wood.hit":"0.9;block/bamboo_wood/step1;1,0.9;block/bamboo_wood/step2;1,0.9;block/bamboo_wood/step3;1,0.9;block/bamboo_wood/step4;1,0.9;block/bamboo_wood/step5;1,0.9;block/bamboo_wood/step6;1","116;block.bamboo_wood.place":"0.9;block/bamboo_wood/break1;1,0.9;block/bamboo_wood/break2;1,0.9;block/bamboo_wood/break3;1,0.9;block/bamboo_wood/break4;1,0.9;block/bamboo_wood/break5;1","117;block.bamboo_wood.step":"1;block/bamboo_wood/step1;1,1;block/bamboo_wood/step2;1,1;block/bamboo_wood/step3;1,1;block/bamboo_wood/step4;1,1;block/bamboo_wood/step5;1,1;block/bamboo_wood/step6;1","122;block.bamboo_wood_button.click_off":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","123;block.bamboo_wood_button.click_on":"0.3;block/bamboo_wood_button/bamboo_wood_button;1","118;block.bamboo_wood_door.close":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","119;block.bamboo_wood_door.open":"0.9;block/bamboo_wood_door/toggle1;1,0.9;block/bamboo_wood_door/toggle2;1,0.9;block/bamboo_wood_door/toggle3;1,0.9;block/bamboo_wood_door/toggle4;1","126;block.bamboo_wood_fence_gate.close":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","127;block.bamboo_wood_fence_gate.open":"0.9;block/bamboo_wood_fence/toggle1;1,0.9;block/bamboo_wood_fence/toggle2;1,0.9;block/bamboo_wood_fence/toggle3;1,0.9;block/bamboo_wood_fence/toggle4;1","693;block.bamboo_wood_hanging_sign.break":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","694;block.bamboo_wood_hanging_sign.fall":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","695;block.bamboo_wood_hanging_sign.hit":"0.7;block/bamboo_wood_hanging_sign/step1;1,0.7;block/bamboo_wood_hanging_sign/step2;1,0.7;block/bamboo_wood_hanging_sign/step3;1,0.7;block/bamboo_wood_hanging_sign/step4;1","696;block.bamboo_wood_hanging_sign.place":"0.8;block/bamboo_wood_hanging_sign/break1;1,0.8;block/bamboo_wood_hanging_sign/break2;1,0.8;block/bamboo_wood_hanging_sign/break3;1,0.8;block/bamboo_wood_hanging_sign/break4;1","692;block.bamboo_wood_hanging_sign.step":"1;block/bamboo_wood_hanging_sign/step1;1,1;block/bamboo_wood_hanging_sign/step2;1,1;block/bamboo_wood_hanging_sign/step3;1,1;block/bamboo_wood_hanging_sign/step4;1","124;block.bamboo_wood_pressure_plate.click_off":"0.3;random/click;1","125;block.bamboo_wood_pressure_plate.click_on":"0.3;random/click;1","120;block.bamboo_wood_trapdoor.close":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","121;block.bamboo_wood_trapdoor.open":"1;block/bamboo_wood_trapdoor/toggle1;1,1;block/bamboo_wood_trapdoor/toggle2;1,1;block/bamboo_wood_trapdoor/toggle3;1,1;block/bamboo_wood_trapdoor/toggle4;1","128;block.barrel.close":"1;block/barrel/close;1","129;block.barrel.open":"1;block/barrel/open1;1,1;block/barrel/open2;1","130;block.basalt.break":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","134;block.basalt.fall":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","133;block.basalt.hit":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","132;block.basalt.place":"1;block/basalt/break1;1,1;block/basalt/break2;1,1;block/basalt/break3;1,1;block/basalt/break4;1,1;block/basalt/break5;1","131;block.basalt.step":"1;block/basalt/step1;1,1;block/basalt/step2;1,1;block/basalt/step3;1,1;block/basalt/step4;1,1;block/basalt/step5;1,1;block/basalt/step6;1","140;block.beacon.activate":"1;block/beacon/activate;1","141;block.beacon.ambient":"0.9;block/beacon/ambient;1","142;block.beacon.deactivate":"1;block/beacon/deactivate;1","143;block.beacon.power_select":"1;block/beacon/power1;1,1;block/beacon/power2;1,1;block/beacon/power3;1","150;block.beehive.drip":"0.3;block/beehive/drip1;1,0.3;block/beehive/drip1;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip2;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip3;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip4;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip5;1,0.3;block/beehive/drip6;1,0.3;block/beehive/drip6;1","151;block.beehive.enter":"1;block/beehive/enter;1,1;block/beehive/enter;1","152;block.beehive.exit":"1;block/beehive/exit;1,1;block/beehive/exit;1,1;block/beehive/exit;1","153;block.beehive.shear":"0.8;block/beehive/shear;1,0.8;block/beehive/shear;1,0.8;block/beehive/shear;1","154;block.beehive.work":"0.6;block/beehive/work1;1,0.6;block/beehive/work2;1,0.6;block/beehive/work3;1,0.6;block/beehive/work4;1","156;block.bell.resonate":"1;block/bell/resonate;1,1;block/bell/resonate;1,1;block/bell/resonate;1","155;block.bell.use":"12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use01;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1,12;block/bell/bell_use02;1","157;block.big_dripleaf.break":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","158;block.big_dripleaf.fall":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","159;block.big_dripleaf.hit":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","160;block.big_dripleaf.place":"1;block/big_dripleaf/break1;1,1;block/big_dripleaf/break2;1,1;block/big_dripleaf/break3;1,1;block/big_dripleaf/break4;1,1;block/big_dripleaf/break5;1,1;block/big_dripleaf/break6;1","161;block.big_dripleaf.step":"1;block/big_dripleaf/step1;1,1;block/big_dripleaf/step2;1,1;block/big_dripleaf/step3;1,1;block/big_dripleaf/step4;1,1;block/big_dripleaf/step5;1,1;block/big_dripleaf/step6;1","464;block.big_dripleaf.tilt_down":"1;block/big_dripleaf/tilt_down1;1,1;block/big_dripleaf/tilt_down2;1,1;block/big_dripleaf/tilt_down3;1,1;block/big_dripleaf/tilt_down4;1,1;block/big_dripleaf/tilt_down5;1","465;block.big_dripleaf.tilt_up":"1;block/big_dripleaf/tilt_up1;1,1;block/big_dripleaf/tilt_up2;1,1;block/big_dripleaf/tilt_up3;1,1;block/big_dripleaf/tilt_up4;1","182;block.blastfurnace.fire_crackle":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","174;block.bone_block.break":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","175;block.bone_block.fall":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","176;block.bone_block.hit":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","177;block.bone_block.place":"0.9;block/bone_block/break1;1,0.9;block/bone_block/break2;1,0.9;block/bone_block/break3;1,0.9;block/bone_block/break4;1,0.9;block/bone_block/break5;1","178;block.bone_block.step":"1;block/bone_block/step1;1,1;block/bone_block/step2;1,1;block/bone_block/step3;1,1;block/bone_block/step4;1,1;block/bone_block/step5;1","199;block.brewing_stand.brew":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","205;block.bubble_column.bubble_pop":"0.1;block/bubble_column/bubble1;1,0.1;block/bubble_column/bubble2;1,0.1;block/bubble_column/bubble3;1","206;block.bubble_column.upwards_ambient":"0.6;block/bubble_column/upwards_ambient1;1,0.6;block/bubble_column/upwards_ambient2;1,0.6;block/bubble_column/upwards_ambient3;1,0.6;block/bubble_column/upwards_ambient4;1,0.6;block/bubble_column/upwards_ambient5;1","207;block.bubble_column.upwards_inside":"0.7;block/bubble_column/upwards_inside;1","208;block.bubble_column.whirlpool_ambient":"0.6;block/bubble_column/whirlpool_ambient1;1,0.6;block/bubble_column/whirlpool_ambient2;1,0.6;block/bubble_column/whirlpool_ambient3;1,0.6;block/bubble_column/whirlpool_ambient4;1,0.6;block/bubble_column/whirlpool_ambient5;1","209;block.bubble_column.whirlpool_inside":"0.7;block/bubble_column/whirlpool_inside;1","227;block.cake.add_candle":"1;block/cake/add_candle1;1,1;block/cake/add_candle2;1,1;block/cake/add_candle3;1","228;block.calcite.break":"0.9;block/calcite/break1;1,0.9;block/calcite/break2;1,0.9;block/calcite/break3;1,0.9;block/calcite/break4;1","232;block.calcite.fall":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","231;block.calcite.hit":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","230;block.calcite.place":"0.94;block/calcite/place1;1,0.94;block/calcite/place2;1,0.94;block/calcite/place3;1,0.94;block/calcite/place4;1","229;block.calcite.step":"1;block/calcite/step1;1,1;block/calcite/step2;1,1;block/calcite/step3;1,1;block/calcite/step4;1,1;block/calcite/step5;1,1;block/calcite/step6;1","244;block.campfire.crackle":"1;block/campfire/crackle1;1,1;block/campfire/crackle2;1,1;block/campfire/crackle3;1,1;block/campfire/crackle4;1,1;block/campfire/crackle5;1,1;block/campfire/crackle6;1","245;block.candle.ambient":"1;block/candle/ambient1;1,0.7;block/candle/ambient1;1,0.8;block/candle/ambient1;1,1;block/candle/ambient2;1,0.7;block/candle/ambient2;1,0.8;block/candle/ambient2;1,1;block/candle/ambient3;1,0.7;block/candle/ambient3;1,0.8;block/candle/ambient3;1,1;block/candle/ambient4;1,0.7;block/candle/ambient4;1,0.8;block/candle/ambient4;1,1;block/candle/ambient5;1,0.7;block/candle/ambient5;1,0.8;block/candle/ambient5;1,1;block/candle/ambient6;1,0.7;block/candle/ambient6;1,0.8;block/candle/ambient6;1,1;block/candle/ambient7;1,0.7;block/candle/ambient7;1,0.8;block/candle/ambient7;1,1;block/candle/ambient8;1,0.7;block/candle/ambient8;1,0.8;block/candle/ambient8;1,1;block/candle/ambient9;1,0.7;block/candle/ambient9;1,0.8;block/candle/ambient9;1","246;block.candle.break":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","247;block.candle.extinguish":"1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish1;1,0.9;block/candle/extinguish1;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish2;1,0.9;block/candle/extinguish2;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1,1;block/candle/extinguish3;1,0.9;block/candle/extinguish3;1","248;block.candle.fall":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","249;block.candle.hit":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","250;block.candle.place":"1;block/candle/break1;1,1;block/candle/break2;1,1;block/candle/break3;1,1;block/candle/break4;1,1;block/candle/break5;1","251;block.candle.step":"1;block/candle/step1;1,1;block/candle/step2;1,1;block/candle/step3;1,1;block/candle/step4;1,1;block/candle/step5;1","261;block.cave_vines.break":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","262;block.cave_vines.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","263;block.cave_vines.hit":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","266;block.cave_vines.pick_berries":"1;block.sweet_berry_bush.pick_berries;1","264;block.cave_vines.place":"1;block/cave_vines/break1;1,1;block/cave_vines/break2;1,1;block/cave_vines/break3;1,1;block/cave_vines/break4;1,1;block/cave_vines/break5;1","265;block.cave_vines.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","267;block.chain.break":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","268;block.chain.fall":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","269;block.chain.hit":"0.8;block/chain/step1;1,0.8;block/chain/step2;1,0.8;block/chain/step3;1,0.8;block/chain/step4;1,0.8;block/chain/step5;1,0.8;block/chain/step6;1","270;block.chain.place":"0.5;block/chain/break1;1,0.5;block/chain/break2;1,0.5;block/chain/break3;1,0.5;block/chain/break4;1","271;block.chain.step":"1;block/chain/step1;1,1;block/chain/step2;1,1;block/chain/step3;1,1;block/chain/step4;1,1;block/chain/step5;1,1;block/chain/step6;1","282;block.cherry_leaves.break":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","283;block.cherry_leaves.fall":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","284;block.cherry_leaves.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","285;block.cherry_leaves.place":"1;block/cherry_leaves/break1;1,1;block/cherry_leaves/break2;1,1;block/cherry_leaves/break3;1,1;block/cherry_leaves/break4;1,1;block/cherry_leaves/break5;1","286;block.cherry_leaves.step":"1;block/cherry_leaves/step1;1,1;block/cherry_leaves/step2;1,1;block/cherry_leaves/step3;1,1;block/cherry_leaves/step4;1,1;block/cherry_leaves/step5;1","277;block.cherry_sapling.break":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","278;block.cherry_sapling.fall":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","279;block.cherry_sapling.hit":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","280;block.cherry_sapling.place":"1;block/bamboo/sapling_place1;1,1;block/bamboo/sapling_place2;1,1;block/bamboo/sapling_place3;1,1;block/bamboo/sapling_place4;1,1;block/bamboo/sapling_place5;1,1;block/bamboo/sapling_place6;1","281;block.cherry_sapling.step":"1;block/bamboo/sapling_hit1;1,1;block/bamboo/sapling_hit2;1,1;block/bamboo/sapling_hit3;1,1;block/bamboo/sapling_hit4;1,1;block/bamboo/sapling_hit5;1","272;block.cherry_wood.break":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","273;block.cherry_wood.fall":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","274;block.cherry_wood.hit":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","275;block.cherry_wood.place":"1;block/cherry_wood/break1;1,1;block/cherry_wood/break2;1,1;block/cherry_wood/break3;1,1;block/cherry_wood/break4;1,1;block/cherry_wood/break5;1","276;block.cherry_wood.step":"1;block/cherry_wood/step1;1,1;block/cherry_wood/step2;1,1;block/cherry_wood/step3;1,1;block/cherry_wood/step4;1,1;block/cherry_wood/step5;1,1;block/cherry_wood/step6;1","296;block.cherry_wood_button.click_off":"0.4;block/cherrywood_button/cherrywood_click;1","297;block.cherry_wood_button.click_on":"0.4;block/cherrywood_button/cherrywood_click;1","292;block.cherry_wood_door.close":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","293;block.cherry_wood_door.open":"1;block/cherrywood_door/toggle1;1,1;block/cherrywood_door/toggle2;1,1;block/cherrywood_door/toggle3;1,1;block/cherrywood_door/toggle4;1","300;block.cherry_wood_fence_gate.close":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","301;block.cherry_wood_fence_gate.open":"1;block/cherrywood_fence_gate/toggle1;1,1;block/cherrywood_fence_gate/toggle2;1,1;block/cherrywood_fence_gate/toggle3;1","288;block.cherry_wood_hanging_sign.break":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","289;block.cherry_wood_hanging_sign.fall":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","290;block.cherry_wood_hanging_sign.hit":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","291;block.cherry_wood_hanging_sign.place":"1;block/cherry_wood_hanging_sign/break1;1,1;block/cherry_wood_hanging_sign/break2;1,1;block/cherry_wood_hanging_sign/break3;1,1;block/cherry_wood_hanging_sign/break4;1","287;block.cherry_wood_hanging_sign.step":"1;block/cherry_wood_hanging_sign/step1;1,1;block/cherry_wood_hanging_sign/step2;1,1;block/cherry_wood_hanging_sign/step3;1,1;block/cherry_wood_hanging_sign/step4;1","298;block.cherry_wood_pressure_plate.click_off":"0.3;random/click;1","299;block.cherry_wood_pressure_plate.click_on":"0.3;random/click;1","294;block.cherry_wood_trapdoor.close":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","295;block.cherry_wood_trapdoor.open":"1;block/cherrywood_trapdoor/toggle1;1,1;block/cherrywood_trapdoor/toggle2;1,1;block/cherrywood_trapdoor/toggle3;1","302;block.chest.close":"1;block/chest/close1;1,1;block/chest/close2;1,1;block/chest/close3;1","303;block.chest.locked":"1;block/chest/close_locked;1,1;block/chest/open_locked;1","304;block.chest.open":"1;block/chest/open;1","310;block.chiseled_bookshelf.break":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","311;block.chiseled_bookshelf.fall":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","312;block.chiseled_bookshelf.hit":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","313;block.chiseled_bookshelf.insert":"0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert1;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert2;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert3;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1,0.8;block/chiseled_bookshelf/insert4;1","314;block.chiseled_bookshelf.insert.enchanted":"0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted1;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted2;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted3;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1,0.8;block/chiseled_bookshelf/insert_enchanted4;1","316;block.chiseled_bookshelf.pickup":"0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup1;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup2;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1,0.8;block/chiseled_bookshelf/pickup3;1","317;block.chiseled_bookshelf.pickup.enchanted":"0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted1;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted2;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1,0.8;block/chiseled_bookshelf/pickup_enchanted3;1","318;block.chiseled_bookshelf.place":"1;block/chiseled_bookshelf/break1;1,1;block/chiseled_bookshelf/break2;1,1;block/chiseled_bookshelf/break3;1,1;block/chiseled_bookshelf/break4;1,1;block/chiseled_bookshelf/break5;1,1;block/chiseled_bookshelf/break6;1","315;block.chiseled_bookshelf.step":"1;block/chiseled_bookshelf/step1;1,1;block/chiseled_bookshelf/step2;1,1;block/chiseled_bookshelf/step3;1,1;block/chiseled_bookshelf/step4;1,1;block/chiseled_bookshelf/step5;1","319;block.chorus_flower.death":"1;block/chorus_flower/death1;1,1;block/chorus_flower/death2;1,1;block/chorus_flower/death3;1","320;block.chorus_flower.grow":"1;block/chorus_flower/grow1;1,1;block/chorus_flower/grow2;1,1;block/chorus_flower/grow3;1,1;block/chorus_flower/grow4;1","322;block.cobweb.break":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","326;block.cobweb.fall":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","325;block.cobweb.hit":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","324;block.cobweb.place":"1;block/cobweb/break1;1,1;block/cobweb/break2;1,1;block/cobweb/break3;1,1;block/cobweb/break4;1,1;block/cobweb/break5;1,1;block/cobweb/break6;1","323;block.cobweb.step":"1;block/cobweb/step1;1,1;block/cobweb/step2;1,1;block/cobweb/step3;1,1;block/cobweb/step4;1,1;block/cobweb/step5;1,1;block/cobweb/step6;1","331;block.comparator.click":"1;random/click;1","332;block.composter.empty":"1;block/composter/empty1;1,1;block/composter/empty2;1,1;block/composter/empty3;1","333;block.composter.fill":"0.3;block/composter/fill1;1,0.3;block/composter/fill2;1,0.3;block/composter/fill3;1,0.3;block/composter/fill4;1","334;block.composter.fill_success":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","335;block.composter.ready":"1;block/composter/ready1;1,1;block/composter/ready2;1,1;block/composter/ready3;1,1;block/composter/ready4;1","336;block.conduit.activate":"0.9;block/conduit/activate;1","337;block.conduit.ambient":"1;block/conduit/ambient;1","338;block.conduit.ambient.short":"1;block/conduit/short1;1,1;block/conduit/short2;1,1;block/conduit/short3;1,1;block/conduit/short4;1,1;block/conduit/short5;1,1;block/conduit/short6;1,1;block/conduit/short7;1,1;block/conduit/short8;1,1;block/conduit/short9;1","339;block.conduit.attack.target":"1;block/conduit/attack1;1,1;block/conduit/attack2;1,1;block/conduit/attack3;1","340;block.conduit.deactivate":"0.7;block/conduit/deactivate;1","348;block.copper.break":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","352;block.copper.fall":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","351;block.copper.hit":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","350;block.copper.place":"1;block/copper/break1;1,1;block/copper/break2;1,1;block/copper/break3;1,1;block/copper/break4;1","349;block.copper.step":"1;block/copper/step1;1,1;block/copper/step2;1,1;block/copper/step3;1,1;block/copper/step4;1,1;block/copper/step5;1,1;block/copper/step6;1","341;block.copper_bulb.break":"1;block/copper_bulb/break1;1,1;block/copper_bulb/break2;1,1;block/copper_bulb/break3;1,1;block/copper_bulb/break4;1","345;block.copper_bulb.fall":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","344;block.copper_bulb.hit":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","343;block.copper_bulb.place":"1;block/copper_bulb/place1;1,1;block/copper_bulb/place2;1,1;block/copper_bulb/place3;1,1;block/copper_bulb/place4;1","342;block.copper_bulb.step":"1;block/copper_bulb/step1;1,1;block/copper_bulb/step2;1,1;block/copper_bulb/step3;1,1;block/copper_bulb/step4;1,1;block/copper_bulb/step5;1,1;block/copper_bulb/step6;1","347;block.copper_bulb.turn_off":"1;block/copper_bulb/toggle;1","346;block.copper_bulb.turn_on":"1;block/copper_bulb/toggle;1","353;block.copper_door.close":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1","354;block.copper_door.open":"1;block/copper_door/toggle1;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle2;1,1;block/copper_door/toggle3;1,1;block/copper_door/toggle3;1","355;block.copper_grate.break":"1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","359;block.copper_grate.fall":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","358;block.copper_grate.hit":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","357;block.copper_grate.place":"1;block/copper_grate/break1;1,1;block/copper_grate/break1;1,1;block/copper_grate/break2;1,1;block/copper_grate/break3;1,1;block/copper_grate/break4;1","356;block.copper_grate.step":"1;block/copper_grate/step1;1,1;block/copper_grate/step2;1,1;block/copper_grate/step3;1,1;block/copper_grate/step4;1,1;block/copper_grate/step5;1,1;block/copper_grate/step6;1","360;block.copper_trapdoor.close":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","361;block.copper_trapdoor.open":"1;block/copper_trapdoor/toggle1;1,1;block/copper_trapdoor/toggle2;1,1;block/copper_trapdoor/toggle3;1,1;block/copper_trapdoor/toggle4;1","362;block.coral_block.break":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","363;block.coral_block.fall":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","364;block.coral_block.hit":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","365;block.coral_block.place":"1;dig/coral1;1,1;dig/coral2;1,1;dig/coral3;1,1;dig/coral4;1","366;block.coral_block.step":"1;step/coral1;1,1;step/coral2;1,1;step/coral3;1,1;step/coral4;1,1;step/coral5;1,1;step/coral6;1","372;block.crafter.craft":"1;block/crafter/craft;1,1;block/crafter/craft;1,1;block/crafter/craft;1","373;block.crafter.fail":"1;block/crafter/fail;1,1;block/crafter/fail;1,1;block/crafter/fail;1","385;block.creaking_heart.break":"0.5;block/creaking_heart/break/creaking_heart_break;1","386;block.creaking_heart.fall":"1;block/creaking_heart/fall/creaking_heart_fall;1","387;block.creaking_heart.hit":"1;block/creaking_heart/hit/creaking_heart_hit1;1,1;block/creaking_heart/hit/creaking_heart_hit2;1,1;block/creaking_heart/hit/creaking_heart_hit3;1,1;block/creaking_heart/hit/creaking_heart_hit4;1,1;block/creaking_heart/hit/creaking_heart_hit5;1","388;block.creaking_heart.hurt":"1;block/creaking_heart/hurt/trail1;1,1;block/creaking_heart/hurt/trail2;1,1;block/creaking_heart/hurt/trail3;1,1;block/creaking_heart/hurt/trail4;1,1;block/creaking_heart/hurt/trail5;1,1;block/creaking_heart/hurt/trail6;1,1;block/creaking_heart/hurt/trail7;1","391;block.creaking_heart.idle":"1;block/creaking_heart/idle/creaking_heart_idle1;1,1;block/creaking_heart/idle/creaking_heart_idle2;1,1;block/creaking_heart/idle/creaking_heart_idle3;1,1;block/creaking_heart/idle/creaking_heart_idle4;1","389;block.creaking_heart.place":"1;block/creaking_heart/place/creaking_heart_place1;1,1;block/creaking_heart/place/creaking_heart_place2;1,1;block/creaking_heart/place/creaking_heart_place3;1,1;block/creaking_heart/place/creaking_heart_place4;1","392;block.creaking_heart.spawn":"1;block/creaking_heart/spawnmob/creaking_heart_spawnmob;1","390;block.creaking_heart.step":"1;block/creaking_heart/step/creaking_heart_step1;1,1;block/creaking_heart/step/creaking_heart_step2;1,1;block/creaking_heart/step/creaking_heart_step3;1,1;block/creaking_heart/step/creaking_heart_step4;1,1;block/creaking_heart/step/creaking_heart_step5;1,1;block/creaking_heart/step/creaking_heart_step6;1","396;block.crop.break":"0.9;block/bamboo/sapling_place1;1,0.9;block/bamboo/sapling_place2;1,0.9;block/bamboo/sapling_place3;1,0.9;block/bamboo/sapling_place4;1,0.9;block/bamboo/sapling_place5;1,0.9;block/bamboo/sapling_place6;1","406;block.decorated_pot.break":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","407;block.decorated_pot.fall":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","408;block.decorated_pot.hit":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","409;block.decorated_pot.insert":"0.9;block/decorated_pot/insert1;1,0.9;block/decorated_pot/insert2;1,0.9;block/decorated_pot/insert3;1,0.9;block/decorated_pot/insert4;1","410;block.decorated_pot.insert_fail":"0.9;block/decorated_pot/insert_fail1;1,0.9;block/decorated_pot/insert_fail2;1,0.9;block/decorated_pot/insert_fail3;1,0.9;block/decorated_pot/insert_fail4;1,0.9;block/decorated_pot/insert_fail5;1","412;block.decorated_pot.place":"1;block/decorated_pot/break1;1,1;block/decorated_pot/break2;1,1;block/decorated_pot/break3;1,1;block/decorated_pot/break4;1","413;block.decorated_pot.shatter":"1;block/decorated_pot/shatter1;1,1;block/decorated_pot/shatter2;1,1;block/decorated_pot/shatter3;1,1;block/decorated_pot/shatter4;1,1;block/decorated_pot/shatter5;1","411;block.decorated_pot.step":"1;block/decorated_pot/step1;1,1;block/decorated_pot/step2;1,1;block/decorated_pot/step3;1,1;block/decorated_pot/step4;1,1;block/decorated_pot/step5;1","419;block.deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","420;block.deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","421;block.deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","422;block.deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","423;block.deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","414;block.deepslate_bricks.break":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","415;block.deepslate_bricks.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","416;block.deepslate_bricks.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","417;block.deepslate_bricks.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","418;block.deepslate_bricks.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","424;block.deepslate_tiles.break":"0.92;block/deepslate_bricks/place1;1,0.92;block/deepslate_bricks/place2;1,0.92;block/deepslate_bricks/place3;1,0.92;block/deepslate_bricks/place4;1,0.92;block/deepslate_bricks/place5;1,0.92;block/deepslate_bricks/place6;1","425;block.deepslate_tiles.fall":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","426;block.deepslate_tiles.hit":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","427;block.deepslate_tiles.place":"0.85;block/deepslate_bricks/place1;1,0.85;block/deepslate_bricks/place2;1,0.85;block/deepslate_bricks/place3;1,0.85;block/deepslate_bricks/place4;1,0.85;block/deepslate_bricks/place5;1,0.85;block/deepslate_bricks/place6;1","428;block.deepslate_tiles.step":"1;block/deepslate_bricks/step1;1,1;block/deepslate_bricks/step2;1,1;block/deepslate_bricks/step3;1,1;block/deepslate_bricks/step4;1,1;block/deepslate_bricks/step5;1","429;block.dispenser.dispense":"1;random/click;1","430;block.dispenser.fail":"1;random/click;1","431;block.dispenser.launch":"1;random/bow;1","449;block.dripstone_block.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","453;block.dripstone_block.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","452;block.dripstone_block.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","451;block.dripstone_block.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","450;block.dripstone_block.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","486;block.enchantment_table.use":"1;block/enchantment_table/enchant1;1,1;block/enchantment_table/enchant2;1,1;block/enchantment_table/enchant3;1","509;block.end_gateway.spawn":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","511;block.end_portal.spawn":"1;block/end_portal/endportal;1","510;block.end_portal_frame.fill":"1;block/end_portal/eyeplace1;1,1;block/end_portal/eyeplace2;1,1;block/end_portal/eyeplace3;1","487;block.ender_chest.close":"1;block/enderchest/close;1","488;block.ender_chest.open":"1;block/enderchest/open;1","526;block.eyeblossom.close":"1;block/eyeblossom/eyeblossom_close1;1,1;block/eyeblossom/eyeblossom_close2;1,1;block/eyeblossom/eyeblossom_close3;1","525;block.eyeblossom.close_long":"1;block/eyeblossom/eyeblossom_close_long;1","527;block.eyeblossom.idle":"1;block/eyeblossom/eyeblossom_idle1;1,1;block/eyeblossom/eyeblossom_idle2;1,1;block/eyeblossom/eyeblossom_idle3;1,1;block/eyeblossom/eyeblossom_idle4;1,1;block/eyeblossom/eyeblossom_idle5;1,1;block/eyeblossom/eyeblossom_idle6;1","524;block.eyeblossom.open":"1;block/eyeblossom/eyeblossom_open1;1,1;block/eyeblossom/eyeblossom_open2;1,1;block/eyeblossom/eyeblossom_open3;1,1;block/eyeblossom/eyeblossom_open4;1","523;block.eyeblossom.open_long":"1;block/eyeblossom/eyeblossom_open_long;1","528;block.fence_gate.close":"0.9;block/fence_gate/close1;1,0.9;block/fence_gate/close2;1","529;block.fence_gate.open":"0.9;block/fence_gate/open1;1,0.9;block/fence_gate/open2;1","539;block.fire.ambient":"1;fire/fire;1","540;block.fire.extinguish":"1;random/fizz;1","546;block.flowering_azalea.break":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","547;block.flowering_azalea.fall":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","548;block.flowering_azalea.hit":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","549;block.flowering_azalea.place":"1;block/azalea/break1;1,1;block/azalea/break2;1,1;block/azalea/break3;1,1;block/azalea/break4;1,1;block/azalea/break5;1,1;block/azalea/break6;1","550;block.flowering_azalea.step":"1;block/azalea/step1;1,1;block/azalea/step2;1,1;block/azalea/step3;1,1;block/azalea/step4;1,1;block/azalea/step5;1,1;block/azalea/step6;1","572;block.froglight.break":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","573;block.froglight.fall":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","574;block.froglight.hit":"0.83;block/froglight/step1;1,0.83;block/froglight/step2;1,0.83;block/froglight/step3;1,0.83;block/froglight/step4;1,0.83;block/froglight/step5;1,0.83;block/froglight/step6;1","575;block.froglight.place":"0.8;block/froglight/break1;1,0.8;block/froglight/break2;1,0.8;block/froglight/break3;1,0.8;block/froglight/break4;1","576;block.froglight.step":"1;block/froglight/step1;1,1;block/froglight/step2;1,1;block/froglight/step3;1,1;block/froglight/step4;1,1;block/froglight/step5;1,1;block/froglight/step6;1","578;block.frogspawn.break":"0.1;block/frogspawn/break1;1,0.1;block/frogspawn/break2;1,0.1;block/frogspawn/break3;1,0.1;block/frogspawn/break4;1","579;block.frogspawn.fall":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","580;block.frogspawn.hatch":"0.6;block/frogspawn/hatch1;1,0.6;block/frogspawn/hatch2;1,0.6;block/frogspawn/hatch3;1,0.6;block/frogspawn/hatch4;1","581;block.frogspawn.hit":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","582;block.frogspawn.place":"0.2;block/frogspawn/break1;1,0.2;block/frogspawn/break2;1,0.2;block/frogspawn/break3;1,0.2;block/frogspawn/break4;1","577;block.frogspawn.step":"0.3;block/frogspawn/step1;1,0.3;block/frogspawn/step2;1,0.3;block/frogspawn/step3;1,0.3;block/frogspawn/step4;1,0.3;block/frogspawn/step5;1,0.3;block/frogspawn/step6;1","985;block.fungus.break":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","987;block.fungus.place":"1;block/fungus/break1;1,1;block/fungus/break2;1,1;block/fungus/break3;1,1;block/fungus/break4;1,1;block/fungus/break5;1,1;block/fungus/break6;1","986;block.fungus.step":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","596;block.furnace.fire_crackle":"1;block/furnace/fire_crackle1;1,1;block/furnace/fire_crackle2;1,1;block/furnace/fire_crackle3;1,1;block/furnace/fire_crackle4;1,1;block/furnace/fire_crackle5;1","614;block.gilded_blackstone.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","615;block.gilded_blackstone.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","616;block.gilded_blackstone.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","617;block.gilded_blackstone.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","618;block.gilded_blackstone.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","619;block.glass.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","620;block.glass.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","621;block.glass.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","622;block.glass.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","623;block.glass.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","652;block.grass.break":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","653;block.grass.fall":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","654;block.grass.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","655;block.grass.place":"1;dig/grass1;1,1;dig/grass2;1,1;dig/grass3;1,1;dig/grass4;1","656;block.grass.step":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","657;block.gravel.break":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","658;block.gravel.fall":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","659;block.gravel.hit":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","660;block.gravel.place":"1;dig/gravel1;1,1;dig/gravel2;1,1;dig/gravel3;1,1;dig/gravel4;1","661;block.gravel.step":"1;step/gravel1;1,1;step/gravel2;1,1;step/gravel3;1,1;step/gravel4;1","662;block.grindstone.use":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","663;block.growing_plant.crop":"1;mob/sheep/shear;1","672;block.hanging_roots.break":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","673;block.hanging_roots.fall":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","674;block.hanging_roots.hit":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","675;block.hanging_roots.place":"1;block/hanging_roots/break1;1,1;block/hanging_roots/break2;1,1;block/hanging_roots/break3;1,1;block/hanging_roots/break4;1","676;block.hanging_roots.step":"1;block/hanging_roots/step1;1,1;block/hanging_roots/step2;1,1;block/hanging_roots/step3;1,1;block/hanging_roots/step4;1,1;block/hanging_roots/step5;1,1;block/hanging_roots/step6;1","678;block.hanging_sign.break":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","679;block.hanging_sign.fall":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","680;block.hanging_sign.hit":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","681;block.hanging_sign.place":"1;block/hanging_sign/break1;1,1;block/hanging_sign/break2;1,1;block/hanging_sign/break3;1,1;block/hanging_sign/break4;1","677;block.hanging_sign.step":"1;block/hanging_sign/step1;1,1;block/hanging_sign/step2;1,1;block/hanging_sign/step3;1,1;block/hanging_sign/step4;1","1554;block.hanging_sign.waxed_interact_fail":"1;block.sign.waxed_interact_fail;1","682;block.heavy_core.break":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","683;block.heavy_core.fall":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","684;block.heavy_core.hit":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","685;block.heavy_core.place":"1;block/heavy_core/break1;1,1;block/heavy_core/break2;1,1;block/heavy_core/break3;1,1;block/heavy_core/break4;1","686;block.heavy_core.step":"1;block/heavy_core/step1;1,1;block/heavy_core/step2;1,1;block/heavy_core/step3;1,1;block/heavy_core/step4;1","722;block.honey_block.break":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","723;block.honey_block.fall":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","724;block.honey_block.hit":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","725;block.honey_block.place":"1;block/honeyblock/break1;1,1;block/honeyblock/break2;1,1;block/honeyblock/break3;1,1;block/honeyblock/break4;1,1;block/honeyblock/break5;1","726;block.honey_block.slide":"0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide1;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide2;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide3;1,0.8;block/honeyblock/slide4;1,0.8;block/honeyblock/slide4;1","727;block.honey_block.step":"1;block/honeyblock/step1;1,1;block/honeyblock/step2;1,1;block/honeyblock/step3;1,1;block/honeyblock/step4;1,1;block/honeyblock/step5;1","770;block.iron_door.close":"0.9;block/iron_door/close1;1,0.9;block/iron_door/close2;1,0.9;block/iron_door/close3;1,0.9;block/iron_door/close4;1","771;block.iron_door.open":"0.9;block/iron_door/open1;1,0.9;block/iron_door/open2;1,0.9;block/iron_door/open3;1,0.9;block/iron_door/open4;1","778;block.iron_trapdoor.close":"0.9;block/iron_trapdoor/close1;1,0.9;block/iron_trapdoor/close2;1,0.9;block/iron_trapdoor/close3;1,0.9;block/iron_trapdoor/close4;1","779;block.iron_trapdoor.open":"0.9;block/iron_trapdoor/open1;1,0.9;block/iron_trapdoor/open2;1,0.9;block/iron_trapdoor/open3;1,0.9;block/iron_trapdoor/open4;1","787;block.ladder.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","788;block.ladder.fall":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","789;block.ladder.hit":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","790;block.ladder.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","791;block.ladder.step":"1;step/ladder1;1,1;step/ladder2;1,1;step/ladder3;1,1;step/ladder4;1,1;step/ladder5;1","792;block.lantern.break":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","793;block.lantern.fall":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","794;block.lantern.hit":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","795;block.lantern.place":"1;block/lantern/place1;1,1;block/lantern/place2;1,1;block/lantern/place3;1,1;block/lantern/place4;1,1;block/lantern/place5;1,1;block/lantern/place6;1","796;block.lantern.step":"1;block/lantern/break1;1,1;block/lantern/break2;1,1;block/lantern/break3;1,1;block/lantern/break4;1,1;block/lantern/break5;1,1;block/lantern/break6;1","797;block.large_amethyst_bud.break":"0.7;block/amethyst_cluster/break1;1,0.7;block/amethyst_cluster/break2;1,0.7;block/amethyst_cluster/break3;1,0.7;block/amethyst_cluster/break4;1","798;block.large_amethyst_bud.place":"0.75;block/amethyst_cluster/place1;1,0.75;block/amethyst_cluster/place2;1,0.75;block/amethyst_cluster/place3;1,0.75;block/amethyst_cluster/place4;1","799;block.lava.ambient":"1;liquid/lava;1","800;block.lava.extinguish":"1;random/fizz;1","801;block.lava.pop":"1;liquid/lavapop;1","804;block.lever.click":"1;random/click;1","1523;block.lily_pad.place":"1;block/waterlily/place1;1,1;block/waterlily/place2;1,1;block/waterlily/place3;1,1;block/waterlily/place4;1","818;block.lodestone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","822;block.lodestone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","821;block.lodestone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","820;block.lodestone.place":"1;block/lodestone/place1;1,1;block/lodestone/place2;1,1;block/lodestone/place3;1,1;block/lodestone/place4;1","819;block.lodestone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","833;block.mangrove_roots.break":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","834;block.mangrove_roots.fall":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","835;block.mangrove_roots.hit":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","836;block.mangrove_roots.place":"0.25;block/mangrove_roots/break1;1,0.25;block/mangrove_roots/break2;1,0.25;block/mangrove_roots/break3;1,0.25;block/mangrove_roots/break4;1,0.25;block/mangrove_roots/break5;1,0.25;block/mangrove_roots/break6;1","837;block.mangrove_roots.step":"0.25;block/mangrove_roots/step1;1,0.25;block/mangrove_roots/step2;1,0.25;block/mangrove_roots/step3;1,0.25;block/mangrove_roots/step4;1,0.25;block/mangrove_roots/step5;1,0.25;block/mangrove_roots/step6;1","838;block.medium_amethyst_bud.break":"0.55;block/amethyst_cluster/break1;1,0.55;block/amethyst_cluster/break2;1,0.55;block/amethyst_cluster/break3;1,0.55;block/amethyst_cluster/break4;1","839;block.medium_amethyst_bud.place":"0.5;block/amethyst_cluster/place1;1,0.5;block/amethyst_cluster/place2;1,0.5;block/amethyst_cluster/place3;1,0.5;block/amethyst_cluster/place4;1","840;block.metal.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","841;block.metal.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","842;block.metal.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","843;block.metal.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","846;block.metal.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","844;block.metal_pressure_plate.click_off":"0.3;random/click;1","845;block.metal_pressure_plate.click_on":"0.3;random/click;1","865;block.moss.break":"0.95;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","866;block.moss.fall":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","867;block.moss.hit":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","868;block.moss.place":"0.93;block/moss/break1;1,0.93;block/moss/break2;1,0.93;block/moss/break3;1,0.93;block/moss/break4;1,0.93;block/moss/break5;1","869;block.moss.step":"1;block/moss/step1;1,1;block/moss/step2;1,1;block/moss/step3;1,1;block/moss/step4;1,1;block/moss/step5;1,1;block/moss/step6;1","855;block.moss_carpet.break":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","856;block.moss_carpet.fall":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","857;block.moss_carpet.hit":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","858;block.moss_carpet.place":"0.9;block/moss/break1;1,0.9;block/moss/break2;1,0.9;block/moss/break3;1,0.9;block/moss/break4;1,0.9;block/moss/break5;1","859;block.moss_carpet.step":"0.9;block/moss/step1;1,0.9;block/moss/step2;1,0.9;block/moss/step3;1,0.9;block/moss/step4;1,0.9;block/moss/step5;1,0.9;block/moss/step6;1","870;block.mud.break":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","871;block.mud.fall":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","872;block.mud.hit":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","873;block.mud.place":"0.5;block/mud/break1;1,0.5;block/mud/break2;1,0.5;block/mud/break3;1,0.5;block/mud/break4;1,0.5;block/mud/break5;1,0.5;block/mud/break6;1","874;block.mud.step":"0.5;block/mud/step1;1,0.5;block/mud/step2;1,0.5;block/mud/step3;1,0.5;block/mud/step4;1,0.5;block/mud/step5;1,0.5;block/mud/step6;1","875;block.mud_bricks.break":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","876;block.mud_bricks.fall":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","877;block.mud_bricks.hit":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","878;block.mud_bricks.place":"0.5;block/mud_bricks/break1;1,0.5;block/mud_bricks/break2;1,0.5;block/mud_bricks/break3;1,0.5;block/mud_bricks/break4;1,0.5;block/mud_bricks/break5;1,0.5;block/mud_bricks/break6;1","879;block.mud_bricks.step":"0.5;block/mud_bricks/step1;1,0.5;block/mud_bricks/step2;1,0.5;block/mud_bricks/step3;1,0.5;block/mud_bricks/step4;1,0.5;block/mud_bricks/step5;1,0.5;block/mud_bricks/step6;1","880;block.muddy_mangrove_roots.break":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","881;block.muddy_mangrove_roots.fall":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","882;block.muddy_mangrove_roots.hit":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","883;block.muddy_mangrove_roots.place":"0.25;block/muddy_mangrove_roots/break1;1,0.25;block/muddy_mangrove_roots/break2;1,0.25;block/muddy_mangrove_roots/break3;1,0.25;block/muddy_mangrove_roots/break4;1,0.25;block/muddy_mangrove_roots/break5;1,0.25;block/muddy_mangrove_roots/break6;1","884;block.muddy_mangrove_roots.step":"0.25;block/muddy_mangrove_roots/step1;1,0.25;block/muddy_mangrove_roots/step2;1,0.25;block/muddy_mangrove_roots/step3;1,0.25;block/muddy_mangrove_roots/step4;1,0.25;block/muddy_mangrove_roots/step5;1,0.25;block/muddy_mangrove_roots/step6;1","942;block.nether_bricks.break":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","946;block.nether_bricks.fall":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","945;block.nether_bricks.hit":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","944;block.nether_bricks.place":"0.8;block/nether_bricks/break1;1,0.8;block/nether_bricks/break2;1,0.8;block/nether_bricks/break3;1,0.8;block/nether_bricks/break4;1,0.8;block/nether_bricks/break5;1,0.8;block/nether_bricks/break6;1","943;block.nether_bricks.step":"1;block/nether_bricks/step1;1,1;block/nether_bricks/step2;1,1;block/nether_bricks/step3;1,1;block/nether_bricks/step4;1,1;block/nether_bricks/step5;1,1;block/nether_bricks/step6;1","1187;block.nether_gold_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1188;block.nether_gold_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1189;block.nether_gold_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1190;block.nether_gold_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1191;block.nether_gold_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1192;block.nether_ore.break":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1193;block.nether_ore.fall":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1194;block.nether_ore.hit":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","1195;block.nether_ore.place":"1;block/nether_ore/break1;1,1;block/nether_ore/break2;1,1;block/nether_ore/break3;1,1;block/nether_ore/break4;1","1196;block.nether_ore.step":"1;block/nether_ore/step1;1,1;block/nether_ore/step2;1,1;block/nether_ore/step3;1,1;block/nether_ore/step4;1,1;block/nether_ore/step5;1","980;block.nether_sprouts.break":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","984;block.nether_sprouts.fall":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","983;block.nether_sprouts.hit":"1;block/nether_sprouts/step1;1,1;block/nether_sprouts/step2;1,1;block/nether_sprouts/step3;1,1;block/nether_sprouts/step4;1,1;block/nether_sprouts/step5;1","982;block.nether_sprouts.place":"0.7;block/nether_sprouts/break1;1,0.7;block/nether_sprouts/break2;1,0.7;block/nether_sprouts/break3;1,0.7;block/nether_sprouts/break4;1","981;block.nether_sprouts.step":"0.5;block/nether_sprouts/step1;1,0.5;block/nether_sprouts/step2;1,0.5;block/nether_sprouts/step3;1,0.5;block/nether_sprouts/step4;1,0.5;block/nether_sprouts/step5;1","947;block.nether_wart.break":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1","949;block.nether_wood.break":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","950;block.nether_wood.fall":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","951;block.nether_wood.hit":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","952;block.nether_wood.place":"1;block/nether_wood/break1;1,1;block/nether_wood/break2;1,1;block/nether_wood/break3;1,1;block/nether_wood/break4;1","953;block.nether_wood.step":"1;block/nether_wood/step1;1,1;block/nether_wood/step2;1,1;block/nether_wood/step3;1,1;block/nether_wood/step4;1,1;block/nether_wood/step5;1","958;block.nether_wood_button.click_off":"0.3;block/nether_wood_button/nether_wood_button;1","959;block.nether_wood_button.click_on":"0.3;block/nether_wood_button/nether_wood_button;1","954;block.nether_wood_door.close":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","955;block.nether_wood_door.open":"1;block/nether_wood_door/toggle1;1,1;block/nether_wood_door/toggle2;1,1;block/nether_wood_door/toggle3;1,1;block/nether_wood_door/toggle4;1","962;block.nether_wood_fence_gate.close":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","963;block.nether_wood_fence_gate.open":"1;block/nether_wood_fence/toggle1;1,1;block/nether_wood_fence/toggle2;1,1;block/nether_wood_fence/toggle3;1,1;block/nether_wood_fence/toggle4;1","688;block.nether_wood_hanging_sign.break":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","689;block.nether_wood_hanging_sign.fall":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","690;block.nether_wood_hanging_sign.hit":"0.8;block/nether_wood_hanging_sign/step1;1,0.8;block/nether_wood_hanging_sign/step2;1,0.8;block/nether_wood_hanging_sign/step3;1,0.8;block/nether_wood_hanging_sign/step4;1","691;block.nether_wood_hanging_sign.place":"1;block/nether_wood_hanging_sign/break1;1,1;block/nether_wood_hanging_sign/break2;1,1;block/nether_wood_hanging_sign/break3;1,1;block/nether_wood_hanging_sign/break4;1","687;block.nether_wood_hanging_sign.step":"1;block/nether_wood_hanging_sign/step1;1,1;block/nether_wood_hanging_sign/step2;1,1;block/nether_wood_hanging_sign/step3;1,1;block/nether_wood_hanging_sign/step4;1","960;block.nether_wood_pressure_plate.click_off":"0.3;random/click;1","961;block.nether_wood_pressure_plate.click_on":"0.3;random/click;1","956;block.nether_wood_trapdoor.close":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","957;block.nether_wood_trapdoor.open":"1;block/nether_wood_trapdoor/toggle1;1,1;block/nether_wood_trapdoor/toggle2;1,1;block/nether_wood_trapdoor/toggle3;1,1;block/nether_wood_trapdoor/toggle4;1","1000;block.netherite_block.break":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","1004;block.netherite_block.fall":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","1003;block.netherite_block.hit":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","1002;block.netherite_block.place":"0.95;block/netherite/break1;1,0.95;block/netherite/break1;1,0.95;block/netherite/break2;1,0.95;block/netherite/break2;1,0.95;block/netherite/break3;1,0.95;block/netherite/break3;1,0.95;block/netherite/break4;1,0.95;block/netherite/break4;1","1001;block.netherite_block.step":"1;block/netherite/step1;1,1;block/netherite/step2;1,1;block/netherite/step3;1,1;block/netherite/step4;1,1;block/netherite/step5;1,1;block/netherite/step6;1","1005;block.netherrack.break":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","1009;block.netherrack.fall":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","1008;block.netherrack.hit":"0.55;block/netherrack/step1;1,0.55;block/netherrack/step2;1,0.55;block/netherrack/step3;1,0.55;block/netherrack/step4;1,0.55;block/netherrack/step5;1,0.55;block/netherrack/step6;1","1007;block.netherrack.place":"1;block/netherrack/break1;1,1;block/netherrack/break2;1,1;block/netherrack/break3;1,1;block/netherrack/break4;1,1;block/netherrack/break5;1,1;block/netherrack/break6;1","1006;block.netherrack.step":"1;block/netherrack/step1;1,1;block/netherrack/step2;1,1;block/netherrack/step3;1,1;block/netherrack/step4;1,1;block/netherrack/step5;1,1;block/netherrack/step6;1","1025;block.note_block.banjo":"1;note/banjo;1","1010;block.note_block.basedrum":"1;note/bd;1","1011;block.note_block.bass":"1;note/bassattack;1","1012;block.note_block.bell":"1;note/bell;1","1024;block.note_block.bit":"1;note/bit;1","1013;block.note_block.chime":"1;note/icechime;1","1022;block.note_block.cow_bell":"1;note/cow_bell;1","1023;block.note_block.didgeridoo":"1;note/didgeridoo;1","1014;block.note_block.flute":"1;note/flute;1","1015;block.note_block.guitar":"1;note/guitar;1","1016;block.note_block.harp":"1;note/harp2;1","1017;block.note_block.hat":"1;note/hat;1","1028;block.note_block.imitate.creeper":"1;entity.creeper.primed;1","1029;block.note_block.imitate.ender_dragon":"1;entity.ender_dragon.ambient;1","1031;block.note_block.imitate.piglin":"1;entity.piglin.ambient;1","1027;block.note_block.imitate.skeleton":"1;entity.skeleton.ambient;1","1030;block.note_block.imitate.wither_skeleton":"1;entity.wither_skeleton.ambient;1","1026;block.note_block.imitate.zombie":"1;entity.zombie.ambient;1","1021;block.note_block.iron_xylophone":"1;note/iron_xylophone;1","1018;block.note_block.pling":"1;note/pling;1","1019;block.note_block.snare":"1;note/snare;1","1020;block.note_block.xylophone":"1;note/xylobone;1","975;block.nylium.break":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","979;block.nylium.fall":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","978;block.nylium.hit":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","977;block.nylium.place":"0.85;block/nylium/break1;1,0.85;block/nylium/break2;1,0.85;block/nylium/break3;1,0.85;block/nylium/break4;1,0.85;block/nylium/break5;1,0.85;block/nylium/break6;1","976;block.nylium.step":"1;block/nylium/step1;1,1;block/nylium/step2;1,1;block/nylium/step3;1,1;block/nylium/step4;1,1;block/nylium/step5;1,1;block/nylium/step6;1","965;block.packed_mud.break":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","966;block.packed_mud.fall":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","967;block.packed_mud.hit":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","968;block.packed_mud.place":"0.3;block/packed_mud/break1;1,0.3;block/packed_mud/break2;1,0.3;block/packed_mud/break3;1,0.3;block/packed_mud/break4;1,0.3;block/packed_mud/break5;1,0.3;block/packed_mud/break6;1","969;block.packed_mud.step":"0.3;block/packed_mud/step1;1,0.3;block/packed_mud/step2;1,0.3;block/packed_mud/step3;1,0.3;block/packed_mud/step4;1,0.3;block/packed_mud/step5;1,0.3;block/packed_mud/step6;1","1038;block.pale_hanging_moss.idle":"1;block/pale_hanging_moss/pale_hanging_moss1;1,1;block/pale_hanging_moss/pale_hanging_moss2;1,1;block/pale_hanging_moss/pale_hanging_moss3;1,1;block/pale_hanging_moss/pale_hanging_moss4;1,1;block/pale_hanging_moss/pale_hanging_moss5;1,1;block/pale_hanging_moss/pale_hanging_moss6;1,1;block/pale_hanging_moss/pale_hanging_moss7;1,1;block/pale_hanging_moss/pale_hanging_moss8;1,1;block/pale_hanging_moss/pale_hanging_moss9;1,1;block/pale_hanging_moss/pale_hanging_moss10;1,1;block/pale_hanging_moss/pale_hanging_moss11;1,1;block/pale_hanging_moss/pale_hanging_moss12;1,1;block/pale_hanging_moss/pale_hanging_moss13;1,1;block/pale_hanging_moss/pale_hanging_moss14;1,1;block/pale_hanging_moss/pale_hanging_moss15;1","860;block.pink_petals.break":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","861;block.pink_petals.fall":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","862;block.pink_petals.hit":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","863;block.pink_petals.place":"0.8;block/cherry_leaves/break1;1,0.8;block/cherry_leaves/break2;1,0.8;block/cherry_leaves/break3;1,0.8;block/cherry_leaves/break4;1,0.8;block/cherry_leaves/break5;1","864;block.pink_petals.step":"0.8;block/cherry_leaves/step1;1,0.8;block/cherry_leaves/step2;1,0.8;block/cherry_leaves/step3;1,0.8;block/cherry_leaves/step4;1,0.8;block/cherry_leaves/step5;1","1123;block.piston.contract":"1;tile/piston/in;1","1124;block.piston.extend":"1;tile/piston/out;1","454;block.pointed_dripstone.break":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","460;block.pointed_dripstone.drip_lava":"1;block/pointed_dripstone/drip_lava1;1,1;block/pointed_dripstone/drip_lava2;1,1;block/pointed_dripstone/drip_lava3;1,1;block/pointed_dripstone/drip_lava4;1,1;block/pointed_dripstone/drip_lava5;1,1;block/pointed_dripstone/drip_lava6;1","462;block.pointed_dripstone.drip_lava_into_cauldron":"1;block/pointed_dripstone/drip_lava_cauldron1;1,1;block/pointed_dripstone/drip_lava_cauldron2;1,1;block/pointed_dripstone/drip_lava_cauldron3;1,1;block/pointed_dripstone/drip_lava_cauldron4;1","461;block.pointed_dripstone.drip_water":"1;block/pointed_dripstone/drip_water1;1,1;block/pointed_dripstone/drip_water2;1,1;block/pointed_dripstone/drip_water3;1,1;block/pointed_dripstone/drip_water4;1,1;block/pointed_dripstone/drip_water5;1,1;block/pointed_dripstone/drip_water6;1,1;block/pointed_dripstone/drip_water7;1,1;block/pointed_dripstone/drip_water8;1,1;block/pointed_dripstone/drip_water9;1,1;block/pointed_dripstone/drip_water10;1,1;block/pointed_dripstone/drip_water11;1,1;block/pointed_dripstone/drip_water12;1,1;block/pointed_dripstone/drip_water13;1,1;block/pointed_dripstone/drip_water14;1,1;block/pointed_dripstone/drip_water15;1","463;block.pointed_dripstone.drip_water_into_cauldron":"1;block/pointed_dripstone/drip_water_cauldron1;1,1;block/pointed_dripstone/drip_water_cauldron2;1,1;block/pointed_dripstone/drip_water_cauldron3;1,1;block/pointed_dripstone/drip_water_cauldron4;1,1;block/pointed_dripstone/drip_water_cauldron5;1,1;block/pointed_dripstone/drip_water_cauldron6;1,1;block/pointed_dripstone/drip_water_cauldron7;1,1;block/pointed_dripstone/drip_water_cauldron8;1","458;block.pointed_dripstone.fall":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","457;block.pointed_dripstone.hit":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","459;block.pointed_dripstone.land":"1;block/pointed_dripstone/land1;1,1;block/pointed_dripstone/land2;1,1;block/pointed_dripstone/land3;1,1;block/pointed_dripstone/land4;1,1;block/pointed_dripstone/land5;1","456;block.pointed_dripstone.place":"1;block/dripstone/break1;1,1;block/dripstone/break2;1,1;block/dripstone/break3;1,1;block/dripstone/break4;1,1;block/dripstone/break5;1","455;block.pointed_dripstone.step":"1;block/dripstone/step1;1,1;block/dripstone/step2;1,1;block/dripstone/step3;1,1;block/dripstone/step4;1,1;block/dripstone/step5;1,1;block/dripstone/step6;1","1152;block.polished_deepslate.break":"1;block/deepslate/break1;1,1;block/deepslate/break2;1,1;block/deepslate/break3;1,1;block/deepslate/break4;1","1153;block.polished_deepslate.fall":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1154;block.polished_deepslate.hit":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1155;block.polished_deepslate.place":"1;block/deepslate/place1;1,1;block/deepslate/place2;1,1;block/deepslate/place3;1,1;block/deepslate/place4;1,1;block/deepslate/place5;1,1;block/deepslate/place6;1","1156;block.polished_deepslate.step":"1;block/deepslate/step1;1,1;block/deepslate/step2;1,1;block/deepslate/step3;1,1;block/deepslate/step4;1,1;block/deepslate/step5;1,1;block/deepslate/step6;1","1450;block.polished_tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1451;block.polished_tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1452;block.polished_tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1453;block.polished_tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1,1;block/tuff/break5;1","1454;block.polished_tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1157;block.portal.ambient":"1;portal/portal;1","1158;block.portal.travel":"1;portal/travel;1","1159;block.portal.trigger":"1;portal/trigger;1","1160;block.powder_snow.break":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1161;block.powder_snow.fall":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1162;block.powder_snow.hit":"0.83;block/powder_snow/step1;1,0.83;block/powder_snow/step2;1,0.83;block/powder_snow/step3;1,0.83;block/powder_snow/step4;1,0.83;block/powder_snow/step5;1,0.83;block/powder_snow/step6;1,0.83;block/powder_snow/step7;1,0.83;block/powder_snow/step8;1,0.83;block/powder_snow/step9;1,0.83;block/powder_snow/step10;1","1163;block.powder_snow.place":"1;block/powder_snow/break1;1,1;block/powder_snow/break2;1,1;block/powder_snow/break3;1,1;block/powder_snow/break4;1,1;block/powder_snow/break5;1,1;block/powder_snow/break6;1,1;block/powder_snow/break7;1","1164;block.powder_snow.step":"1;block/powder_snow/step1;1,1;block/powder_snow/step2;1,1;block/powder_snow/step3;1,1;block/powder_snow/step4;1,1;block/powder_snow/step5;1,1;block/powder_snow/step6;1,1;block/powder_snow/step7;1,1;block/powder_snow/step8;1,1;block/powder_snow/step9;1,1;block/powder_snow/step10;1","1172;block.pumpkin.carve":"1;block/pumpkin/carve1;1,1;block/pumpkin/carve2;1","1197;block.redstone_torch.burnout":"1;random/fizz;1","1328;block.resin.break":"1;block/resin/resin_break1;1,1;block/resin/resin_break2;1,1;block/resin/resin_break3;1,1;block/resin/resin_break4;1,1;block/resin/resin_break5;1","1329;block.resin.fall":"1;block/resin/resin_fall;1","1330;block.resin.place":"1;block/resin/resin_place1;1,1;block/resin/resin_place2;1,1;block/resin/resin_place3;1,1;block/resin/resin_place4;1","1331;block.resin.step":"1;block/resin/resin_step1;1,1;block/resin/resin_step2;1,1;block/resin/resin_step3;1,1;block/resin/resin_step4;1,1;block/resin/resin_step5;1","1332;block.resin_bricks.break":"1;block/resin_bricks/resin_brick_break;1","1333;block.resin_bricks.fall":"1;block/resin_bricks/resin_brick_fall;1","1334;block.resin_bricks.hit":"1;block/resin_bricks/resin_brick_hit1;1,1;block/resin_bricks/resin_brick_hit2;1,1;block/resin_bricks/resin_brick_hit3;1,1;block/resin_bricks/resin_brick_hit4;1,1;block/resin_bricks/resin_brick_hit5;1","1335;block.resin_bricks.place":"1;block/resin_bricks/resin_brick_place1;1,1;block/resin_bricks/resin_brick_place2;1,1;block/resin_bricks/resin_brick_place3;1,1;block/resin_bricks/resin_brick_place4;1,1;block/resin_bricks/resin_brick_place5;1","1336;block.resin_bricks.step":"1;block/resin_bricks/resin_brick_step1;1,1;block/resin_bricks/resin_brick_step2;1,1;block/resin_bricks/resin_brick_step3;1,1;block/resin_bricks/resin_brick_step4;1,1;block/resin_bricks/resin_brick_step5;1","1198;block.respawn_anchor.ambient":"1;block/respawn_anchor/ambient1;1,1;block/respawn_anchor/ambient2;1,1;block/respawn_anchor/ambient3;1","1199;block.respawn_anchor.charge":"1;block/respawn_anchor/charge1;1,1;block/respawn_anchor/charge2;1,1;block/respawn_anchor/charge3;1","1200;block.respawn_anchor.deplete":"1;block/respawn_anchor/deplete1;1,1;block/respawn_anchor/deplete2;1","1201;block.respawn_anchor.set_spawn":"1;block/respawn_anchor/set_spawn1;1,1;block/respawn_anchor/set_spawn2;1,1;block/respawn_anchor/set_spawn3;1","1202;block.rooted_dirt.break":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1203;block.rooted_dirt.fall":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","1204;block.rooted_dirt.hit":"0.8;block/rooted_dirt/step1;1,0.8;block/rooted_dirt/step2;1,0.8;block/rooted_dirt/step3;1,0.8;block/rooted_dirt/step4;1,0.8;block/rooted_dirt/step5;1,0.8;block/rooted_dirt/step6;1","1205;block.rooted_dirt.place":"1;block/rooted_dirt/break1;1,1;block/rooted_dirt/break2;1,1;block/rooted_dirt/break3;1,1;block/rooted_dirt/break4;1","1206;block.rooted_dirt.step":"1;block/rooted_dirt/step1;1,1;block/rooted_dirt/step2;1,1;block/rooted_dirt/step3;1,1;block/rooted_dirt/step4;1,1;block/rooted_dirt/step5;1,1;block/rooted_dirt/step6;1","591;block.roots.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","595;block.roots.fall":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","594;block.roots.hit":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","593;block.roots.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","592;block.roots.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1211;block.sand.break":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1212;block.sand.fall":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1213;block.sand.hit":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1214;block.sand.place":"1;dig/sand1;1,1;dig/sand2;1,1;dig/sand3;1,1;dig/sand4;1","1215;block.sand.step":"1;step/sand1;1,1;step/sand2;1,1;step/sand3;1,1;step/sand4;1,1;step/sand5;1","1216;block.scaffolding.break":"0.8;block/scaffold/place1;1,0.8;block/scaffold/place2;1,0.8;block/scaffold/place3;1,0.8;block/scaffold/place4;1","1217;block.scaffolding.fall":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1218;block.scaffolding.hit":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1219;block.scaffolding.place":"0.9;block/scaffold/place1;1,0.9;block/scaffold/place2;1,0.9;block/scaffold/place3;1,0.9;block/scaffold/place4;1","1220;block.scaffolding.step":"1;step/scaffold1;1,1;step/scaffold2;1,1;step/scaffold3;1,1;step/scaffold4;1,1;step/scaffold5;1,1;step/scaffold6;1,1;step/scaffold7;1","1223;block.sculk.break":"1;block/sculk/break1;1,1;block/sculk/break2;1,1;block/sculk/break3;1,1;block/sculk/break4;1,1;block/sculk/break5;1,1;block/sculk/break6;1,1;block/sculk/break7;1,1;block/sculk/break8;1,1;block/sculk/break9;1,1;block/sculk/break10;1,1;block/sculk/break11;1,1;block/sculk/break12;1,1;block/sculk/break13;1,1;block/sculk/break14;1","1222;block.sculk.charge":"1;block/sculk/charge1;1,1;block/sculk/charge2;1,1;block/sculk/charge3;1,1;block/sculk/charge4;1,1;block/sculk/charge5;1","1224;block.sculk.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1225;block.sculk.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1226;block.sculk.place":"1;block/sculk/place1;1,1;block/sculk/place2;1,1;block/sculk/place3;1,1;block/sculk/place4;1,1;block/sculk/place5;1","1221;block.sculk.spread":"1;block/sculk/spread1;1,1;block/sculk/spread2;1,1;block/sculk/spread3;1,1;block/sculk/spread4;1,1;block/sculk/spread5;1","1227;block.sculk.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1228;block.sculk_catalyst.bloom":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1229;block.sculk_catalyst.break":"1;block/sculk_catalyst/break1;1,1;block/sculk_catalyst/break2;1,1;block/sculk_catalyst/break3;1,1;block/sculk_catalyst/break4;1,1;block/sculk_catalyst/break5;1,1;block/sculk_catalyst/break6;1,1;block/sculk_catalyst/break7;1,1;block/sculk_catalyst/break8;1,1;block/sculk_catalyst/break9;1,1;block/sculk_catalyst/break10;1","1230;block.sculk_catalyst.fall":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1231;block.sculk_catalyst.hit":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1232;block.sculk_catalyst.place":"1;block/sculk_catalyst/place1;1,1;block/sculk_catalyst/place2;1,1;block/sculk_catalyst/place3;1,1;block/sculk_catalyst/place4;1,1;block/sculk_catalyst/place5;1","1233;block.sculk_catalyst.step":"1;block/sculk_catalyst/step1;1,1;block/sculk_catalyst/step2;1,1;block/sculk_catalyst/step3;1,1;block/sculk_catalyst/step4;1,1;block/sculk_catalyst/step5;1,1;block/sculk_catalyst/step6;1","1236;block.sculk_sensor.break":"0.9;block/sculk_sensor/break1;1,0.9;block/sculk_sensor/break2;1,0.9;block/sculk_sensor/break3;1,0.9;block/sculk_sensor/break4;1,0.9;block/sculk_sensor/break5;1","1234;block.sculk_sensor.clicking":"0.73;block/sculk_sensor/sculk_clicking1;1,0.73;block/sculk_sensor/sculk_clicking2;1,0.73;block/sculk_sensor/sculk_clicking3;1,0.73;block/sculk_sensor/sculk_clicking4;1,0.73;block/sculk_sensor/sculk_clicking5;1,0.73;block/sculk_sensor/sculk_clicking6;1","1235;block.sculk_sensor.clicking_stop":"0.62;block/sculk_sensor/sculk_clicking_stop1;1,0.62;block/sculk_sensor/sculk_clicking_stop2;1,0.62;block/sculk_sensor/sculk_clicking_stop3;1,0.62;block/sculk_sensor/sculk_clicking_stop4;1,0.62;block/sculk_sensor/sculk_clicking_stop5;1","1237;block.sculk_sensor.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1238;block.sculk_sensor.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1239;block.sculk_sensor.place":"0.8;block/sculk_sensor/place1;1,0.8;block/sculk_sensor/place2;1,0.8;block/sculk_sensor/place3;1,0.8;block/sculk_sensor/place4;1,0.8;block/sculk_sensor/place5;1","1240;block.sculk_sensor.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1241;block.sculk_shrieker.break":"0.9;block/sculk_shrieker/break1;1,0.9;block/sculk_shrieker/break2;1,0.9;block/sculk_shrieker/break3;1,0.9;block/sculk_shrieker/break4;1,0.9;block/sculk_shrieker/break5;1,0.9;block/sculk_shrieker/break6;1","1242;block.sculk_shrieker.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1243;block.sculk_shrieker.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1244;block.sculk_shrieker.place":"0.9;block/sculk_shrieker/place1;1,0.9;block/sculk_shrieker/place2;1,0.9;block/sculk_shrieker/place3;1,0.9;block/sculk_shrieker/place4;1,0.9;block/sculk_shrieker/place5;1","1245;block.sculk_shrieker.shriek":"0.85;block/sculk_shrieker/shriek1;1,0.85;block/sculk_shrieker/shriek2;1,0.85;block/sculk_shrieker/shriek3;1,0.85;block/sculk_shrieker/shriek4;1,0.85;block/sculk_shrieker/shriek5;1","1246;block.sculk_shrieker.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1247;block.sculk_vein.break":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1248;block.sculk_vein.fall":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1249;block.sculk_vein.hit":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1250;block.sculk_vein.place":"0.8;block/sculk_vein/break1;1,0.8;block/sculk_vein/break2;1,0.8;block/sculk_vein/break3;1,0.8;block/sculk_vein/break4;1,0.8;block/sculk_vein/break5;1","1251;block.sculk_vein.step":"1;block/sculk/step1;1,1;block/sculk/step2;1,1;block/sculk/step3;1,1;block/sculk/step4;1,1;block/sculk/step5;1,1;block/sculk/step6;1","1259;block.shroomlight.break":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1263;block.shroomlight.fall":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1262;block.shroomlight.hit":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1261;block.shroomlight.place":"1;block/shroomlight/break1;1,1;block/shroomlight/break2;1,1;block/shroomlight/break3;1,1;block/shroomlight/break4;1,1;block/shroomlight/break5;1","1260;block.shroomlight.step":"1;block/shroomlight/step1;1,1;block/shroomlight/step2;1,1;block/shroomlight/step3;1,1;block/shroomlight/step4;1,1;block/shroomlight/step5;1,1;block/shroomlight/step6;1","1266;block.shulker_box.close":"1;block/shulker_box/close;1","1267;block.shulker_box.open":"1;block/shulker_box/open;1","1555;block.sign.waxed_interact_fail":"1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail1;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail2;1,1;block/sign/waxed_interact_fail3;1,1;block/sign/waxed_interact_fail3;1","1300;block.slime_block.break":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1301;block.slime_block.fall":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1302;block.slime_block.hit":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1303;block.slime_block.place":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1304;block.slime_block.step":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1305;block.small_amethyst_bud.break":"0.4;block/amethyst_cluster/break1;1,0.4;block/amethyst_cluster/break2;1,0.4;block/amethyst_cluster/break3;1,0.4;block/amethyst_cluster/break4;1","1306;block.small_amethyst_bud.place":"0.4;block/amethyst_cluster/place1;1,0.4;block/amethyst_cluster/place2;1,0.4;block/amethyst_cluster/place3;1,0.4;block/amethyst_cluster/place4;1","1307;block.small_dripleaf.break":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1308;block.small_dripleaf.fall":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1309;block.small_dripleaf.hit":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1310;block.small_dripleaf.place":"0.9;block/big_dripleaf/break1;1,0.9;block/big_dripleaf/break2;1,0.9;block/big_dripleaf/break3;1,0.9;block/big_dripleaf/break4;1,0.9;block/big_dripleaf/break5;1,0.9;block/big_dripleaf/break6;1","1311;block.small_dripleaf.step":"0.9;block/big_dripleaf/step1;1,0.9;block/big_dripleaf/step2;1,0.9;block/big_dripleaf/step3;1,0.9;block/big_dripleaf/step4;1,0.9;block/big_dripleaf/step5;1,0.9;block/big_dripleaf/step6;1","1355;block.smithing_table.use":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1356;block.smoker.smoke":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1370;block.sniffer_egg.crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1371;block.sniffer_egg.hatch":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1369;block.sniffer_egg.plop":"1;mob/chicken/plop;1,1;mob/chicken/plop;1,1;mob/chicken/plop;1","1373;block.snow.break":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1374;block.snow.fall":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1380;block.snow.hit":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1381;block.snow.place":"1;dig/snow1;1,1;dig/snow2;1,1;dig/snow3;1,1;dig/snow4;1","1382;block.snow.step":"1;step/snow1;1,1;step/snow2;1,1;step/snow3;1,1;step/snow4;1","1312;block.soul_sand.break":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1316;block.soul_sand.fall":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1315;block.soul_sand.hit":"0.55;block/soul_sand/step1;1,0.55;block/soul_sand/step2;1,0.55;block/soul_sand/step3;1,0.55;block/soul_sand/step4;1,0.55;block/soul_sand/step5;1","1314;block.soul_sand.place":"1;block/soul_sand/break1;1,1;block/soul_sand/break2;1,1;block/soul_sand/break3;1,1;block/soul_sand/break4;1,1;block/soul_sand/break5;1,1;block/soul_sand/break6;1,1;block/soul_sand/break7;1,1;block/soul_sand/break8;1,1;block/soul_sand/break9;1","1313;block.soul_sand.step":"1;block/soul_sand/step1;1,1;block/soul_sand/step2;1,1;block/soul_sand/step3;1,1;block/soul_sand/step4;1,1;block/soul_sand/step5;1","1317;block.soul_soil.break":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1321;block.soul_soil.fall":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1320;block.soul_soil.hit":"0.66;block/soul_soil/step1;1,0.66;block/soul_soil/step2;1,0.66;block/soul_soil/step3;1,0.66;block/soul_soil/step4;1,0.66;block/soul_soil/step5;1","1319;block.soul_soil.place":"0.8;block/soul_soil/break1;1,0.8;block/soul_soil/break2;1,0.8;block/soul_soil/break3;1,0.8;block/soul_soil/break4;1,0.8;block/soul_soil/break5;1,0.8;block/soul_soil/break6;1","1318;block.soul_soil.step":"1;block/soul_soil/step1;1,1;block/soul_soil/step2;1,1;block/soul_soil/step3;1,1;block/soul_soil/step4;1,1;block/soul_soil/step5;1","1323;block.spawner.break":"1;block/spawner/break1;1,1;block/spawner/break2;1,1;block/spawner/break3;1,1;block/spawner/break4;1","1324;block.spawner.fall":"1;block/spawner/step1;1,1;block/spawner/step2;1,1;block/spawner/step3;1,1;block/spawner/step4;1,1;block/spawner/step5;1","1325;block.spawner.hit":"1;block/spawner/step1;1,1;block/spawner/step2;1,1;block/spawner/step3;1,1;block/spawner/step4;1,1;block/spawner/step5;1","1326;block.spawner.place":"1;block/spawner/break1;1,1;block/spawner/break2;1,1;block/spawner/break3;1,1;block/spawner/break4;1","1327;block.spawner.step":"1;block/spawner/step1;1,1;block/spawner/step2;1,1;block/spawner/step3;1,1;block/spawner/step4;1,1;block/spawner/step5;1","1394;block.sponge.absorb":"1;block/sponge/absorb1;1,1;block/sponge/absorb2;1,1;block/sponge/absorb3;1","1389;block.sponge.break":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1390;block.sponge.fall":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1391;block.sponge.hit":"0.8;block/sponge/step1;1,0.8;block/sponge/step2;1,0.8;block/sponge/step3;1,0.8;block/sponge/step4;1,0.8;block/sponge/step5;1,0.8;block/sponge/step6;1","1392;block.sponge.place":"1;block/sponge/break1;1,1;block/sponge/break2;1,1;block/sponge/break3;1,1;block/sponge/break4;1","1393;block.sponge.step":"1;block/sponge/step1;1,1;block/sponge/step2;1,1;block/sponge/step3;1,1;block/sponge/step4;1,1;block/sponge/step5;1,1;block/sponge/step6;1","1337;block.spore_blossom.break":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1338;block.spore_blossom.fall":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1339;block.spore_blossom.hit":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","1340;block.spore_blossom.place":"1;block/spore_blossom/break1;1,1;block/spore_blossom/break2;1,1;block/spore_blossom/break3;1,1;block/spore_blossom/break4;1,1;block/spore_blossom/break5;1","1341;block.spore_blossom.step":"1;block/spore_blossom/step1;1,1;block/spore_blossom/step2;1,1;block/spore_blossom/step3;1,1;block/spore_blossom/step4;1,1;block/spore_blossom/step5;1,1;block/spore_blossom/step6;1","970;block.stem.break":"1;block/stem/break1;1,1;block/stem/break2;1,1;block/stem/break3;1,1;block/stem/break4;1,1;block/stem/break5;1,1;block/stem/break6;1","974;block.stem.fall":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","973;block.stem.hit":"0.8;block/stem/step1;1,0.8;block/stem/step2;1,0.8;block/stem/step3;1,0.8;block/stem/step4;1,0.8;block/stem/step5;1,0.8;block/stem/step6;1","972;block.stem.place":"0.8;block/stem/break1;1,0.8;block/stem/break2;1,0.8;block/stem/break3;1,0.8;block/stem/break4;1,0.8;block/stem/break5;1,0.8;block/stem/break6;1","971;block.stem.step":"1;block/stem/step1;1,1;block/stem/step2;1,1;block/stem/step3;1,1;block/stem/step4;1,1;block/stem/step5;1,1;block/stem/step6;1","1401;block.stone.break":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1404;block.stone.fall":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1405;block.stone.hit":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1406;block.stone.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","1409;block.stone.step":"1;step/stone1;1,1;step/stone2;1,1;step/stone3;1,1;step/stone4;1,1;step/stone5;1,1;step/stone6;1","1402;block.stone_button.click_off":"0.3;random/click;1","1403;block.stone_button.click_on":"0.3;random/click;1","1407;block.stone_pressure_plate.click_off":"0.3;random/click;1","1408;block.stone_pressure_plate.click_on":"0.3;random/click;1","567;block.suspicious_gravel.break":"1;block/suspicious_gravel/break1;1,1;block/suspicious_gravel/break2;1,1;block/suspicious_gravel/break3;1,1;block/suspicious_gravel/break4;1,1;block/suspicious_gravel/break5;1,1;block/suspicious_gravel/break6;1","571;block.suspicious_gravel.fall":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","570;block.suspicious_gravel.hit":"0.8;block/suspicious_gravel/step1;1,0.8;block/suspicious_gravel/step2;1,0.8;block/suspicious_gravel/step3;1,0.8;block/suspicious_gravel/step4;1","569;block.suspicious_gravel.place":"1;block/suspicious_gravel/place1;1,1;block/suspicious_gravel/place2;1,1;block/suspicious_gravel/place3;1,1;block/suspicious_gravel/place4;1","568;block.suspicious_gravel.step":"1;block/suspicious_gravel/step1;1,1;block/suspicious_gravel/step2;1,1;block/suspicious_gravel/step3;1,1;block/suspicious_gravel/step4;1","562;block.suspicious_sand.break":"1;block/suspicious_sand/break1;1,1;block/suspicious_sand/break2;1,1;block/suspicious_sand/break3;1,1;block/suspicious_sand/break4;1,1;block/suspicious_sand/break5;1,1;block/suspicious_sand/break6;1","566;block.suspicious_sand.fall":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","565;block.suspicious_sand.hit":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","564;block.suspicious_sand.place":"1;block/suspicious_sand/place1;1,1;block/suspicious_sand/place2;1,1;block/suspicious_sand/place3;1,1;block/suspicious_sand/place4;1,1;block/suspicious_sand/place5;1","563;block.suspicious_sand.step":"1;block/suspicious_sand/step1;1,1;block/suspicious_sand/step2;1,1;block/suspicious_sand/step3;1,1;block/suspicious_sand/step4;1,1;block/suspicious_sand/step5;1","1414;block.sweet_berry_bush.break":"0.8;block/sweet_berry_bush/break1;1,0.8;block/sweet_berry_bush/break2;1,0.8;block/sweet_berry_bush/break3;1,0.8;block/sweet_berry_bush/break4;1","1416;block.sweet_berry_bush.pick_berries":"1;item/sweet_berries/pick_from_bush1;1,1;item/sweet_berries/pick_from_bush2;1","1415;block.sweet_berry_bush.place":"0.8;block/sweet_berry_bush/place1;1,0.8;block/sweet_berry_bush/place2;1,0.8;block/sweet_berry_bush/place3;1,0.8;block/sweet_berry_bush/place4;1,0.8;block/sweet_berry_bush/place5;1,0.8;block/sweet_berry_bush/place6;1","703;block.trial_spawner.about_to_spawn_item":"1;block/trial_spawner/about_to_spawn_item;1","708;block.trial_spawner.ambient":"1;block/trial_spawner/ambient1;1,1;block/trial_spawner/ambient2;1,1;block/trial_spawner/ambient3;1,1;block/trial_spawner/ambient4;1,1;block/trial_spawner/ambient5;1","709;block.trial_spawner.ambient_ominous":"1;block/trial_spawner/ambient_ominous1;1,1;block/trial_spawner/ambient_ominous2;1,1;block/trial_spawner/ambient_ominous3;1,1;block/trial_spawner/ambient_ominous4;1,1;block/trial_spawner/ambient_ominous5;1","697;block.trial_spawner.break":"0.9;block/trial_spawner/break1;1,0.9;block/trial_spawner/break2;1,0.9;block/trial_spawner/break3;1","711;block.trial_spawner.close_shutter":"1;block/trial_spawner/close_shutter;1","706;block.trial_spawner.detect_player":"1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player1;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player2;1,1;block/trial_spawner/detect_player3;1,1;block/trial_spawner/detect_player3;1","712;block.trial_spawner.eject_item":"1;block/trial_spawner/eject_item1;1","701;block.trial_spawner.fall":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","700;block.trial_spawner.hit":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","707;block.trial_spawner.ominous_activate":"1;block/trial_spawner/ominous_activate;1","710;block.trial_spawner.open_shutter":"1;block/trial_spawner/open_shutter;1","699;block.trial_spawner.place":"1;block/trial_spawner/place1;1,1;block/trial_spawner/place2;1,1;block/trial_spawner/place3;1","704;block.trial_spawner.spawn_item":"1;block/trial_spawner/spawn_item1;1,1;block/trial_spawner/spawn_item2;1,1;block/trial_spawner/spawn_item3;1","705;block.trial_spawner.spawn_item_begin":"1;block/trial_spawner/spawn_item_begin1;1,1;block/trial_spawner/spawn_item_begin2;1,1;block/trial_spawner/spawn_item_begin3;1","702;block.trial_spawner.spawn_mob":"1;block/trial_spawner/spawn1;1,1;block/trial_spawner/spawn2;1,1;block/trial_spawner/spawn3;1,1;block/trial_spawner/spawn4;1","698;block.trial_spawner.step":"1;block/trial_spawner/step1;1,1;block/trial_spawner/step2;1,1;block/trial_spawner/step3;1,1;block/trial_spawner/step4;1,1;block/trial_spawner/step5;1","1432;block.tripwire.attach":"1;random/click;1","1433;block.tripwire.click_off":"1;random/click;1","1434;block.tripwire.click_on":"1;random/click;1","1435;block.tripwire.detach":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","1440;block.tuff.break":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1444;block.tuff.fall":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1443;block.tuff.hit":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1442;block.tuff.place":"1;block/tuff/break1;1,1;block/tuff/break2;1,1;block/tuff/break3;1,1;block/tuff/break4;1","1441;block.tuff.step":"1;block/tuff/step1;1,1;block/tuff/step2;1,1;block/tuff/step3;1,1;block/tuff/step4;1,1;block/tuff/step5;1,1;block/tuff/step6;1","1445;block.tuff_bricks.break":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1446;block.tuff_bricks.fall":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1447;block.tuff_bricks.hit":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1448;block.tuff_bricks.place":"1;block/tuff_bricks/place1;1,1;block/tuff_bricks/place2;1,1;block/tuff_bricks/place3;1,1;block/tuff_bricks/place4;1,1;block/tuff_bricks/place5;1","1449;block.tuff_bricks.step":"1;block/tuff_bricks/step1;1,1;block/tuff_bricks/step2;1,1;block/tuff_bricks/step3;1,1;block/tuff_bricks/step4;1,1;block/tuff_bricks/step5;1,1;block/tuff_bricks/step6;1","1476;block.vault.activate":"1;block/vault/activate;1","1477;block.vault.ambient":"1;block/vault/ambient1;1,1;block/vault/ambient2;1,1;block/vault/ambient3;1","1478;block.vault.break":"1;block/vault/break1;1,1;block/vault/break2;1,1;block/vault/break3;1,1;block/vault/break4;1","1479;block.vault.close_shutter":"1;block/trial_spawner/close_shutter;1","1480;block.vault.deactivate":"1;block/vault/deactivate;1","1481;block.vault.eject_item":"1;block/vault/eject1;1,1;block/vault/eject2;1,1;block/vault/eject3;1","1483;block.vault.fall":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1484;block.vault.hit":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1485;block.vault.insert_item":"1;block/vault/insert;1","1486;block.vault.insert_item_fail":"1;block/vault/insert_fail;1","1487;block.vault.open_shutter":"1;block/vault/open_shutter;1","1488;block.vault.place":"1;block/vault/place1;1,1;block/vault/place2;1,1;block/vault/place3;1,1;block/vault/place4;1","1482;block.vault.reject_rewarded_player":"1;block/vault/reject_rewarded_player;1","1489;block.vault.step":"1;block/vault/step1;1,1;block/vault/step2;1,1;block/vault/step3;1,1;block/vault/step4;1,1;block/vault/step5;1,1;block/vault/step6;1,1;block/vault/step7;1,1;block/vault/step8;1","1518;block.vine.break":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1519;block.vine.fall":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","1520;block.vine.hit":"1;step/grass1;1,1;step/grass2;1,1;step/grass3;1,1;step/grass4;1,1;step/grass5;1,1;step/grass6;1","1521;block.vine.place":"0.9;block/vine/break1;1,0.9;block/vine/break2;1,0.9;block/vine/break3;1,0.9;block/vine/break4;1","1522;block.vine.step":"1;block/vine/climb1;1,1;block/vine/climb2;1,1;block/vine/climb3;1,1;block/vine/climb4;1,1;block/vine/climb5;1","995;block.wart_block.break":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","999;block.wart_block.fall":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","998;block.wart_block.hit":"0.7;block/netherwart/step1;1,0.7;block/netherwart/step2;1,0.7;block/netherwart/step3;1,0.7;block/netherwart/step4;1,0.7;block/netherwart/step5;1","997;block.wart_block.place":"0.8;block/netherwart/break1;1,0.8;block/netherwart/break2;1,0.8;block/netherwart/break3;1,0.8;block/netherwart/break4;1,0.8;block/netherwart/break5;1,0.8;block/netherwart/break6;1","996;block.wart_block.step":"1;block/netherwart/step1;1,1;block/netherwart/step2;1,1;block/netherwart/step3;1,1;block/netherwart/step4;1,1;block/netherwart/step5;1","1556;block.water.ambient":"1;liquid/water;1","990;block.weeping_vines.break":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","994;block.weeping_vines.fall":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","993;block.weeping_vines.hit":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","992;block.weeping_vines.place":"1;block/roots/break1;1,1;block/roots/break2;1,1;block/roots/break3;1,1;block/roots/break4;1,1;block/roots/break5;1,1;block/roots/break6;1","991;block.weeping_vines.step":"1;block/roots/step1;1,1;block/roots/step2;1,1;block/roots/step3;1,1;block/roots/step4;1,1;block/roots/step5;1","1559;block.wet_grass.break":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1560;block.wet_grass.fall":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1561;block.wet_grass.hit":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1562;block.wet_grass.place":"0.8;dig/wet_grass1;1,0.8;dig/wet_grass2;1,0.8;dig/wet_grass3;1,0.8;dig/wet_grass4;1","1563;block.wet_grass.step":"1;step/wet_grass1;1,1;step/wet_grass2;1,1;step/wet_grass3;1,1;step/wet_grass4;1,1;step/wet_grass5;1,1;step/wet_grass6;1","1564;block.wet_sponge.break":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1565;block.wet_sponge.dries":"1;random/fizz;1","1566;block.wet_sponge.fall":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1567;block.wet_sponge.hit":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1568;block.wet_sponge.place":"1;block/sponge/wet_sponge/break1;1,1;block/sponge/wet_sponge/break2;1,1;block/sponge/wet_sponge/break3;1,1;block/sponge/wet_sponge/break4;1","1569;block.wet_sponge.step":"1;block/sponge/wet_sponge/step1;1,1;block/sponge/wet_sponge/step2;1,1;block/sponge/wet_sponge/step3;1,1;block/sponge/wet_sponge/step4;1","1609;block.wood.break":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1610;block.wood.fall":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1611;block.wood.hit":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1612;block.wood.place":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","1613;block.wood.step":"1;step/wood1;1,1;step/wood2;1,1;step/wood3;1,1;step/wood4;1,1;step/wood5;1,1;step/wood6;1","1605;block.wooden_button.click_off":"0.3;random/wood_click;1","1606;block.wooden_button.click_on":"0.3;random/wood_click;1","1601;block.wooden_door.close":"0.9;block/wooden_door/close1;1,0.9;block/wooden_door/close2;1,0.9;block/wooden_door/close3;1","1602;block.wooden_door.open":"0.9;block/wooden_door/open1;1,0.9;block/wooden_door/open2;1","1607;block.wooden_pressure_plate.click_off":"0.3;random/click;1","1608;block.wooden_pressure_plate.click_on":"0.3;random/click;1","1603;block.wooden_trapdoor.close":"0.9;block/wooden_trapdoor/close1;1,0.9;block/wooden_trapdoor/close2;1,0.9;block/wooden_trapdoor/close3;1","1604;block.wooden_trapdoor.open":"0.9;block/wooden_trapdoor/open1;1,0.9;block/wooden_trapdoor/open2;1,0.9;block/wooden_trapdoor/open3;1,0.9;block/wooden_trapdoor/open4;1,0.9;block/wooden_trapdoor/open5;1","1614;block.wool.break":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1615;block.wool.fall":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1616;block.wool.hit":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1617;block.wool.place":"1;dig/cloth1;1,1;dig/cloth2;1,1;dig/cloth3;1,1;dig/cloth4;1","1618;block.wool.step":"1;step/cloth1;1,1;step/cloth2;1,1;step/cloth3;1,1;step/cloth4;1","1421;enchant.thorns.hit":"1;enchant/thorns/hit1;1,1;enchant/thorns/hit2;1,1;enchant/thorns/hit3;1,1;enchant/thorns/hit4;1","0;entity.allay.ambient_with_item":"0.3;mob/allay/idle_with_item1;1,0.3;mob/allay/idle_with_item2;1,0.3;mob/allay/idle_with_item3;1,0.3;mob/allay/idle_with_item4;1","1;entity.allay.ambient_without_item":"0.25;mob/allay/idle_without_item1;1,0.25;mob/allay/idle_without_item2;1,0.25;mob/allay/idle_without_item3;1,0.25;mob/allay/idle_without_item4;1","2;entity.allay.death":"0.6;mob/allay/death1;1,0.6;mob/allay/death2;1","3;entity.allay.hurt":"0.8;mob/allay/hurt1;1,0.8;mob/allay/hurt2;1","4;entity.allay.item_given":"0.1;mob/allay/item_given1;1,0.1;mob/allay/item_given2;1,0.1;mob/allay/item_given3;1,0.1;mob/allay/item_given4;1","5;entity.allay.item_taken":"0.1;mob/allay/item_taken1;1,0.1;mob/allay/item_taken2;1,0.1;mob/allay/item_taken3;1,0.1;mob/allay/item_taken4;1","6;entity.allay.item_thrown":"0.25;mob/allay/item_thrown1;1","57;entity.armadillo.ambient":"1;mob/armadillo/ambient1;1,1;mob/armadillo/ambient2;1,1;mob/armadillo/ambient3;1,1;mob/armadillo/ambient4;1,1;mob/armadillo/ambient5;1,1;mob/armadillo/ambient6;1,1;mob/armadillo/ambient7;1,1;mob/armadillo/ambient8;1","66;entity.armadillo.brush":"0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo1;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1,0.9;mob/armadillo/brush_armadillo2;1","59;entity.armadillo.death":"1;mob/armadillo/death1;1,1;mob/armadillo/death2;1,1;mob/armadillo/death3;1,1;mob/armadillo/death4;1","54;entity.armadillo.eat":"1;mob/armadillo/eat1;1,1;mob/armadillo/eat2;1,1;mob/armadillo/eat3;1","55;entity.armadillo.hurt":"1;mob/armadillo/hurt1;1,1;mob/armadillo/hurt2;1,1;mob/armadillo/hurt3;1,1;mob/armadillo/hurt4;1,1;mob/armadillo/hurt5;1","56;entity.armadillo.hurt_reduced":"1;mob/armadillo/hurt_reduced1;1,1;mob/armadillo/hurt_reduced2;1,1;mob/armadillo/hurt_reduced3;1,1;mob/armadillo/hurt_reduced4;1","61;entity.armadillo.land":"1;mob/armadillo/land1;1,1;mob/armadillo/land2;1,1;mob/armadillo/land3;1,1;mob/armadillo/land4;1","64;entity.armadillo.peek":"1;mob/armadillo/peek;1","60;entity.armadillo.roll":"1;mob/armadillo/roll1;1,1;mob/armadillo/roll2;1,1;mob/armadillo/roll3;1,1;mob/armadillo/roll4;1","62;entity.armadillo.scute_drop":"1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop1;1,1;mob/armadillo/scute_drop2;1,1;mob/armadillo/scute_drop2;1","58;entity.armadillo.step":"1;mob/armadillo/step1;1,1;mob/armadillo/step2;1,1;mob/armadillo/step3;1,1;mob/armadillo/step4;1,1;mob/armadillo/step5;1","63;entity.armadillo.unroll_finish":"1;mob/armadillo/unroll_finish1;1,1;mob/armadillo/unroll_finish2;1","65;entity.armadillo.unroll_start":"1;mob/armadillo/unroll_start;1","78;entity.armor_stand.break":"1;entity/armorstand/break1;1,1;entity/armorstand/break2;1,1;entity/armorstand/break3;1,1;entity/armorstand/break4;1","79;entity.armor_stand.fall":"1;dig/wood1;1,1;dig/wood2;1,1;dig/wood3;1,1;dig/wood4;1","80;entity.armor_stand.hit":"1;entity/armorstand/hit1;1,1;entity/armorstand/hit2;1,1;entity/armorstand/hit3;1,1;entity/armorstand/hit4;1","81;entity.armor_stand.place":"1;dig/stone1;1,1;dig/stone2;1,1;dig/stone3;1,1;dig/stone4;1","82;entity.arrow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","83;entity.arrow.hit_player":"1;random/successful_hit;1","84;entity.arrow.shoot":"1;random/bow;1","88;entity.axolotl.attack":"0.5;mob/axolotl/attack1;1,0.5;mob/axolotl/attack2;1,0.5;mob/axolotl/attack3;1,0.5;mob/axolotl/attack4;1","89;entity.axolotl.death":"1;mob/axolotl/death1;1,1;mob/axolotl/death2;1","90;entity.axolotl.hurt":"1;mob/axolotl/hurt1;1,1;mob/axolotl/hurt2;1,1;mob/axolotl/hurt3;1,1;mob/axolotl/hurt4;1","91;entity.axolotl.idle_air":"1;mob/axolotl/idle_air1;1,1;mob/axolotl/idle_air2;1,0.8;mob/axolotl/idle_air3;1,1;mob/axolotl/idle_air4;1,1;mob/axolotl/idle_air5;1","92;entity.axolotl.idle_water":"1;mob/axolotl/idle1;1,1;mob/axolotl/idle2;1,1;mob/axolotl/idle3;1,1;mob/axolotl/idle4;1,1;mob/axolotl/idle5;1","93;entity.axolotl.splash":"0.9;mob/dolphin/splash1;1,0.9;mob/dolphin/splash2;1,0.9;mob/dolphin/splash3;1","94;entity.axolotl.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","135;entity.bat.ambient":"1;mob/bat/idle1;1,1;mob/bat/idle2;1,1;mob/bat/idle3;1,1;mob/bat/idle4;1","136;entity.bat.death":"1;mob/bat/death;1","137;entity.bat.hurt":"1;mob/bat/hurt1;1,1;mob/bat/hurt2;1,1;mob/bat/hurt3;1,1;mob/bat/hurt4;1","138;entity.bat.loop":"1;mob/bat/loop;1","139;entity.bat.takeoff":"1;mob/bat/takeoff;1","144;entity.bee.death":"1;mob/bee/death1;1,1;mob/bee/death2;1","145;entity.bee.hurt":"1;mob/bee/hurt1;1,1;mob/bee/hurt1;1,1;mob/bee/hurt2;1,1;mob/bee/hurt2;1,1;mob/bee/hurt3;1,1;mob/bee/hurt3;1","147;entity.bee.loop":"0.6;mob/bee/loop1;1,0.6;mob/bee/loop2;1,0.65;mob/bee/loop3;1,0.65;mob/bee/loop4;1,0.7;mob/bee/loop5;1,0.75;mob/bee/loop5;1","146;entity.bee.loop_aggressive":"0.8;mob/bee/aggressive1;1,0.8;mob/bee/aggressive2;1,0.8;mob/bee/aggressive3;1","149;entity.bee.pollinate":"0.8;mob/bee/pollinate1;1,0.8;mob/bee/pollinate2;1,0.8;mob/bee/pollinate3;1,0.8;mob/bee/pollinate4;1","148;entity.bee.sting":"1;mob/bee/sting;1,1;mob/bee/sting;1","162;entity.blaze.ambient":"1;mob/blaze/breathe1;1,1;mob/blaze/breathe2;1,1;mob/blaze/breathe3;1,1;mob/blaze/breathe4;1","163;entity.blaze.burn":"1;fire/fire;1","164;entity.blaze.death":"1;mob/blaze/death;1","165;entity.blaze.hurt":"1;mob/blaze/hit1;1,1;mob/blaze/hit2;1,1;mob/blaze/hit3;1,1;mob/blaze/hit4;1","166;entity.blaze.shoot":"1;mob/ghast/fireball4;1","167;entity.boat.paddle_land":"1;entity/boat/paddle_land1;1,1;entity/boat/paddle_land2;1,1;entity/boat/paddle_land3;1,1;entity/boat/paddle_land4;1,1;entity/boat/paddle_land5;1,1;entity/boat/paddle_land6;1","168;entity.boat.paddle_water":"0.8;entity/boat/paddle_water1;1,0.8;entity/boat/paddle_water2;1,0.8;entity/boat/paddle_water3;1,0.8;entity/boat/paddle_water4;1,0.8;entity/boat/paddle_water5;1,0.8;entity/boat/paddle_water6;1,0.8;entity/boat/paddle_water7;1,0.8;entity/boat/paddle_water8;1","169;entity.bogged.ambient":"1;mob/bogged/ambient1;1,1;mob/bogged/ambient2;1,1;mob/bogged/ambient3;1,1;mob/bogged/ambient4;1","170;entity.bogged.death":"1;mob/bogged/death;1","171;entity.bogged.hurt":"1;mob/bogged/hurt1;1,1;mob/bogged/hurt2;1,1;mob/bogged/hurt3;1,1;mob/bogged/hurt4;1","172;entity.bogged.shear":"1;mob/sheep/shear;1","173;entity.bogged.step":"1;mob/bogged/step1;1,1;mob/bogged/step2;1,1;mob/bogged/step3;1,1;mob/bogged/step4;1","186;entity.breeze.charge":"1;mob/breeze/charge1;1,1;mob/breeze/charge2;1,1;mob/breeze/charge3;1","195;entity.breeze.death":"1;mob/breeze/death1;1,1;mob/breeze/death2;1","187;entity.breeze.deflect":"1;mob/breeze/deflect1;1,1;mob/breeze/deflect2;1,1;mob/breeze/deflect3;1","196;entity.breeze.hurt":"1;mob/breeze/hurt1;1,1;mob/breeze/hurt2;1,1;mob/breeze/hurt3;1","190;entity.breeze.idle_air":"1;mob/breeze/idle_air1;1,1;mob/breeze/idle_air2;1,1;mob/breeze/idle_air3;1,1;mob/breeze/idle_air4;1","189;entity.breeze.idle_ground":"1;mob/breeze/idle1;1,1;mob/breeze/idle2;1,1;mob/breeze/idle3;1,1;mob/breeze/idle4;1","188;entity.breeze.inhale":"1;mob/breeze/inhale1;1,1;mob/breeze/inhale1;1,1;mob/breeze/inhale2;1,1;mob/breeze/inhale2;1","192;entity.breeze.jump":"1;mob/breeze/jump1;1,1;mob/breeze/jump2;1","193;entity.breeze.land":"1;mob/breeze/land1;1,1;mob/breeze/land2;1","191;entity.breeze.shoot":"1;mob/breeze/shoot;1,1;mob/breeze/shoot;1,1;mob/breeze/shoot;1","194;entity.breeze.slide":"1;mob/breeze/slide1;1,1;mob/breeze/slide2;1,1;mob/breeze/slide3;1,1;mob/breeze/slide4;1","197;entity.breeze.whirl":"1;mob/breeze/whirl;1","198;entity.breeze.wind_burst":"1;mob/breeze/wind_burst1;1,1;mob/breeze/wind_burst2;1,1;mob/breeze/wind_burst3;1","233;entity.camel.ambient":"0.45;mob/camel/ambient1;1,0.45;mob/camel/ambient2;1,0.5;mob/camel/ambient3;1,0.5;mob/camel/ambient4;1,0.5;mob/camel/ambient5;1,0.5;mob/camel/ambient6;1,0.3;mob/camel/ambient7;1,0.3;mob/camel/ambient8;1","234;entity.camel.dash":"1;mob/camel/dash1;1,1;mob/camel/dash2;1,1;mob/camel/dash3;1,1;mob/camel/dash4;1,1;mob/camel/dash5;1,1;mob/camel/dash6;1","235;entity.camel.dash_ready":"0.25;mob/camel/dash_ready1;1","236;entity.camel.death":"1;mob/camel/death1;1,1;mob/camel/death2;1","237;entity.camel.eat":"0.2;mob/camel/eat1;1,0.2;mob/camel/eat2;1,0.2;mob/camel/eat3;1,0.2;mob/camel/eat4;1,0.2;mob/camel/eat5;1","238;entity.camel.hurt":"1;mob/camel/hurt1;1,1;mob/camel/hurt2;1,1;mob/camel/hurt3;1,1;mob/camel/hurt4;1","239;entity.camel.saddle":"1;entity.horse.saddle;1","240;entity.camel.sit":"0.3;mob/camel/sit1;1,0.3;mob/camel/sit2;1,0.3;mob/camel/sit3;1,0.3;mob/camel/sit4;1","241;entity.camel.stand":"0.3;mob/camel/stand1;1,0.3;mob/camel/stand2;1,0.3;mob/camel/stand3;1,0.3;mob/camel/stand4;1,0.3;mob/camel/stand5;1","242;entity.camel.step":"0.5;mob/camel/step1;1,0.5;mob/camel/step2;1,0.5;mob/camel/step3;1,0.5;mob/camel/step4;1,0.5;mob/camel/step5;1,0.5;mob/camel/step6;1","243;entity.camel.step_sand":"0.45;mob/camel/step_sand1;1,0.45;mob/camel/step_sand2;1,0.45;mob/camel/step_sand3;1,0.45;mob/camel/step_sand4;1,0.45;mob/camel/step_sand5;1,0.45;mob/camel/step_sand6;1","252;entity.cat.ambient":"0.6;mob/cat/meow1;1,0.5;mob/cat/meow2;1,0.6;mob/cat/meow3;1,0.5;mob/cat/meow4;1","257;entity.cat.beg_for_food":"0.7;mob/cat/beg1;1,0.7;mob/cat/beg2;1,0.7;mob/cat/beg3;1","254;entity.cat.death":"0.75;mob/cat/hitt1;1,0.75;mob/cat/hitt2;1,0.75;mob/cat/hitt3;1","255;entity.cat.eat":"1;mob/cat/eat1;1,1;mob/cat/eat2;1","256;entity.cat.hiss":"0.4;mob/cat/hiss1;1,0.4;mob/cat/hiss2;1,0.4;mob/cat/hiss3;1","258;entity.cat.hurt":"0.65;mob/cat/hitt1;1,0.65;mob/cat/hitt2;1,0.65;mob/cat/hitt3;1","259;entity.cat.purr":"0.7;mob/cat/purr1;1,0.7;mob/cat/purr2;1,0.7;mob/cat/purr3;1","260;entity.cat.purreow":"0.5;mob/cat/purreow1;1,0.5;mob/cat/purreow2;1","253;entity.cat.stray_ambient":"0.35;mob/cat/stray/idle1;1,0.35;mob/cat/stray/idle2;1,0.35;mob/cat/stray/idle3;1,0.35;mob/cat/stray/idle4;1","305;entity.chicken.ambient":"1;mob/chicken/say1;1,1;mob/chicken/say2;1,1;mob/chicken/say3;1","306;entity.chicken.death":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","307;entity.chicken.egg":"1;mob/chicken/plop;1","308;entity.chicken.hurt":"1;mob/chicken/hurt1;1,1;mob/chicken/hurt2;1","309;entity.chicken.step":"1;mob/chicken/step1;1,1;mob/chicken/step2;1","328;entity.cod.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","329;entity.cod.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","330;entity.cod.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","367;entity.cow.ambient":"1;mob/cow/say1;1,1;mob/cow/say2;1,1;mob/cow/say3;1,1;mob/cow/say4;1","368;entity.cow.death":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","369;entity.cow.hurt":"1;mob/cow/hurt1;1,1;mob/cow/hurt2;1,1;mob/cow/hurt3;1","370;entity.cow.milk":"1;entity/cow/milk1;1,1;entity/cow/milk2;1,1;entity/cow/milk3;1","371;entity.cow.step":"1;mob/cow/step1;1,1;mob/cow/step2;1,1;mob/cow/step3;1,1;mob/cow/step4;1","375;entity.creaking.activate":"1;mob/creaking/creaking_activate;1","374;entity.creaking.ambient":"1;mob/creaking/creaking_idle1;1,1;mob/creaking/creaking_idle2;1,1;mob/creaking/creaking_idle3;1,1;mob/creaking/creaking_idle4;1,1;mob/creaking/creaking_idle5;1,1;mob/creaking/creaking_idle6;1","377;entity.creaking.attack":"1;mob/creaking/creaking_attack1;1,1;mob/creaking/creaking_attack2;1,1;mob/creaking/creaking_attack3;1,1;mob/creaking/creaking_attack4;1","376;entity.creaking.deactivate":"1;mob/creaking/creaking_deactivate;1","378;entity.creaking.death":"1;mob/creaking/creaking_death;1","380;entity.creaking.freeze":"1;mob/creaking/creaking_freeze1;1,1;mob/creaking/creaking_freeze2;1,1;mob/creaking/creaking_freeze3;1,1;mob/creaking/creaking_freeze4;1","382;entity.creaking.spawn":"1;mob/creaking/creaking_spawn;1","379;entity.creaking.step":"1;mob/creaking/creaking_step1;1,1;mob/creaking/creaking_step2;1,1;mob/creaking/creaking_step3;1,1;mob/creaking/creaking_step4;1,1;mob/creaking/creaking_step5;1","383;entity.creaking.sway":"1;mob/creaking/creaking_sway1;1,1;mob/creaking/creaking_sway2;1,1;mob/creaking/creaking_sway3;1,1;mob/creaking/creaking_sway4;1","384;entity.creaking.twitch":"1;mob/creaking/creaking_twitch;1","381;entity.creaking.unfreeze":"1;mob/creaking/creaking_unfreeze1;1,1;mob/creaking/creaking_unfreeze2;1,1;mob/creaking/creaking_unfreeze3;1","393;entity.creeper.death":"1;mob/creeper/death;1","394;entity.creeper.hurt":"1;mob/creeper/say1;1,1;mob/creeper/say2;1,1;mob/creeper/say3;1,1;mob/creeper/say4;1","395;entity.creeper.primed":"1;random/fuse;1","432;entity.dolphin.ambient":"1;mob/dolphin/blowhole1;1,1;mob/dolphin/blowhole2;1,1;mob/dolphin/idle1;1,1;mob/dolphin/idle2;1,1;mob/dolphin/idle3;1,1;mob/dolphin/idle4;1,1;mob/dolphin/idle5;1,1;mob/dolphin/idle6;1","433;entity.dolphin.ambient_water":"0.8;mob/dolphin/idle_water1;1,1;mob/dolphin/idle_water2;1,1;mob/dolphin/idle_water3;1,1;mob/dolphin/idle_water4;1,1;mob/dolphin/idle_water5;1,1;mob/dolphin/idle_water6;1,0.75;mob/dolphin/idle_water7;1,0.75;mob/dolphin/idle_water8;1,1;mob/dolphin/idle_water9;1,0.8;mob/dolphin/idle_water10;1","434;entity.dolphin.attack":"1;mob/dolphin/attack1;1,1;mob/dolphin/attack2;1,1;mob/dolphin/attack3;1","435;entity.dolphin.death":"1;mob/dolphin/death1;1,1;mob/dolphin/death2;1","436;entity.dolphin.eat":"0.75;mob/dolphin/eat1;1,0.75;mob/dolphin/eat2;1,0.75;mob/dolphin/eat3;1","437;entity.dolphin.hurt":"1;mob/dolphin/hurt1;1,1;mob/dolphin/hurt2;1,1;mob/dolphin/hurt3;1","438;entity.dolphin.jump":"0.75;mob/dolphin/jump1;1,0.75;mob/dolphin/jump2;1,0.75;mob/dolphin/jump3;1","439;entity.dolphin.play":"1;mob/dolphin/play1;1,1;mob/dolphin/play2;1","440;entity.dolphin.splash":"1;mob/dolphin/splash1;1,1;mob/dolphin/splash2;1,1;mob/dolphin/splash3;1","441;entity.dolphin.swim":"1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1,1;mob/dolphin/swim1;1,1;mob/dolphin/swim2;1,1;mob/dolphin/swim3;1,1;mob/dolphin/swim4;1","442;entity.donkey.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","443;entity.donkey.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","444;entity.donkey.chest":"1;mob/chicken/plop;1","445;entity.donkey.death":"1;mob/horse/donkey/death;1","446;entity.donkey.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","447;entity.donkey.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","448;entity.donkey.jump":"1;mob/horse/jump;1","491;entity.dragon_fireball.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","466;entity.drowned.ambient":"0.9;mob/drowned/idle1;1,0.9;mob/drowned/idle2;1,0.9;mob/drowned/idle3;1,0.9;mob/drowned/idle4;1,0.9;mob/drowned/idle5;1","467;entity.drowned.ambient_water":"0.9;mob/drowned/water/idle1;1,0.9;mob/drowned/water/idle2;1,0.9;mob/drowned/water/idle3;1,0.9;mob/drowned/water/idle4;1","468;entity.drowned.death":"0.9;mob/drowned/death1;1,0.9;mob/drowned/death2;1","469;entity.drowned.death_water":"0.9;mob/drowned/water/death1;1,0.9;mob/drowned/water/death2;1","470;entity.drowned.hurt":"0.9;mob/drowned/hurt1;1,0.9;mob/drowned/hurt2;1,0.9;mob/drowned/hurt3;1","471;entity.drowned.hurt_water":"0.9;mob/drowned/water/hurt1;1,0.9;mob/drowned/water/hurt2;1,0.9;mob/drowned/water/hurt3;1","472;entity.drowned.shoot":"1;item/trident/throw1;1,1;item/trident/throw2;1","473;entity.drowned.step":"1;mob/drowned/step1;1,1;mob/drowned/step2;1,1;mob/drowned/step3;1,1;mob/drowned/step4;1,1;mob/drowned/step5;1","474;entity.drowned.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1,1;liquid/swim5;1","476;entity.egg.throw":"1;random/bow;1","477;entity.elder_guardian.ambient":"1;mob/guardian/elder_idle1;1,1;mob/guardian/elder_idle2;1,1;mob/guardian/elder_idle3;1,1;mob/guardian/elder_idle4;1","478;entity.elder_guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","479;entity.elder_guardian.curse":"1;mob/guardian/curse;1","480;entity.elder_guardian.death":"1;mob/guardian/elder_death;1","481;entity.elder_guardian.death_land":"1;mob/guardian/land_death;1","482;entity.elder_guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","483;entity.elder_guardian.hurt":"1;mob/guardian/elder_hit1;1,1;mob/guardian/elder_hit2;1,1;mob/guardian/elder_hit3;1,1;mob/guardian/elder_hit4;1","484;entity.elder_guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","489;entity.ender_dragon.ambient":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","490;entity.ender_dragon.death":"1;mob/enderdragon/end;1","492;entity.ender_dragon.flap":"1;mob/enderdragon/wings1;1,1;mob/enderdragon/wings2;1,1;mob/enderdragon/wings3;1,1;mob/enderdragon/wings4;1,1;mob/enderdragon/wings5;1,1;mob/enderdragon/wings6;1","493;entity.ender_dragon.growl":"1;mob/enderdragon/growl1;1,1;mob/enderdragon/growl2;1,1;mob/enderdragon/growl3;1,1;mob/enderdragon/growl4;1","494;entity.ender_dragon.hurt":"1;mob/enderdragon/hit1;1,1;mob/enderdragon/hit2;1,1;mob/enderdragon/hit3;1,1;mob/enderdragon/hit4;1","495;entity.ender_dragon.shoot":"1;mob/ghast/fireball4;1","496;entity.ender_eye.death":"1.3;entity/endereye/dead1;1,1.3;entity/endereye/dead2;1","497;entity.ender_eye.launch":"1;entity/endereye/endereye_launch1;1,1;entity/endereye/endereye_launch2;1","508;entity.ender_pearl.throw":"1;random/bow;1","498;entity.enderman.ambient":"1;mob/endermen/idle1;1,1;mob/endermen/idle2;1,1;mob/endermen/idle3;1,1;mob/endermen/idle4;1,1;mob/endermen/idle5;1","499;entity.enderman.death":"1;mob/endermen/death;1","500;entity.enderman.hurt":"1;mob/endermen/hit1;1,1;mob/endermen/hit2;1,1;mob/endermen/hit3;1,1;mob/endermen/hit4;1","501;entity.enderman.scream":"1;mob/endermen/scream1;1,1;mob/endermen/scream2;1,1;mob/endermen/scream3;1,1;mob/endermen/scream4;1","502;entity.enderman.stare":"1;mob/endermen/stare;1","503;entity.enderman.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","504;entity.endermite.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","505;entity.endermite.death":"1;mob/silverfish/kill;1","506;entity.endermite.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","507;entity.endermite.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","512;entity.evoker.ambient":"1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1,1;mob/evocation_illager/idle3;1,1;mob/evocation_illager/idle4;1","513;entity.evoker.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","514;entity.evoker.celebrate":"1;mob/evocation_illager/celebrate;1,1;mob/evocation_illager/idle1;1,1;mob/evocation_illager/idle2;1","515;entity.evoker.death":"1;mob/evocation_illager/death1;1,1;mob/evocation_illager/death2;1","517;entity.evoker.hurt":"1;mob/evocation_illager/hurt1;1,1;mob/evocation_illager/hurt2;1","518;entity.evoker.prepare_attack":"1;mob/evocation_illager/prepare_attack1;1,1;mob/evocation_illager/prepare_attack2;1","519;entity.evoker.prepare_summon":"1;mob/evocation_illager/prepare_summon;1","520;entity.evoker.prepare_wololo":"1;mob/evocation_illager/prepare_wololo;1","516;entity.evoker_fangs.attack":"1;mob/evocation_illager/fangs;1","521;entity.experience_bottle.throw":"1;random/bow;1","522;entity.experience_orb.pickup":"1;random/orb;1","531;entity.firework_rocket.blast":"1;fireworks/blast1;1","532;entity.firework_rocket.blast_far":"1;fireworks/blast_far1;1","533;entity.firework_rocket.large_blast":"1;fireworks/largeblast1;1","534;entity.firework_rocket.large_blast_far":"1;fireworks/largeblast_far1;1","535;entity.firework_rocket.launch":"1;fireworks/launch1;1","536;entity.firework_rocket.shoot":"1;random/bow;1","537;entity.firework_rocket.twinkle":"1;fireworks/twinkle1;1","538;entity.firework_rocket.twinkle_far":"1;fireworks/twinkle_far1;1","541;entity.fish.swim":"1;entity/fish/swim1;1,1;entity/fish/swim2;1,1;entity/fish/swim3;1,1;entity/fish/swim4;1,1;entity/fish/swim5;1,1;entity/fish/swim6;1,1;entity/fish/swim7;1","542;entity.fishing_bobber.retrieve":"1;entity/bobber/retrieve1;1,1;entity/bobber/retrieve2;1","543;entity.fishing_bobber.splash":"1;random/splash;1","544;entity.fishing_bobber.throw":"1;entity/bobber/castfast;1","551;entity.fox.aggro":"0.65;mob/fox/aggro1;1,0.65;mob/fox/aggro2;1,0.65;mob/fox/aggro3;1,0.65;mob/fox/aggro4;1,0.65;mob/fox/aggro5;1,0.65;mob/fox/aggro6;1,0.65;mob/fox/aggro7;1","552;entity.fox.ambient":"0.8;mob/fox/idle1;1,1;mob/fox/idle2;1,1;mob/fox/idle3;1,1;mob/fox/idle4;1,1;mob/fox/idle5;1,1;mob/fox/idle6;1","553;entity.fox.bite":"0.6;mob/fox/bite1;1,0.6;mob/fox/bite2;1,0.6;mob/fox/bite3;1","554;entity.fox.death":"0.9;mob/fox/death1;1,0.9;mob/fox/death2;1","555;entity.fox.eat":"0.65;mob/fox/eat1;1,0.65;mob/fox/eat2;1,0.65;mob/fox/eat3;1","556;entity.fox.hurt":"0.75;mob/fox/hurt1;1,0.75;mob/fox/hurt2;1,0.75;mob/fox/hurt3;1,0.75;mob/fox/hurt4;1","557;entity.fox.screech":"0.45;mob/fox/screech1;1,0.45;mob/fox/screech2;1,0.45;mob/fox/screech3;1,0.4;mob/fox/screech4;1","558;entity.fox.sleep":"0.8;mob/fox/sleep1;1,0.8;mob/fox/sleep2;1,0.8;mob/fox/sleep3;1,0.8;mob/fox/sleep4;1,0.8;mob/fox/sleep5;1","559;entity.fox.sniff":"0.6;mob/fox/sniff1;1,0.6;mob/fox/sniff2;1,0.6;mob/fox/sniff3;1,0.6;mob/fox/sniff4;1","560;entity.fox.spit":"0.7;mob/fox/spit1;1,0.7;mob/fox/spit2;1,0.7;mob/fox/spit3;1","561;entity.fox.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","583;entity.frog.ambient":"0.8;mob/frog/idle1;1,1;mob/frog/idle2;1,0.9;mob/frog/idle3;1,0.8;mob/frog/idle4;1,0.85;mob/frog/idle5;1,0.9;mob/frog/idle6;1,0.7;mob/frog/idle7;1,0.3;mob/frog/idle8;1","584;entity.frog.death":"1;mob/frog/death1;1,1;mob/frog/death2;1,1;mob/frog/death3;1","585;entity.frog.eat":"0.6;mob/frog/eat1;1,0.6;mob/frog/eat1;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat2;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat3;1,0.6;mob/frog/eat4;1,0.6;mob/frog/eat4;1","586;entity.frog.hurt":"1;mob/frog/hurt1;1,1;mob/frog/hurt2;1,1;mob/frog/hurt3;1,1;mob/frog/hurt4;1,1;mob/frog/hurt5;1","587;entity.frog.lay_spawn":"0.25;mob/frog/lay_spawn1;1,0.25;mob/frog/lay_spawn2;1","588;entity.frog.long_jump":"0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump1;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump2;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump3;1,0.12;mob/frog/long_jump4;1,0.12;mob/frog/long_jump4;1","589;entity.frog.step":"1;mob/frog/step1;1,1;mob/frog/step2;1,1;mob/frog/step3;1,1;mob/frog/step4;1","590;entity.frog.tongue":"0.5;mob/frog/tongue1;1,0.5;mob/frog/tongue2;1,0.5;mob/frog/tongue3;1,0.5;mob/frog/tongue4;1","597;entity.generic.big_fall":"1;damage/fallbig;1","598;entity.generic.burn":"1;random/fizz;1","599;entity.generic.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","600;entity.generic.drink":"1;random/drink;1","601;entity.generic.eat":"1;random/eat1;1,1;random/eat2;1,1;random/eat3;1","602;entity.generic.explode":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","603;entity.generic.extinguish_fire":"1;random/fizz;1","604;entity.generic.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","605;entity.generic.small_fall":"1;damage/fallsmall;1","606;entity.generic.splash":"1;liquid/splash;1,1;liquid/splash2;1","607;entity.generic.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","608;entity.ghast.ambient":"1;mob/ghast/moan1;1,1;mob/ghast/moan2;1,1;mob/ghast/moan3;1,1;mob/ghast/moan4;1,1;mob/ghast/moan5;1,1;mob/ghast/moan6;1,1;mob/ghast/moan7;1","609;entity.ghast.death":"1;mob/ghast/death;1","610;entity.ghast.hurt":"1;mob/ghast/scream1;1,1;mob/ghast/scream2;1,1;mob/ghast/scream3;1,1;mob/ghast/scream4;1,1;mob/ghast/scream5;1","611;entity.ghast.scream":"1;mob/ghast/affectionate_scream;1","612;entity.ghast.shoot":"1;mob/ghast/fireball4;1","613;entity.ghast.warn":"1;mob/ghast/charge;1","625;entity.glow_item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","626;entity.glow_item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","627;entity.glow_item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","628;entity.glow_item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","629;entity.glow_item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","630;entity.glow_squid.ambient":"1;entity/glow_squid/ambient1;1,1;entity/glow_squid/ambient2;1,1;entity/glow_squid/ambient3;1,1;entity/glow_squid/ambient4;1,1;entity/glow_squid/ambient5;1","631;entity.glow_squid.death":"1;entity/glow_squid/death1;1,1;entity/glow_squid/death2;1,1;entity/glow_squid/death3;1","632;entity.glow_squid.hurt":"1;entity/glow_squid/hurt1;1,1;entity/glow_squid/hurt2;1,1;entity/glow_squid/hurt3;1,1;entity/glow_squid/hurt4;1","633;entity.glow_squid.squirt":"1;entity/glow_squid/squirt1;1,1;entity/glow_squid/squirt2;1,1;entity/glow_squid/squirt3;1","634;entity.goat.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1","635;entity.goat.death":"0.65;mob/goat/death1;1,0.65;mob/goat/death2;1,0.65;mob/goat/death3;1,0.65;mob/goat/death4;1,0.65;mob/goat/death5;1","636;entity.goat.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","642;entity.goat.horn_break":"0.9;mob/goat/horn_break1;1,0.9;mob/goat/horn_break2;1,0.9;mob/goat/horn_break3;1,0.9;mob/goat/horn_break4;1","637;entity.goat.hurt":"0.65;mob/goat/hurt1;1,0.65;mob/goat/hurt2;1,0.65;mob/goat/hurt3;1,0.65;mob/goat/hurt4;1","638;entity.goat.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","639;entity.goat.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1","640;entity.goat.prepare_ram":"0.8;mob/goat/pre_ram1;1,0.8;mob/goat/pre_ram2;1,0.8;mob/goat/pre_ram3;1,0.8;mob/goat/pre_ram4;1","641;entity.goat.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","643;entity.goat.screaming.ambient":"0.82;mob/goat/idle1;1,0.82;mob/goat/idle2;1,0.84;mob/goat/idle3;1,0.84;mob/goat/idle4;1,0.84;mob/goat/idle5;1,0.84;mob/goat/idle6;1,0.83;mob/goat/idle7;1,0.84;mob/goat/idle8;1,0.9;mob/goat/scream1;1,0.9;mob/goat/scream2;1,0.9;mob/goat/scream3;1,0.9;mob/goat/scream4;1,0.9;mob/goat/scream5;1,0.9;mob/goat/scream6;1,0.9;mob/goat/scream7;1,0.9;mob/goat/scream8;1,0.9;mob/goat/scream9;1","644;entity.goat.screaming.death":"0.65;mob/goat/screaming_death1;1,0.65;mob/goat/screaming_death2;1,0.65;mob/goat/screaming_death3;1","645;entity.goat.screaming.eat":"1;mob/goat/eat1;1,1;mob/goat/eat2;1,1;mob/goat/eat3;1","646;entity.goat.screaming.hurt":"0.65;mob/goat/screaming_hurt1;1,0.65;mob/goat/screaming_hurt2;1,0.65;mob/goat/screaming_hurt3;1","647;entity.goat.screaming.long_jump":"0.8;mob/goat/jump1;1,0.8;mob/goat/jump1;1,0.8;mob/goat/jump2;1,0.8;mob/goat/jump2;1","648;entity.goat.screaming.milk":"1;mob/goat/screaming_milk1;1,1;mob/goat/screaming_milk2;1,1;mob/goat/screaming_milk3;1,1;mob/goat/screaming_milk4;1,1;mob/goat/screaming_milk5;1","649;entity.goat.screaming.prepare_ram":"0.8;mob/goat/screaming_pre_ram1;1,0.8;mob/goat/screaming_pre_ram2;1,0.8;mob/goat/screaming_pre_ram3;1,0.8;mob/goat/screaming_pre_ram4;1,0.8;mob/goat/screaming_pre_ram5;1","650;entity.goat.screaming.ram_impact":"0.8;mob/goat/impact1;1,0.8;mob/goat/impact2;1,0.8;mob/goat/impact2;1","651;entity.goat.step":"1;mob/goat/step1;1,1;mob/goat/step2;1,1;mob/goat/step3;1,1;mob/goat/step4;1,1;mob/goat/step5;1,1;mob/goat/step6;1","664;entity.guardian.ambient":"0.1;entity/guardian/ambient1;1,0.1;entity/guardian/ambient2;1,0.1;entity/guardian/ambient3;1,0.1;entity/guardian/ambient4;1","665;entity.guardian.ambient_land":"1;mob/guardian/land_idle1;1,1;mob/guardian/land_idle2;1,1;mob/guardian/land_idle3;1,1;mob/guardian/land_idle4;1","666;entity.guardian.attack":"1;mob/guardian/attack_loop;1","667;entity.guardian.death":"1;mob/guardian/guardian_death;1","668;entity.guardian.death_land":"1;mob/guardian/land_death;1","669;entity.guardian.flop":"1;mob/guardian/flop1;1,1;mob/guardian/flop2;1,1;mob/guardian/flop3;1,1;mob/guardian/flop4;1","670;entity.guardian.hurt":"1;mob/guardian/guardian_hit1;1,1;mob/guardian/guardian_hit2;1,1;mob/guardian/guardian_hit3;1,1;mob/guardian/guardian_hit4;1","671;entity.guardian.hurt_land":"1;mob/guardian/land_hit1;1,1;mob/guardian/land_hit2;1,1;mob/guardian/land_hit3;1,1;mob/guardian/land_hit4;1","714;entity.hoglin.ambient":"0.65;mob/hoglin/idle1;1,0.9;mob/hoglin/idle2;1,0.9;mob/hoglin/idle3;1,0.7;mob/hoglin/idle4;1,0.9;mob/hoglin/idle5;1,0.9;mob/hoglin/idle6;1,0.9;mob/hoglin/idle7;1,0.9;mob/hoglin/idle8;1,0.9;mob/hoglin/idle9;1,0.9;mob/hoglin/idle10;1,0.9;mob/hoglin/idle11;1","715;entity.hoglin.angry":"1;mob/hoglin/angry1;1,1;mob/hoglin/angry2;1,1;mob/hoglin/angry3;1,1;mob/hoglin/angry4;1,1;mob/hoglin/angry5;1,1;mob/hoglin/angry6;1","716;entity.hoglin.attack":"0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack1;1,0.8;mob/hoglin/attack2;1,0.8;mob/hoglin/attack2;1","717;entity.hoglin.converted_to_zombified":"0.8;mob/hoglin/converted1;1,0.8;mob/hoglin/converted2;1","718;entity.hoglin.death":"0.9;mob/hoglin/death1;1,0.9;mob/hoglin/death2;1,0.9;mob/hoglin/death3;1","719;entity.hoglin.hurt":"0.8;mob/hoglin/hurt1;1,0.8;mob/hoglin/hurt2;1,0.8;mob/hoglin/hurt3;1,0.8;mob/hoglin/hurt4;1","720;entity.hoglin.retreat":"0.8;mob/hoglin/idle11;1,0.7;mob/hoglin/retreat1;1,0.8;mob/hoglin/retreat2;1,0.8;mob/hoglin/retreat3;1","721;entity.hoglin.step":"1;mob/hoglin/step1;1,1;mob/hoglin/step2;1,1;mob/hoglin/step3;1,1;mob/hoglin/step4;1,1;mob/hoglin/step5;1,1;mob/hoglin/step6;1","738;entity.horse.ambient":"1;mob/horse/idle1;1,1;mob/horse/idle2;1,1;mob/horse/idle3;1","739;entity.horse.angry":"1;mob/horse/angry1;1","740;entity.horse.armor":"0.5;mob/horse/armor;1","741;entity.horse.breathe":"1;mob/horse/breathe1;1,1;mob/horse/breathe2;1,1;mob/horse/breathe3;1","742;entity.horse.death":"1;mob/horse/death;1","743;entity.horse.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","744;entity.horse.gallop":"1;mob/horse/gallop1;1,1;mob/horse/gallop2;1,1;mob/horse/gallop3;1,1;mob/horse/gallop4;1","745;entity.horse.hurt":"1;mob/horse/hit1;1,1;mob/horse/hit2;1,1;mob/horse/hit3;1,1;mob/horse/hit4;1","746;entity.horse.jump":"1;mob/horse/jump;1","747;entity.horse.land":"1;mob/horse/land;1","748;entity.horse.saddle":"1;mob/horse/leather;1","749;entity.horse.step":"1;mob/horse/soft1;1,1;mob/horse/soft2;1,1;mob/horse/soft3;1,1;mob/horse/soft4;1,1;mob/horse/soft5;1,1;mob/horse/soft6;1","750;entity.horse.step_wood":"1;mob/horse/wood1;1,1;mob/horse/wood2;1,1;mob/horse/wood3;1,1;mob/horse/wood4;1,1;mob/horse/wood5;1,1;mob/horse/wood6;1","751;entity.hostile.big_fall":"1;damage/fallbig;1","752;entity.hostile.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","753;entity.hostile.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","754;entity.hostile.small_fall":"1;damage/fallsmall;1","755;entity.hostile.splash":"1;liquid/splash;1,1;liquid/splash2;1","756;entity.hostile.swim":"1;liquid/swim1;1,1;liquid/swim2;1,1;liquid/swim3;1,1;liquid/swim4;1","757;entity.husk.ambient":"1;mob/husk/idle1;1,1;mob/husk/idle2;1,1;mob/husk/idle3;1","758;entity.husk.converted_to_zombie":"0.8;mob/husk/convert1;1,0.8;mob/husk/convert2;1","759;entity.husk.death":"1;mob/husk/death1;1,1;mob/husk/death2;1","760;entity.husk.hurt":"1;mob/husk/hurt1;1,1;mob/husk/hurt2;1","761;entity.husk.step":"1;mob/husk/step1;1,1;mob/husk/step2;1,1;mob/husk/step3;1,1;mob/husk/step4;1,1;mob/husk/step5;1","762;entity.illusioner.ambient":"1;mob/illusion_illager/idle1;1,1;mob/illusion_illager/idle2;1,1;mob/illusion_illager/idle3;1,1;mob/illusion_illager/idle4;1","763;entity.illusioner.cast_spell":"1;mob/evocation_illager/cast1;1,1;mob/evocation_illager/cast2;1","764;entity.illusioner.death":"1;mob/illusion_illager/death1;1,1;mob/illusion_illager/death2;1","765;entity.illusioner.hurt":"1;mob/illusion_illager/hurt1;1,1;mob/illusion_illager/hurt2;1,1;mob/illusion_illager/hurt3;1","766;entity.illusioner.mirror_move":"1;mob/illusion_illager/mirror_move1;1,1;mob/illusion_illager/mirror_move2;1","767;entity.illusioner.prepare_blindness":"1;mob/illusion_illager/prepare_blind;1","768;entity.illusioner.prepare_mirror":"1;mob/illusion_illager/prepare_mirror;1","772;entity.iron_golem.attack":"1;mob/irongolem/throw;1","773;entity.iron_golem.damage":"0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage1;1,0.8;mob/irongolem/damage2;1,0.8;mob/irongolem/damage2;1","774;entity.iron_golem.death":"1;mob/irongolem/death;1","775;entity.iron_golem.hurt":"1;mob/irongolem/hit1;1,1;mob/irongolem/hit2;1,1;mob/irongolem/hit3;1,1;mob/irongolem/hit4;1","776;entity.iron_golem.repair":"1;mob/irongolem/repair;1","777;entity.iron_golem.step":"1;mob/irongolem/walk1;1,1;mob/irongolem/walk2;1,1;mob/irongolem/walk3;1,1;mob/irongolem/walk4;1","785;entity.item.break":"1;random/break;1","786;entity.item.pickup":"1;random/pop;1","780;entity.item_frame.add_item":"1;entity/itemframe/add_item1;1,1;entity/itemframe/add_item2;1,1;entity/itemframe/add_item3;1,1;entity/itemframe/add_item4;1","781;entity.item_frame.break":"1;entity/itemframe/break1;1,1;entity/itemframe/break2;1,1;entity/itemframe/break3;1","782;entity.item_frame.place":"1;entity/itemframe/place1;1,1;entity/itemframe/place2;1,1;entity/itemframe/place3;1,1;entity/itemframe/place4;1","783;entity.item_frame.remove_item":"1;entity/itemframe/remove_item1;1,1;entity/itemframe/remove_item2;1,1;entity/itemframe/remove_item3;1,1;entity/itemframe/remove_item4;1","784;entity.item_frame.rotate_item":"1;entity/itemframe/rotate_item1;1,1;entity/itemframe/rotate_item2;1,1;entity/itemframe/rotate_item3;1,1;entity/itemframe/rotate_item4;1","802;entity.leash_knot.break":"1;entity/leashknot/break1;1,1;entity/leashknot/break2;1,1;entity/leashknot/break3;1","803;entity.leash_knot.place":"1;entity/leashknot/place1;1,1;entity/leashknot/place2;1,1;entity/leashknot/place3;1","805;entity.lightning_bolt.impact":"1;random/explode1;1,1;random/explode2;1,1;random/explode3;1,1;random/explode4;1","806;entity.lightning_bolt.thunder":"1;ambient/weather/thunder1;1,1;ambient/weather/thunder2;1,1;ambient/weather/thunder3;1","807;entity.lingering_potion.throw":"1;random/bow;1","808;entity.llama.ambient":"1;mob/llama/idle1;1,1;mob/llama/idle2;1,1;mob/llama/idle3;1,1;mob/llama/idle4;1,1;mob/llama/idle5;1","809;entity.llama.angry":"1;mob/llama/angry1;1","810;entity.llama.chest":"1;mob/chicken/plop;1","811;entity.llama.death":"1;mob/llama/death1;1,1;mob/llama/death2;1","812;entity.llama.eat":"1;mob/llama/eat1;1,1;mob/llama/eat2;1,1;mob/llama/eat3;1","813;entity.llama.hurt":"1;mob/llama/hurt1;1,1;mob/llama/hurt2;1,1;mob/llama/hurt3;1","814;entity.llama.spit":"1;mob/llama/spit1;1,1;mob/llama/spit2;1","815;entity.llama.step":"1;mob/llama/step1;1,1;mob/llama/step2;1,1;mob/llama/step3;1,1;mob/llama/step4;1,1;mob/llama/step5;1","816;entity.llama.swag":"1;mob/llama/swag;1","827;entity.magma_cube.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","817;entity.magma_cube.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","828;entity.magma_cube.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","829;entity.magma_cube.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","830;entity.magma_cube.jump":"1;mob/magmacube/jump1;1,1;mob/magmacube/jump2;1,1;mob/magmacube/jump3;1,1;mob/magmacube/jump4;1","831;entity.magma_cube.squish":"1;mob/magmacube/big1;1,1;mob/magmacube/big2;1,1;mob/magmacube/big3;1,1;mob/magmacube/big4;1","832;entity.magma_cube.squish_small":"1;mob/magmacube/small1;1,1;mob/magmacube/small2;1,1;mob/magmacube/small3;1,1;mob/magmacube/small4;1,1;mob/magmacube/small5;1","848;entity.minecart.inside":"1;minecart/inside;1","847;entity.minecart.inside.underwater":"1;minecart/inside_underwater1;1,1;minecart/inside_underwater2;1,1;minecart/inside_underwater3;1","849;entity.minecart.riding":"1;minecart/base;1","850;entity.mooshroom.convert":"0.75;mob/mooshroom/convert1;1,0.75;mob/mooshroom/convert2;1","851;entity.mooshroom.eat":"1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat1;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat2;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat3;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1,1;mob/mooshroom/eat4;1","852;entity.mooshroom.milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","854;entity.mooshroom.shear":"1;mob/sheep/shear;1","853;entity.mooshroom.suspicious_milk":"1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk1;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk2;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1,1;mob/mooshroom/milk3;1","885;entity.mule.ambient":"1;mob/horse/donkey/idle1;1,1;mob/horse/donkey/idle2;1,1;mob/horse/donkey/idle3;1","886;entity.mule.angry":"1;mob/horse/donkey/angry1;1,1;mob/horse/donkey/angry2;1","887;entity.mule.chest":"1;mob/chicken/plop;1","888;entity.mule.death":"1;mob/horse/donkey/death;1","889;entity.mule.eat":"1;entity/horse/eat1;1,1;entity/horse/eat2;1,1;entity/horse/eat3;1,1;entity/horse/eat4;1,1;entity/horse/eat5;1","890;entity.mule.hurt":"1;mob/horse/donkey/hit1;1,1;mob/horse/donkey/hit2;1,1;mob/horse/donkey/hit3;1","891;entity.mule.jump":"1;mob/horse/jump;1","1033;entity.ocelot.ambient":"0.3;mob/cat/ocelot/idle1;1,0.3;mob/cat/ocelot/idle2;1,0.35;mob/cat/ocelot/idle3;1,0.45;mob/cat/ocelot/idle4;1","1034;entity.ocelot.death":"0.45;mob/cat/ocelot/death1;1,0.45;mob/cat/ocelot/death2;1,0.45;mob/cat/ocelot/death3;1","1032;entity.ocelot.hurt":"0.45;mob/cat/hitt1;1,0.45;mob/cat/hitt2;1,0.45;mob/cat/hitt3;1","1036;entity.painting.break":"1;entity/painting/break1;1,1;entity/painting/break2;1,1;entity/painting/break3;1","1037;entity.painting.place":"1;entity/painting/place1;1,1;entity/painting/place2;1,1;entity/painting/place3;1,1;entity/painting/place4;1","1046;entity.panda.aggressive_ambient":"1;mob/panda/aggressive/aggressive1;1,1;mob/panda/aggressive/aggressive2;1,1;mob/panda/aggressive/aggressive3;1,0.8;mob/panda/aggressive/aggressive4;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1041;entity.panda.ambient":"1;mob/panda/idle1;1,1;mob/panda/idle2;1,1;mob/panda/idle3;1,1;mob/panda/idle4;1,1;mob/panda/nosebreath1;1,1;mob/panda/nosebreath2;1,1;mob/panda/nosebreath3;1,1;mob/panda/pant1;1,1;mob/panda/pant2;1","1049;entity.panda.bite":"1;mob/panda/bite1;1,1;mob/panda/bite2;1,1;mob/panda/bite3;1","1045;entity.panda.cant_breed":"1;mob/panda/cant_breed1;1,1;mob/panda/cant_breed2;1,1;mob/panda/cant_breed3;1,1;mob/panda/cant_breed4;1,1;mob/panda/cant_breed5;1","1042;entity.panda.death":"0.82;mob/panda/death1;1,0.82;mob/panda/death2;1,0.82;mob/panda/death3;1,0.82;mob/panda/death4;1","1043;entity.panda.eat":"1;mob/panda/eat1;1,1;mob/panda/eat2;1,1;mob/panda/eat3;1,1;mob/panda/eat4;1,0.85;mob/panda/eat5;1,1;mob/panda/eat6;1,1;mob/panda/eat7;1,1;mob/panda/eat8;1,1;mob/panda/eat9;1,1;mob/panda/eat10;1,1;mob/panda/eat11;1,1;mob/panda/eat12;1","1048;entity.panda.hurt":"0.82;mob/panda/hurt1;1,0.82;mob/panda/hurt2;1,0.82;mob/panda/hurt3;1,0.82;mob/panda/hurt4;1,0.82;mob/panda/hurt5;1,0.82;mob/panda/hurt6;1","1039;entity.panda.pre_sneeze":"1;mob/panda/pre_sneeze;1","1040;entity.panda.sneeze":"1;mob/panda/sneeze1;1,1;mob/panda/sneeze2;1,1;mob/panda/sneeze3;1","1044;entity.panda.step":"1;mob/panda/step1;1,1;mob/panda/step2;1,1;mob/panda/step3;1,1;mob/panda/step4;1,1;mob/panda/step5;1","1047;entity.panda.worried_ambient":"1;mob/panda/pant2;1,1;mob/panda/worried/worried2;1,1;mob/panda/worried/worried3;1,1;mob/panda/worried/worried4;1,1;mob/panda/worried/worried5;1,1;mob/panda/worried/worried6;1","1050;entity.parrot.ambient":"0.7;mob/parrot/idle1;1,0.7;mob/parrot/idle2;1,0.7;mob/parrot/idle3;1,0.7;mob/parrot/idle4;1,0.7;mob/parrot/idle5;1,0.7;mob/parrot/idle6;1","1051;entity.parrot.death":"1;mob/parrot/death1;1,1;mob/parrot/death2;1,1;mob/parrot/death3;1,1;mob/parrot/death4;1","1052;entity.parrot.eat":"1;mob/parrot/eat1;1,1;mob/parrot/eat2;1,1;mob/parrot/eat3;1","1053;entity.parrot.fly":"1;mob/parrot/fly1;1,1;mob/parrot/fly2;1,1;mob/parrot/fly3;1,1;mob/parrot/fly4;1,1;mob/parrot/fly5;1,1;mob/parrot/fly6;1,1;mob/parrot/fly7;1,1;mob/parrot/fly8;1","1054;entity.parrot.hurt":"1;mob/parrot/hurt1;1,1;mob/parrot/hurt1;1,1;mob/parrot/hurt2;1","1055;entity.parrot.imitate.blaze":"0.4;entity.blaze.ambient;1","1056;entity.parrot.imitate.bogged":"1;entity.bogged.ambient;1","1057;entity.parrot.imitate.breeze":"0.7;entity.breeze.idle_ground;1","1058;entity.parrot.imitate.creaking":"1;mob/creaking/parrot_imitate_creaking;1","1059;entity.parrot.imitate.creeper":"0.6;entity.creeper.primed;1","1060;entity.parrot.imitate.drowned":"0.6;entity.drowned.ambient;1","1061;entity.parrot.imitate.elder_guardian":"0.7;entity.elder_guardian.ambient_land;1","1062;entity.parrot.imitate.ender_dragon":"0.2;entity.ender_dragon.ambient;1","1063;entity.parrot.imitate.endermite":"0.7;entity.endermite.ambient;1","1064;entity.parrot.imitate.evoker":"0.6;entity.evoker.cast_spell;1","1065;entity.parrot.imitate.ghast":"0.7;entity.ghast.ambient;1","1066;entity.parrot.imitate.guardian":"0.4;entity.guardian.ambient;1","1067;entity.parrot.imitate.hoglin":"0.6;entity.hoglin.ambient;1","1068;entity.parrot.imitate.husk":"0.6;entity.husk.ambient;1","1069;entity.parrot.imitate.illusioner":"0.7;entity.illusioner.ambient;1","1070;entity.parrot.imitate.magma_cube":"0.6;entity.magma_cube.squish;1","1071;entity.parrot.imitate.phantom":"0.6;entity.phantom.ambient;1","1072;entity.parrot.imitate.piglin":"0.6;entity.piglin.ambient;1","1073;entity.parrot.imitate.piglin_brute":"0.6;entity.piglin_brute.ambient;1","1074;entity.parrot.imitate.pillager":"0.4;entity.pillager.ambient;1","1075;entity.parrot.imitate.ravager":"0.2;entity.ravager.ambient;1","1076;entity.parrot.imitate.shulker":"0.4;entity.shulker.ambient;1","1077;entity.parrot.imitate.silverfish":"0.7;entity.silverfish.ambient;1","1078;entity.parrot.imitate.skeleton":"1;entity.skeleton.ambient;1","1079;entity.parrot.imitate.slime":"0.6;entity.slime.squish;1","1080;entity.parrot.imitate.spider":"0.6;entity.spider.ambient;1","1081;entity.parrot.imitate.stray":"0.6;entity.stray.ambient;1","1082;entity.parrot.imitate.vex":"0.8;entity.vex.ambient;1","1083;entity.parrot.imitate.vindicator":"0.6;entity.vindicator.ambient;1","1084;entity.parrot.imitate.warden":"0.8;entity.warden.tendril_clicks;1","1085;entity.parrot.imitate.witch":"0.5;entity.witch.ambient;1","1086;entity.parrot.imitate.wither":"0.2;entity.wither.ambient;1","1087;entity.parrot.imitate.wither_skeleton":"0.7;entity.wither_skeleton.ambient;1","1088;entity.parrot.imitate.zoglin":"0.6;entity.zoglin.ambient;1","1089;entity.parrot.imitate.zombie":"0.6;entity.zombie.ambient;1","1090;entity.parrot.imitate.zombie_villager":"0.6;entity.zombie_villager.ambient;1","1091;entity.parrot.step":"1;mob/parrot/step1;1,1;mob/parrot/step2;1,1;mob/parrot/step3;1,1;mob/parrot/step4;1,1;mob/parrot/step5;1","1092;entity.phantom.ambient":"0.8;mob/phantom/idle1;1,0.8;mob/phantom/idle2;1,0.8;mob/phantom/idle3;1,0.8;mob/phantom/idle4;1,0.8;mob/phantom/idle5;1","1093;entity.phantom.bite":"1;mob/phantom/bite1;1,1;mob/phantom/bite2;1","1094;entity.phantom.death":"1;mob/phantom/death1;1,1;mob/phantom/death2;1,1;mob/phantom/death3;1","1095;entity.phantom.flap":"0.9;mob/phantom/flap1;1,0.9;mob/phantom/flap2;1,0.9;mob/phantom/flap3;1,0.9;mob/phantom/flap4;1,0.9;mob/phantom/flap5;1,0.9;mob/phantom/flap6;1","1096;entity.phantom.hurt":"0.75;mob/phantom/hurt1;1,0.75;mob/phantom/hurt2;1,0.75;mob/phantom/hurt3;1","1097;entity.phantom.swoop":"0.7;mob/phantom/swoop1;1,0.7;mob/phantom/swoop2;1,0.7;mob/phantom/swoop3;1,0.7;mob/phantom/swoop4;1","1098;entity.pig.ambient":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1099;entity.pig.death":"1;mob/pig/death;1","1100;entity.pig.hurt":"1;mob/pig/say1;1,1;mob/pig/say2;1,1;mob/pig/say3;1","1101;entity.pig.saddle":"1;mob/horse/leather;1","1102;entity.pig.step":"1;mob/pig/step1;1,1;mob/pig/step2;1,1;mob/pig/step3;1,1;mob/pig/step4;1,1;mob/pig/step5;1","1103;entity.piglin.admiring_item":"0.8;mob/piglin/admire1;1,0.8;mob/piglin/admire2;1,0.8;mob/piglin/celebrate2;1,0.85;mob/piglin/celebrate4;1","1104;entity.piglin.ambient":"0.66;mob/piglin/idle1;1,0.66;mob/piglin/idle2;1,0.66;mob/piglin/idle3;1,0.66;mob/piglin/idle4;1,0.66;mob/piglin/idle5;1","1105;entity.piglin.angry":"0.7;mob/piglin/angry1;1,0.7;mob/piglin/angry2;1,0.7;mob/piglin/angry3;1,0.7;mob/piglin/angry4;1","1106;entity.piglin.celebrate":"0.8;mob/piglin/celebrate1;1,0.8;mob/piglin/celebrate2;1,0.75;mob/piglin/celebrate3;1,0.8;mob/piglin/celebrate4;1","1112;entity.piglin.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1107;entity.piglin.death":"0.7;mob/piglin/death1;1,0.7;mob/piglin/death2;1,0.8;mob/piglin/death3;1,0.8;mob/piglin/death4;1","1109;entity.piglin.hurt":"0.7;mob/piglin/hurt1;1,0.7;mob/piglin/hurt2;1,0.7;mob/piglin/hurt3;1","1108;entity.piglin.jealous":"0.8;mob/piglin/jealous1;1,0.8;mob/piglin/jealous2;1,0.8;mob/piglin/jealous3;1,0.8;mob/piglin/jealous4;1,0.8;mob/piglin/jealous5;1","1110;entity.piglin.retreat":"0.65;mob/piglin/retreat1;1,0.65;mob/piglin/retreat2;1,0.65;mob/piglin/retreat3;1,0.65;mob/piglin/retreat4;1","1111;entity.piglin.step":"0.75;mob/piglin/step1;1,0.75;mob/piglin/step2;1,0.75;mob/piglin/step3;1,0.75;mob/piglin/step4;1,0.75;mob/piglin/step5;1","1113;entity.piglin_brute.ambient":"0.9;mob/piglin_brute/idle1;1,0.9;mob/piglin_brute/idle2;1,0.9;mob/piglin_brute/idle3;1,0.9;mob/piglin_brute/idle4;1,0.9;mob/piglin_brute/idle5;1,0.9;mob/piglin_brute/idle6;1,0.9;mob/piglin_brute/idle7;1,0.9;mob/piglin_brute/idle8;1,0.9;mob/piglin_brute/idle9;1","1114;entity.piglin_brute.angry":"0.9;mob/piglin_brute/angry1;1,0.9;mob/piglin_brute/angry2;1,0.9;mob/piglin_brute/angry3;1,0.9;mob/piglin_brute/angry4;1,0.9;mob/piglin_brute/angry5;1","1118;entity.piglin_brute.converted_to_zombified":"1;mob/piglin/converted1;1,1;mob/piglin/converted2;1","1115;entity.piglin_brute.death":"0.8;mob/piglin_brute/death1;1,0.8;mob/piglin_brute/death2;1,0.8;mob/piglin_brute/death3;1","1116;entity.piglin_brute.hurt":"0.64;mob/piglin_brute/hurt1;1,0.64;mob/piglin_brute/hurt2;1,0.64;mob/piglin_brute/hurt3;1,0.65;mob/piglin_brute/hurt4;1","1117;entity.piglin_brute.step":"0.75;mob/piglin_brute/step1;1,0.75;mob/piglin_brute/step2;1,0.75;mob/piglin_brute/step3;1,0.75;mob/piglin_brute/step4;1,0.75;mob/piglin_brute/step5;1","1119;entity.pillager.ambient":"1;mob/pillager/idle1;1,1;mob/pillager/idle2;1,1;mob/pillager/idle3;1,1;mob/pillager/idle4;1","1120;entity.pillager.celebrate":"1;mob/pillager/celebrate1;1,1;mob/pillager/celebrate2;1,1;mob/pillager/celebrate3;1,1;mob/pillager/celebrate4;1,1;mob/pillager/horn_celebrate;1","1121;entity.pillager.death":"1;mob/pillager/death1;1,1;mob/pillager/death2;1","1122;entity.pillager.hurt":"1;mob/pillager/hurt1;1,1;mob/pillager/hurt2;1,1;mob/pillager/hurt3;1","1125;entity.player.attack.crit":"0.7;entity/player/attack/crit1;1,0.7;entity/player/attack/crit2;1,0.7;entity/player/attack/crit3;1","1126;entity.player.attack.knockback":"0.7;entity/player/attack/knockback1;1,0.7;entity/player/attack/knockback2;1,0.7;entity/player/attack/knockback3;1,0.7;entity/player/attack/knockback4;1","1127;entity.player.attack.nodamage":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1128;entity.player.attack.strong":"0.6;entity/player/attack/strong1;1,0.6;entity/player/attack/strong2;1,0.6;entity/player/attack/strong3;1,0.6;entity/player/attack/strong4;1,0.7;entity/player/attack/strong5;1,0.7;entity/player/attack/strong6;1","1129;entity.player.attack.sweep":"0.7;entity/player/attack/sweep1;1,0.7;entity/player/attack/sweep2;1,0.7;entity/player/attack/sweep3;1,0.7;entity/player/attack/sweep4;1,0.7;entity/player/attack/sweep5;1,0.7;entity/player/attack/sweep6;1,0.7;entity/player/attack/sweep7;1","1130;entity.player.attack.weak":"0.7;entity/player/attack/weak1;1,0.7;entity/player/attack/weak2;1,0.7;entity/player/attack/weak3;1,0.7;entity/player/attack/weak4;1","1131;entity.player.big_fall":"1;damage/fallbig;1","1132;entity.player.breath":"1;random/breath;1","1133;entity.player.burp":"1;random/burp;1","1134;entity.player.death":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1135;entity.player.hurt":"1;damage/hit1;1,1;damage/hit2;1,1;damage/hit3;1","1136;entity.player.hurt_drown":"1;entity/player/hurt/drown1;1,1;entity/player/hurt/drown2;1,1;entity/player/hurt/drown3;1,1;entity/player/hurt/drown4;1","1137;entity.player.hurt_freeze":"1;entity/player/hurt/freeze_hurt1;1,1;entity/player/hurt/freeze_hurt2;1,1;entity/player/hurt/freeze_hurt3;1,1;entity/player/hurt/freeze_hurt4;1,1;entity/player/hurt/freeze_hurt5;1","1138;entity.player.hurt_on_fire":"1;entity/player/hurt/fire_hurt1;1,1;entity/player/hurt/fire_hurt2;1,1;entity/player/hurt/fire_hurt3;1","1139;entity.player.hurt_sweet_berry_bush":"1;entity/player/hurt/berrybush_hurt1;1,1;entity/player/hurt/berrybush_hurt2;1","1140;entity.player.levelup":"1;random/levelup;1","1141;entity.player.small_fall":"1;damage/fallsmall;1","1142;entity.player.splash":"1;liquid/splash;1,1;liquid/splash2;1","1143;entity.player.splash.high_speed":"1;liquid/heavy_splash;1","1144;entity.player.swim":"1;liquid/swim5;1,1;liquid/swim6;1,1;liquid/swim7;1,1;liquid/swim8;1,1;liquid/swim9;1,1;liquid/swim10;1,1;liquid/swim11;1,1;liquid/swim12;1,1;liquid/swim13;1,1;liquid/swim14;1,1;liquid/swim15;1,1;liquid/swim16;1,1;liquid/swim17;1,1;liquid/swim18;1","1145;entity.player.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1146;entity.polar_bear.ambient":"1;mob/polarbear/idle1;1,1;mob/polarbear/idle2;1,1;mob/polarbear/idle3;1,1;mob/polarbear/idle4;1","1147;entity.polar_bear.ambient_baby":"1;mob/polarbear_baby/idle1;1,1;mob/polarbear_baby/idle2;1,1;mob/polarbear_baby/idle3;1,1;mob/polarbear_baby/idle4;1","1148;entity.polar_bear.death":"1;mob/polarbear/death1;1,1;mob/polarbear/death2;1,1;mob/polarbear/death3;1","1149;entity.polar_bear.hurt":"1;mob/polarbear/hurt1;1,1;mob/polarbear/hurt2;1,1;mob/polarbear/hurt3;1,1;mob/polarbear/hurt4;1","1150;entity.polar_bear.step":"1;mob/polarbear/step1;1,1;mob/polarbear/step2;1,1;mob/polarbear/step3;1,1;mob/polarbear/step4;1","1151;entity.polar_bear.warning":"1;mob/polarbear/warning1;1,1;mob/polarbear/warning2;1,1;mob/polarbear/warning3;1,1;mob/polarbear/warning3;1","1166;entity.puffer_fish.blow_out":"0.7;entity/pufferfish/blow_out1;1,0.7;entity/pufferfish/blow_out2;1","1167;entity.puffer_fish.blow_up":"0.45;entity/pufferfish/blow_up1;1,0.45;entity/pufferfish/blow_up2;1","1168;entity.puffer_fish.death":"1;entity/pufferfish/death1;1,1;entity/pufferfish/death2;1","1169;entity.puffer_fish.flop":"0.3;entity/pufferfish/flop1;1,0.3;entity/pufferfish/flop2;1,0.3;entity/pufferfish/flop3;1,0.3;entity/pufferfish/flop4;1","1170;entity.puffer_fish.hurt":"1;entity/pufferfish/hurt1;1,1;entity/pufferfish/hurt2;1","1171;entity.puffer_fish.sting":"1;entity/pufferfish/sting1;1,1;entity/pufferfish/sting2;1","1173;entity.rabbit.ambient":"0.25;mob/rabbit/idle1;1,0.25;mob/rabbit/idle2;1,0.25;mob/rabbit/idle3;1,0.25;mob/rabbit/idle4;1","1174;entity.rabbit.attack":"1;entity/rabbit/attack1;1,1;entity/rabbit/attack2;1,1;entity/rabbit/attack3;1,1;entity/rabbit/attack4;1","1175;entity.rabbit.death":"0.5;mob/rabbit/bunnymurder;1","1176;entity.rabbit.hurt":"0.5;mob/rabbit/hurt1;1,0.5;mob/rabbit/hurt2;1,0.5;mob/rabbit/hurt3;1,0.5;mob/rabbit/hurt4;1","1177;entity.rabbit.jump":"0.1;mob/rabbit/hop1;1,0.1;mob/rabbit/hop2;1,0.1;mob/rabbit/hop3;1,0.1;mob/rabbit/hop4;1","1179;entity.ravager.ambient":"1;mob/ravager/idle1;1,1;mob/ravager/idle2;1,1;mob/ravager/idle3;1,1;mob/ravager/idle4;1,1;mob/ravager/idle5;1,1;mob/ravager/idle6;1,1;mob/ravager/idle7;1,1;mob/ravager/idle8;1","1180;entity.ravager.attack":"1;mob/ravager/bite1;1,1;mob/ravager/bite2;1,1;mob/ravager/bite3;1","1181;entity.ravager.celebrate":"1;mob/ravager/celebrate1;1,1;mob/ravager/celebrate2;1","1182;entity.ravager.death":"1;mob/ravager/death1;1,1;mob/ravager/death2;1,1;mob/ravager/death3;1","1183;entity.ravager.hurt":"1;mob/ravager/hurt1;1,1;mob/ravager/hurt2;1,1;mob/ravager/hurt3;1,1;mob/ravager/hurt4;1","1186;entity.ravager.roar":"1;mob/ravager/roar1;1,1;mob/ravager/roar2;1,1;mob/ravager/roar3;1,1;mob/ravager/roar4;1","1184;entity.ravager.step":"1;mob/ravager/step1;1,1;mob/ravager/step2;1,1;mob/ravager/step3;1,1;mob/ravager/step4;1,1;mob/ravager/step5;1","1185;entity.ravager.stunned":"1;mob/ravager/stun1;1,1;mob/ravager/stun2;1,1;mob/ravager/stun3;1","1208;entity.salmon.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1209;entity.salmon.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1210;entity.salmon.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1252;entity.sheep.ambient":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1253;entity.sheep.death":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1254;entity.sheep.hurt":"1;mob/sheep/say1;1,1;mob/sheep/say2;1,1;mob/sheep/say3;1","1255;entity.sheep.shear":"1;mob/sheep/shear;1","1256;entity.sheep.step":"1;mob/sheep/step1;1,1;mob/sheep/step2;1,1;mob/sheep/step3;1,1;mob/sheep/step4;1,1;mob/sheep/step5;1","1265;entity.shulker.ambient":"1;entity/shulker/ambient1;1,1;entity/shulker/ambient2;1,1;entity/shulker/ambient3;1,1;entity/shulker/ambient4;1,1;entity/shulker/ambient5;1,1;entity/shulker/ambient6;1,1;entity/shulker/ambient7;1","1270;entity.shulker.close":"1;entity/shulker/close1;1,1;entity/shulker/close2;1,1;entity/shulker/close3;1,1;entity/shulker/close4;1,1;entity/shulker/close5;1","1271;entity.shulker.death":"1;entity/shulker/death1;1,1;entity/shulker/death2;1,1;entity/shulker/death3;1,1;entity/shulker/death4;1","1272;entity.shulker.hurt":"1;entity/shulker/hurt1;1,1;entity/shulker/hurt2;1,1;entity/shulker/hurt3;1,1;entity/shulker/hurt4;1","1273;entity.shulker.hurt_closed":"1;entity/shulker/hurt_closed1;1,1;entity/shulker/hurt_closed2;1,1;entity/shulker/hurt_closed3;1,1;entity/shulker/hurt_closed4;1,1;entity/shulker/hurt_closed5;1","1274;entity.shulker.open":"1;entity/shulker/open1;1,1;entity/shulker/open2;1,1;entity/shulker/open3;1,1;entity/shulker/open4;1,1;entity/shulker/open5;1","1275;entity.shulker.shoot":"1;entity/shulker/shoot1;1,1;entity/shulker/shoot2;1,1;entity/shulker/shoot3;1,1;entity/shulker/shoot4;1","1276;entity.shulker.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","1268;entity.shulker_bullet.hit":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1269;entity.shulker_bullet.hurt":"1;entity/shulker_bullet/hit1;1,1;entity/shulker_bullet/hit2;1,1;entity/shulker_bullet/hit3;1,1;entity/shulker_bullet/hit4;1","1277;entity.silverfish.ambient":"1;mob/silverfish/say1;1,1;mob/silverfish/say2;1,1;mob/silverfish/say3;1,1;mob/silverfish/say4;1","1278;entity.silverfish.death":"1;mob/silverfish/kill;1","1279;entity.silverfish.hurt":"1;mob/silverfish/hit1;1,1;mob/silverfish/hit2;1,1;mob/silverfish/hit3;1","1280;entity.silverfish.step":"1;mob/silverfish/step1;1,1;mob/silverfish/step2;1,1;mob/silverfish/step3;1,1;mob/silverfish/step4;1","1281;entity.skeleton.ambient":"1;mob/skeleton/say1;1,1;mob/skeleton/say2;1,1;mob/skeleton/say3;1","1282;entity.skeleton.converted_to_stray":"1;mob/stray/convert1;1,1;mob/stray/convert2;1,1;mob/stray/convert3;1","1283;entity.skeleton.death":"1;mob/skeleton/death;1","1292;entity.skeleton.hurt":"1;mob/skeleton/hurt1;1,1;mob/skeleton/hurt2;1,1;mob/skeleton/hurt3;1,1;mob/skeleton/hurt4;1","1293;entity.skeleton.shoot":"1;random/bow;1","1294;entity.skeleton.step":"1;mob/skeleton/step1;1,1;mob/skeleton/step2;1,1;mob/skeleton/step3;1,1;mob/skeleton/step4;1","1284;entity.skeleton_horse.ambient":"1;mob/horse/skeleton/idle1;1,1;mob/horse/skeleton/idle2;1,1;mob/horse/skeleton/idle3;1","1288;entity.skeleton_horse.ambient_water":"1;mob/horse/skeleton/water/idle1;1,1;mob/horse/skeleton/water/idle2;1,1;mob/horse/skeleton/water/idle3;1,1;mob/horse/skeleton/water/idle4;1,1;mob/horse/skeleton/water/idle5;1","1285;entity.skeleton_horse.death":"1;mob/horse/skeleton/death;1","1289;entity.skeleton_horse.gallop_water":"0.45;mob/horse/skeleton/water/gallop1;1,0.45;mob/horse/skeleton/water/gallop2;1,0.45;mob/horse/skeleton/water/gallop3;1,0.45;mob/horse/skeleton/water/gallop4;1","1286;entity.skeleton_horse.hurt":"1;mob/horse/skeleton/hit1;1,1;mob/horse/skeleton/hit2;1,1;mob/horse/skeleton/hit3;1,1;mob/horse/skeleton/hit4;1","1290;entity.skeleton_horse.jump_water":"0.8;mob/horse/skeleton/water/jump;1","1291;entity.skeleton_horse.step_water":"0.6;mob/horse/skeleton/water/soft1;1,0.6;mob/horse/skeleton/water/soft2;1,0.6;mob/horse/skeleton/water/soft3;1,0.6;mob/horse/skeleton/water/soft4;1,0.6;mob/horse/skeleton/water/soft5;1,0.6;mob/horse/skeleton/water/soft6;1","1287;entity.skeleton_horse.swim":"0.4;liquid/swim9;1,0.4;liquid/swim10;1,0.4;liquid/swim11;1,0.4;liquid/swim12;1,0.6;liquid/swim14;1,0.6;liquid/swim15;1,0.6;liquid/swim16;1,0.6;liquid/swim17;1","1295;entity.slime.attack":"1;mob/slime/attack1;1,1;mob/slime/attack2;1","1296;entity.slime.death":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1351;entity.slime.death_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1297;entity.slime.hurt":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1352;entity.slime.hurt_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1298;entity.slime.jump":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1353;entity.slime.jump_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1299;entity.slime.squish":"1;mob/slime/big1;1,1;mob/slime/big2;1,1;mob/slime/big3;1,1;mob/slime/big4;1","1354;entity.slime.squish_small":"1;mob/slime/small1;1,1;mob/slime/small2;1,1;mob/slime/small3;1,1;mob/slime/small4;1,1;mob/slime/small5;1","1361;entity.sniffer.death":"1;mob/sniffer/death1;1,1;mob/sniffer/death2;1","1366;entity.sniffer.digging":"1;mob/sniffer/longdig1;1,1;mob/sniffer/longdig2;1","1367;entity.sniffer.digging_stop":"1;mob/sniffer/digging_stop1;1,1;mob/sniffer/digging_stop2;1","1362;entity.sniffer.drop_seed":"0.8;random/pop;1,0.8;random/pop;1,0.8;random/pop;1","1358;entity.sniffer.eat":"0.7;mob/sniffer/eat1;1,0.7;mob/sniffer/eat2;1,0.7;mob/sniffer/eat3;1","1368;entity.sniffer.happy":"1;mob/sniffer/happy1;1,1;mob/sniffer/happy2;1,1;mob/sniffer/happy3;1,1;mob/sniffer/happy4;1,1;mob/sniffer/happy5;1","1360;entity.sniffer.hurt":"1;mob/sniffer/hurt1;1,1;mob/sniffer/hurt2;1,1;mob/sniffer/hurt3;1","1359;entity.sniffer.idle":"1;mob/sniffer/idle1;1,1;mob/sniffer/idle2;1,1;mob/sniffer/idle3;1,1;mob/sniffer/idle4;1,1;mob/sniffer/idle5;1,1;mob/sniffer/idle6;1,1;mob/sniffer/idle7;1,1;mob/sniffer/idle8;1,1;mob/sniffer/idle9;1,1;mob/sniffer/idle10;1,1;mob/sniffer/idle11;1","1363;entity.sniffer.scenting":"1;mob/sniffer/scenting1;1,1;mob/sniffer/scenting2;1,1;mob/sniffer/scenting3;1","1365;entity.sniffer.searching":"1;mob/sniffer/searching1;1,0.8;mob/sniffer/searching1;1,1;mob/sniffer/searching2;1,0.8;mob/sniffer/searching2;1,1;mob/sniffer/searching3;1,0.8;mob/sniffer/searching3;1,1;mob/sniffer/searching4;1,0.8;mob/sniffer/searching4;1,1;mob/sniffer/searching5;1,0.8;mob/sniffer/searching5;1,1;mob/sniffer/searching6;1,0.8;mob/sniffer/searching6;1","1364;entity.sniffer.sniffing":"1;mob/sniffer/sniffing1;1,1;mob/sniffer/sniffing2;1,1;mob/sniffer/sniffing3;1","1357;entity.sniffer.step":"1;mob/sniffer/step1;1,1;mob/sniffer/step2;1,1;mob/sniffer/step3;1,1;mob/sniffer/step4;1,1;mob/sniffer/step5;1,1;mob/sniffer/step6;1","1376;entity.snow_golem.death":"1;entity/snowman/death1;1,1;entity/snowman/death2;1,1;entity/snowman/death3;1","1377;entity.snow_golem.hurt":"1;entity/snowman/hurt1;1,1;entity/snowman/hurt2;1,1;entity/snowman/hurt3;1","1379;entity.snow_golem.shear":"1;mob/sheep/shear;1","1378;entity.snow_golem.shoot":"1;random/bow;1","1372;entity.snowball.throw":"1;random/bow;1","1383;entity.spider.ambient":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1384;entity.spider.death":"1;mob/spider/death;1","1385;entity.spider.hurt":"1;mob/spider/say1;1,1;mob/spider/say2;1,1;mob/spider/say3;1,1;mob/spider/say4;1","1386;entity.spider.step":"1;mob/spider/step1;1,1;mob/spider/step2;1,1;mob/spider/step3;1,1;mob/spider/step4;1","1387;entity.splash_potion.break":"1;random/glass1;1,1;random/glass2;1,1;random/glass3;1","1388;entity.splash_potion.throw":"1;random/bow;1","1397;entity.squid.ambient":"1;entity/squid/ambient1;1,1;entity/squid/ambient2;1,1;entity/squid/ambient3;1,1;entity/squid/ambient4;1,1;entity/squid/ambient5;1","1398;entity.squid.death":"1;entity/squid/death1;1,1;entity/squid/death2;1,1;entity/squid/death3;1","1399;entity.squid.hurt":"1;entity/squid/hurt1;1,1;entity/squid/hurt2;1,1;entity/squid/hurt3;1,1;entity/squid/hurt4;1","1400;entity.squid.squirt":"1;entity/squid/squirt1;1,1;entity/squid/squirt2;1,1;entity/squid/squirt3;1","1410;entity.stray.ambient":"1;mob/stray/idle1;1,1;mob/stray/idle2;1,1;mob/stray/idle3;1,1;mob/stray/idle4;1","1411;entity.stray.death":"1;mob/stray/death1;1,1;mob/stray/death2;1","1412;entity.stray.hurt":"1;mob/stray/hurt1;1,1;mob/stray/hurt2;1,1;mob/stray/hurt3;1,1;mob/stray/hurt4;1","1413;entity.stray.step":"1;mob/stray/step1;1,1;mob/stray/step2;1,1;mob/stray/step3;1,1;mob/stray/step4;1","1342;entity.strider.ambient":"1;mob/strider/idle1;1,1;mob/strider/idle2;1,1;mob/strider/idle3;1,1;mob/strider/idle4;1,1;mob/strider/idle5;1,1;mob/strider/idle6;1","1345;entity.strider.death":"1;mob/strider/death1;1,1;mob/strider/death2;1,1;mob/strider/death3;1,1;mob/strider/death4;1","1349;entity.strider.eat":"1;mob/strider/eat1;1,1;mob/strider/eat2;1,1;mob/strider/eat3;1","1343;entity.strider.happy":"1;mob/strider/happy1;1,1;mob/strider/happy2;1,1;mob/strider/happy3;1,1;mob/strider/happy4;1,1;mob/strider/happy5;1","1346;entity.strider.hurt":"1;mob/strider/hurt1;1,1;mob/strider/hurt2;1,1;mob/strider/hurt3;1,1;mob/strider/hurt4;1","1344;entity.strider.retreat":"0.8;mob/strider/retreat1;1,0.8;mob/strider/retreat2;1,0.8;mob/strider/retreat3;1,0.8;mob/strider/retreat4;1,0.8;mob/strider/retreat5;1","1350;entity.strider.saddle":"1;mob/horse/leather;1","1347;entity.strider.step":"0.25;mob/strider/step1;1,0.25;mob/strider/step2;1,0.25;mob/strider/step3;1,0.25;mob/strider/step4;1,0.25;mob/strider/step5;1","1348;entity.strider.step_lava":"0.2;mob/strider/step_lava1;1,0.2;mob/strider/step_lava2;1,0.2;mob/strider/step_lava3;1,0.2;mob/strider/step_lava4;1,0.2;mob/strider/step_lava5;1,0.2;mob/strider/step_lava6;1","1417;entity.tadpole.death":"1;mob/tadpole/death1;1,1;mob/tadpole/death2;1","1418;entity.tadpole.flop":"1;entity.tropical_fish.flop;1","1419;entity.tadpole.grow_up":"0.75;mob/frog/idle1;1,0.75;mob/frog/idle2;1,0.75;mob/frog/idle3;1,0.75;mob/frog/idle4;1,0.75;mob/frog/idle5;1,0.75;mob/frog/idle6;1,0.75;mob/frog/idle7;1,0.75;mob/frog/idle8;1","1420;entity.tadpole.hurt":"1;mob/tadpole/hurt1;1,1;mob/tadpole/hurt2;1,1;mob/tadpole/hurt3;1,1;mob/tadpole/hurt4;1","1422;entity.tnt.primed":"1;random/fuse;1","1437;entity.tropical_fish.death":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1438;entity.tropical_fish.flop":"0.3;entity/fish/flop1;1,0.3;entity/fish/flop2;1,0.3;entity/fish/flop3;1,0.3;entity/fish/flop4;1","1439;entity.tropical_fish.hurt":"1;entity/fish/hurt1;1,1;entity/fish/hurt2;1,1;entity/fish/hurt3;1,1;entity/fish/hurt4;1","1455;entity.turtle.ambient_land":"0.8;mob/turtle/idle1;1,0.7;mob/turtle/idle2;1,0.8;mob/turtle/idle3;1","1456;entity.turtle.death":"1;mob/turtle/death1;1,1;mob/turtle/death2;1,1;mob/turtle/death3;1","1457;entity.turtle.death_baby":"1;mob/turtle/baby/death1;1,1;mob/turtle/baby/death2;1","1458;entity.turtle.egg_break":"1;mob/turtle/egg/egg_break1;1,1;mob/turtle/egg/egg_break2;1","1459;entity.turtle.egg_crack":"1;mob/turtle/egg/egg_crack1;1,1;mob/turtle/egg/egg_crack2;1,1;mob/turtle/egg/egg_crack3;1,1;mob/turtle/egg/egg_crack4;1,1;mob/turtle/egg/egg_crack5;1","1460;entity.turtle.egg_hatch":"1;mob/turtle/baby/egg_hatched1;1,1;mob/turtle/baby/egg_hatched2;1,1;mob/turtle/baby/egg_hatched3;1","1461;entity.turtle.hurt":"1;mob/turtle/hurt1;1,1;mob/turtle/hurt2;1,1;mob/turtle/hurt3;1,1;mob/turtle/hurt4;1,1;mob/turtle/hurt5;1","1462;entity.turtle.hurt_baby":"1;mob/turtle/baby/hurt1;1,1;mob/turtle/baby/hurt2;1","1463;entity.turtle.lay_egg":"1;mob/turtle/egg/drop_egg1;1,1;mob/turtle/egg/drop_egg2;1","1464;entity.turtle.shamble":"1;mob/turtle/walk1;1,1;mob/turtle/walk2;1,1;mob/turtle/walk3;1,1;mob/turtle/walk4;1,1;mob/turtle/walk5;1","1465;entity.turtle.shamble_baby":"1;mob/turtle/baby/shamble1;1,1;mob/turtle/baby/shamble2;1,1;mob/turtle/baby/shamble3;1,1;mob/turtle/baby/shamble4;1","1466;entity.turtle.swim":"0.6;mob/turtle/swim/swim1;1,0.3;mob/turtle/swim/swim2;1,0.2;mob/turtle/swim/swim3;1,0.6;mob/turtle/swim/swim4;1,0.3;mob/turtle/swim/swim5;1","1490;entity.vex.ambient":"1;mob/vex/idle1;1,1;mob/vex/idle2;1,1;mob/vex/idle3;1,1;mob/vex/idle4;1","1491;entity.vex.charge":"1;mob/vex/charge1;1,1;mob/vex/charge2;1,1;mob/vex/charge3;1","1492;entity.vex.death":"1;mob/vex/death1;1,1;mob/vex/death2;1","1493;entity.vex.hurt":"1;mob/vex/hurt1;1,1;mob/vex/hurt2;1","1494;entity.villager.ambient":"1;mob/villager/idle1;1,1;mob/villager/idle2;1,1;mob/villager/idle3;1","1495;entity.villager.celebrate":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1496;entity.villager.death":"1;mob/villager/death;1","1497;entity.villager.hurt":"1;mob/villager/hit1;1,1;mob/villager/hit2;1,1;mob/villager/hit3;1,1;mob/villager/hit4;1","1498;entity.villager.no":"1;mob/villager/no1;1,1;mob/villager/no2;1,1;mob/villager/no3;1","1499;entity.villager.trade":"1;mob/villager/haggle1;1,1;mob/villager/haggle2;1,1;mob/villager/haggle3;1","1501;entity.villager.work_armorer":"1;block/blastfurnace/blastfurnace1;1,1;block/blastfurnace/blastfurnace2;1,1;block/blastfurnace/blastfurnace3;1,1;block/blastfurnace/blastfurnace4;1,1;block/blastfurnace/blastfurnace5;1","1502;entity.villager.work_butcher":"1;block/smoker/smoker1;1,1;block/smoker/smoker2;1,1;block/smoker/smoker3;1,1;block/smoker/smoker4;1,1;block/smoker/smoker5;1","1503;entity.villager.work_cartographer":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","1504;entity.villager.work_cleric":"1;block/brewing_stand/brew1;1,1;block/brewing_stand/brew2;1","1505;entity.villager.work_farmer":"1;block/composter/fill_success1;1,1;block/composter/fill_success2;1,1;block/composter/fill_success3;1,1;block/composter/fill_success4;1","1506;entity.villager.work_fisherman":"1;block/barrel/open1;1,1;block/barrel/open2;1","1507;entity.villager.work_fletcher":"1;block/fletching_table/fletching_table1;1,1;block/fletching_table/fletching_table2;1","1508;entity.villager.work_leatherworker":"0.9;block/cauldron/dye1;1,0.9;block/cauldron/dye2;1,0.9;block/cauldron/dye3;1","1509;entity.villager.work_librarian":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","1510;entity.villager.work_mason":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1511;entity.villager.work_shepherd":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1512;entity.villager.work_toolsmith":"1;block/smithing_table/smithing_table1;1,1;block/smithing_table/smithing_table2;1,1;block/smithing_table/smithing_table3;1","1513;entity.villager.work_weaponsmith":"0.5;block/grindstone/grindstone1;1,0.5;block/grindstone/grindstone2;1,0.5;block/grindstone/grindstone3;1","1500;entity.villager.yes":"1;mob/villager/yes1;1,1;mob/villager/yes2;1,1;mob/villager/yes3;1","1514;entity.vindicator.ambient":"1;mob/vindication_illager/idle1;1,1;mob/vindication_illager/idle2;1,1;mob/vindication_illager/idle3;1,1;mob/vindication_illager/idle4;1,1;mob/vindication_illager/idle5;1","1515;entity.vindicator.celebrate":"1;mob/vindication_illager/celebrate1;1,1;mob/vindication_illager/celebrate2;1","1516;entity.vindicator.death":"1;mob/vindication_illager/death1;1,1;mob/vindication_illager/death2;1","1517;entity.vindicator.hurt":"1;mob/vindication_illager/hurt1;1,1;mob/vindication_illager/hurt2;1,1;mob/vindication_illager/hurt3;1","1524;entity.wandering_trader.ambient":"1;mob/wandering_trader/idle1;1,1;mob/wandering_trader/idle2;1,1;mob/wandering_trader/idle3;1,1;mob/wandering_trader/idle4;1,1;mob/wandering_trader/idle5;1","1525;entity.wandering_trader.death":"1;mob/wandering_trader/death;1","1526;entity.wandering_trader.disappeared":"0.8;mob/wandering_trader/disappeared1;1,0.8;mob/wandering_trader/disappeared2;1","1527;entity.wandering_trader.drink_milk":"1;mob/wandering_trader/drink_milk1;1,1;mob/wandering_trader/drink_milk2;1,1;mob/wandering_trader/drink_milk3;1,1;mob/wandering_trader/drink_milk4;1,1;mob/wandering_trader/drink_milk5;1","1528;entity.wandering_trader.drink_potion":"0.7;mob/wandering_trader/drink_potion;1,0.65;random/drink;1","1529;entity.wandering_trader.hurt":"1;mob/wandering_trader/hurt1;1,1;mob/wandering_trader/hurt2;1,1;mob/wandering_trader/hurt3;1,1;mob/wandering_trader/hurt4;1","1530;entity.wandering_trader.no":"1;mob/wandering_trader/no1;1,1;mob/wandering_trader/no2;1,1;mob/wandering_trader/no3;1,1;mob/wandering_trader/no4;1,1;mob/wandering_trader/no5;1","1531;entity.wandering_trader.reappeared":"0.8;mob/wandering_trader/reappeared1;1,0.8;mob/wandering_trader/reappeared2;1","1532;entity.wandering_trader.trade":"1;mob/wandering_trader/haggle1;1,1;mob/wandering_trader/haggle2;1,1;mob/wandering_trader/haggle3;1","1533;entity.wandering_trader.yes":"1;mob/wandering_trader/yes1;1,1;mob/wandering_trader/yes2;1,1;mob/wandering_trader/yes3;1,1;mob/wandering_trader/yes4;1","1534;entity.warden.agitated":"1;mob/warden/agitated_1;1,1;mob/warden/agitated_2;1,1;mob/warden/agitated_3;1,1;mob/warden/agitated_4;1,1;mob/warden/agitated_5;1,1;mob/warden/agitated_6;1","1535;entity.warden.ambient":"1;mob/warden/ambient_1;1,1;mob/warden/ambient_2;1,1;mob/warden/ambient_3;1,1;mob/warden/ambient_4;1,1;mob/warden/ambient_5;1,1;mob/warden/ambient_6;1,1;mob/warden/ambient_7;1,1;mob/warden/ambient_8;1,1;mob/warden/ambient_9;1,1;mob/warden/ambient_10;1,1;mob/warden/ambient_11;1,1;mob/warden/ambient_12;1","1536;entity.warden.angry":"1;mob/warden/angry_1;1,1;mob/warden/angry_2;1,1;mob/warden/angry_3;1,1;mob/warden/angry_4;1,1;mob/warden/angry_5;1,1;mob/warden/angry_6;1","1537;entity.warden.attack_impact":"1;mob/warden/attack_impact_1;1,1;mob/warden/attack_impact_2;1","1538;entity.warden.death":"1;mob/warden/death_1;1,1;mob/warden/death_2;1","1539;entity.warden.dig":"1;mob/warden/dig;1","1540;entity.warden.emerge":"1;mob/warden/emerge;1","1541;entity.warden.heartbeat":"1;mob/warden/heartbeat_1;1,1;mob/warden/heartbeat_2;1,1;mob/warden/heartbeat_3;1,1;mob/warden/heartbeat_4;1","1542;entity.warden.hurt":"1;mob/warden/hurt_1;1,1;mob/warden/hurt_2;1,1;mob/warden/hurt_3;1,1;mob/warden/hurt_4;1","1543;entity.warden.listening":"1;mob/warden/listening_1;1,1;mob/warden/listening_2;1,1;mob/warden/listening_3;1,1;mob/warden/listening_4;1,1;mob/warden/listening_5;1","1544;entity.warden.listening_angry":"1;mob/warden/listening_angry_1;1,1;mob/warden/listening_angry_2;1,1;mob/warden/listening_angry_3;1,1;mob/warden/listening_angry_4;1,1;mob/warden/listening_angry_5;1","1545;entity.warden.nearby_close":"1;mob/warden/nearby_close_1;1,1;mob/warden/nearby_close_2;1,1;mob/warden/nearby_close_3;1,1;mob/warden/nearby_close_4;1","1546;entity.warden.nearby_closer":"1;mob/warden/nearby_closer_1;1,1;mob/warden/nearby_closer_2;1,1;mob/warden/nearby_closer_3;1","1547;entity.warden.nearby_closest":"1;mob/warden/nearby_closest_1;1,1;mob/warden/nearby_closest_2;1,1;mob/warden/nearby_closest_3;1","1548;entity.warden.roar":"1;mob/warden/roar_1;1,1;mob/warden/roar_2;1,1;mob/warden/roar_3;1,1;mob/warden/roar_4;1,1;mob/warden/roar_5;1","1549;entity.warden.sniff":"0.75;mob/warden/sniff_1;1,0.75;mob/warden/sniff_2;1,0.75;mob/warden/sniff_3;1,0.75;mob/warden/sniff_4;1","1550;entity.warden.sonic_boom":"1;mob/warden/sonic_boom1;1,1;mob/warden/sonic_boom2;1,1;mob/warden/sonic_boom3;1,1;mob/warden/sonic_boom4;1","1551;entity.warden.sonic_charge":"1;mob/warden/sonic_charge1;1,1;mob/warden/sonic_charge2;1,1;mob/warden/sonic_charge3;1,1;mob/warden/sonic_charge4;1","1552;entity.warden.step":"0.3;mob/warden/step_1;1,0.3;mob/warden/step_2;1,0.3;mob/warden/step_3;1,0.3;mob/warden/step_4;1","1553;entity.warden.tendril_clicks":"1;mob/warden/tendril_clicks_1;1,1;mob/warden/tendril_clicks_2;1,1;mob/warden/tendril_clicks_3;1,1;mob/warden/tendril_clicks_4;1,1;mob/warden/tendril_clicks_5;1,1;mob/warden/tendril_clicks_6;1","1571;entity.wind_charge.throw":"1;random/bow;1","1570;entity.wind_charge.wind_burst":"1;entity/wind_charge/wind_burst1;1,1;entity/wind_charge/wind_burst2;1,1;entity/wind_charge/wind_burst3;1","1572;entity.witch.ambient":"1;entity/witch/ambient1;1,1;entity/witch/ambient2;1,1;entity/witch/ambient3;1,1;entity/witch/ambient4;1,1;entity/witch/ambient5;1,1;entity/witch/ambient5;1","1573;entity.witch.celebrate":"1;entity/witch/ambient1;1,1;entity/witch/ambient4;1,1;entity/witch/celebrate;1","1574;entity.witch.death":"1;entity/witch/death1;1,1;entity/witch/death2;1,1;entity/witch/death3;1","1575;entity.witch.drink":"1;entity/witch/drink1;1,1;entity/witch/drink2;1,1;entity/witch/drink3;1,1;entity/witch/drink4;1","1576;entity.witch.hurt":"1;entity/witch/hurt1;1,1;entity/witch/hurt2;1,1;entity/witch/hurt3;1","1577;entity.witch.throw":"1;entity/witch/throw1;1,1;entity/witch/throw2;1,1;entity/witch/throw3;1","1578;entity.wither.ambient":"1;mob/wither/idle1;1,1;mob/wither/idle2;1,1;mob/wither/idle3;1,1;mob/wither/idle4;1","1579;entity.wither.break_block":"1;mob/zombie/woodbreak;1","1580;entity.wither.death":"1;mob/wither/death;1","1581;entity.wither.hurt":"1;mob/wither/hurt1;1,1;mob/wither/hurt2;1,1;mob/wither/hurt3;1,1;mob/wither/hurt4;1","1582;entity.wither.shoot":"1;mob/wither/shoot;1","1587;entity.wither.spawn":"1;mob/wither/spawn;1","1583;entity.wither_skeleton.ambient":"1;mob/wither_skeleton/idle1;1,1;mob/wither_skeleton/idle2;1,1;mob/wither_skeleton/idle3;1","1584;entity.wither_skeleton.death":"1;mob/wither_skeleton/death1;1,1;mob/wither_skeleton/death2;1","1585;entity.wither_skeleton.hurt":"1;mob/wither_skeleton/hurt1;1,1;mob/wither_skeleton/hurt2;1,1;mob/wither_skeleton/hurt3;1,1;mob/wither_skeleton/hurt4;1","1586;entity.wither_skeleton.step":"1;mob/wither_skeleton/step1;1,1;mob/wither_skeleton/step2;1,1;mob/wither_skeleton/step3;1,1;mob/wither_skeleton/step4;1","1592;entity.wolf.ambient":"1;mob/wolf/bark1;1,1;mob/wolf/bark2;1,1;mob/wolf/bark3;1","1593;entity.wolf.death":"1;mob/wolf/death;1","1594;entity.wolf.growl":"1;mob/wolf/growl1;1,1;mob/wolf/growl2;1,1;mob/wolf/growl3;1","1595;entity.wolf.howl":"1;mob/wolf/howl1;1,1;mob/wolf/howl2;1","1596;entity.wolf.hurt":"1;mob/wolf/hurt1;1,1;mob/wolf/hurt2;1,1;mob/wolf/hurt3;1","1597;entity.wolf.pant":"1;mob/wolf/panting;1","1598;entity.wolf.shake":"1;mob/wolf/shake;1","1599;entity.wolf.step":"1;mob/wolf/step1;1,1;mob/wolf/step2;1,1;mob/wolf/step3;1,1;mob/wolf/step4;1,1;mob/wolf/step5;1","1600;entity.wolf.whine":"1;mob/wolf/whine;1","1619;entity.zoglin.ambient":"0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle1;1,0.9;mob/zoglin/idle2;1,0.9;mob/zoglin/idle3;1,0.9;mob/zoglin/idle4;1,0.9;mob/zoglin/idle5;1,0.9;mob/zoglin/idle6;1","1620;entity.zoglin.angry":"0.8;mob/zoglin/angry1;1,0.8;mob/zoglin/angry2;1,0.8;mob/zoglin/angry3;1","1621;entity.zoglin.attack":"0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack1;1,0.8;mob/zoglin/attack2;1,0.8;mob/zoglin/attack2;1","1622;entity.zoglin.death":"0.93;mob/zoglin/death1;1,0.93;mob/zoglin/death2;1,0.93;mob/zoglin/death3;1","1623;entity.zoglin.hurt":"0.83;mob/zoglin/hurt1;1,0.9;mob/zoglin/hurt2;1,0.9;mob/zoglin/hurt3;1","1624;entity.zoglin.step":"1;mob/zoglin/step1;1,1;mob/zoglin/step2;1,1;mob/zoglin/step3;1,1;mob/zoglin/step4;1,1;mob/zoglin/step5;1","1625;entity.zombie.ambient":"1;mob/zombie/say1;1,1;mob/zombie/say2;1,1;mob/zombie/say3;1","1627;entity.zombie.attack_iron_door":"1;mob/zombie/metal1;1,1;mob/zombie/metal2;1,1;mob/zombie/metal3;1","1626;entity.zombie.attack_wooden_door":"1;mob/zombie/wood1;1,1;mob/zombie/wood2;1,1;mob/zombie/wood3;1,1;mob/zombie/wood4;1","1628;entity.zombie.break_wooden_door":"1;mob/zombie/woodbreak;1","1629;entity.zombie.converted_to_drowned":"1;mob/drowned/convert1;1,1;mob/drowned/convert2;1,1;mob/drowned/convert3;1","1630;entity.zombie.death":"1;mob/zombie/death;1","1631;entity.zombie.destroy_egg":"1;mob/turtle/egg/jump_egg1;1,1;mob/turtle/egg/jump_egg2;1,1;mob/turtle/egg/jump_egg3;1,1;mob/turtle/egg/jump_egg4;1","1635;entity.zombie.hurt":"1;mob/zombie/hurt1;1,1;mob/zombie/hurt2;1","1636;entity.zombie.infect":"1;mob/zombie/infect;1","1641;entity.zombie.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1632;entity.zombie_horse.ambient":"1;mob/horse/zombie/idle1;1,1;mob/horse/zombie/idle2;1,1;mob/horse/zombie/idle3;1","1633;entity.zombie_horse.death":"1;mob/horse/zombie/death;1","1634;entity.zombie_horse.hurt":"1;mob/horse/zombie/hit1;1,1;mob/horse/zombie/hit2;1,1;mob/horse/zombie/hit3;1,1;mob/horse/zombie/hit4;1","1642;entity.zombie_villager.ambient":"1;mob/zombie_villager/say1;1,1;mob/zombie_villager/say2;1,1;mob/zombie_villager/say3;1","1643;entity.zombie_villager.converted":"1;mob/zombie/unfect;1","1644;entity.zombie_villager.cure":"1;mob/zombie/remedy;1","1645;entity.zombie_villager.death":"1;mob/zombie_villager/death;1","1646;entity.zombie_villager.hurt":"1;mob/zombie_villager/hurt1;1,1;mob/zombie_villager/hurt2;1","1647;entity.zombie_villager.step":"1;mob/zombie/step1;1,1;mob/zombie/step2;1,1;mob/zombie/step3;1,1;mob/zombie/step4;1,1;mob/zombie/step5;1","1637;entity.zombified_piglin.ambient":"1;mob/zombified_piglin/zpig1;1,1;mob/zombified_piglin/zpig2;1,1;mob/zombified_piglin/zpig3;1,1;mob/zombified_piglin/zpig4;1","1638;entity.zombified_piglin.angry":"1;mob/zombified_piglin/zpigangry1;1,1;mob/zombified_piglin/zpigangry2;1,1;mob/zombified_piglin/zpigangry3;1,1;mob/zombified_piglin/zpigangry4;1","1639;entity.zombified_piglin.death":"1;mob/zombified_piglin/zpigdeath;1","1640;entity.zombified_piglin.hurt":"1;mob/zombified_piglin/zpighurt1;1,1;mob/zombified_piglin/zpighurt2;1","1648;event.mob_effect.bad_omen":"1;event/mob_effects/bad_omen;1","1650;event.mob_effect.raid_omen":"1;event/mob_effects/raid_omen;1","1649;event.mob_effect.trial_omen":"1;event/mob_effects/trial_omen;1","1178;event.raid.horn":"0.01;event/raid/raidhorn_01;1,0.01;event/raid/raidhorn_02;1,0.01;event/raid/raidhorn_03;1,0.01;event/raid/raidhorn_04;1","67;item.armor.equip_chain":"1;item/armor/equip_chain1;1,1;item/armor/equip_chain2;1,1;item/armor/equip_chain3;1,1;item/armor/equip_chain4;1,1;item/armor/equip_chain5;1,1;item/armor/equip_chain6;1","68;item.armor.equip_diamond":"1;item/armor/equip_diamond1;1,1;item/armor/equip_diamond2;1,1;item/armor/equip_diamond3;1,1;item/armor/equip_diamond4;1,1;item/armor/equip_diamond5;1,1;item/armor/equip_diamond6;1","69;item.armor.equip_elytra":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","70;item.armor.equip_generic":"1;item/armor/equip_generic1;1,1;item/armor/equip_generic2;1,1;item/armor/equip_generic3;1,1;item/armor/equip_generic4;1,1;item/armor/equip_generic5;1,1;item/armor/equip_generic6;1","71;item.armor.equip_gold":"1;item/armor/equip_gold1;1,1;item/armor/equip_gold2;1,1;item/armor/equip_gold3;1,1;item/armor/equip_gold4;1,1;item/armor/equip_gold5;1,1;item/armor/equip_gold6;1","72;item.armor.equip_iron":"1;item/armor/equip_iron1;1,1;item/armor/equip_iron2;1,1;item/armor/equip_iron3;1,1;item/armor/equip_iron4;1,1;item/armor/equip_iron5;1,1;item/armor/equip_iron6;1","73;item.armor.equip_leather":"1;item/armor/equip_leather1;1,1;item/armor/equip_leather2;1,1;item/armor/equip_leather3;1,1;item/armor/equip_leather4;1,1;item/armor/equip_leather5;1,1;item/armor/equip_leather6;1","74;item.armor.equip_netherite":"0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite1;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite2;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite3;1,0.8;item/armor/equip_netherite4;1,0.8;item/armor/equip_netherite4;1","75;item.armor.equip_turtle":"1;mob/turtle/armor;1,1;mob/turtle/armor;1,1;mob/turtle/armor;1","76;item.armor.equip_wolf":"1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf1;1,1;item/armor/equip_wolf2;1,1;item/armor/equip_wolf2;1","77;item.armor.unequip_wolf":"1;item/armor/unequip_wolf1;1,1;item/armor/unequip_wolf2;1","86;item.axe.scrape":"1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape1;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape2;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1,1;item/axe/scrape3;1","85;item.axe.strip":"0.9;item/axe/strip1;1,0.9;item/axe/strip1;1,0.9;item/axe/strip2;1,0.9;item/axe/strip2;1,0.9;item/axe/strip3;1,0.9;item/axe/strip3;1,0.9;item/axe/strip4;1,0.9;item/axe/strip4;1","87;item.axe.wax_off":"1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off1;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off2;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1,1;item/axe/wax_off3;1","179;item.bone_meal.use":"1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal1;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal2;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal3;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal4;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1,1;item/bonemeal/bonemeal5;1","180;item.book.page_turn":"2;item/book/open_flip1;1,2;item/book/open_flip2;1,2;item/book/open_flip3;1","181;item.book.put":"1;item/book/close_put1;1,1;item/book/close_put2;1","183;item.bottle.empty":"1;item/bottle/empty1;1,1;item/bottle/empty2;1","184;item.bottle.fill":"1;item/bottle/fill1;1,1;item/bottle/fill2;1,1;item/bottle/fill3;1,1;item/bottle/fill4;1","185;item.bottle.fill_dragonbreath":"1;item/bottle/fill_dragonbreath1;1,1;item/bottle/fill_dragonbreath2;1","200;item.brush.brushing.generic":"0.4;item/brush/brushing_generic1;1,0.4;item/brush/brushing_generic2;1,0.4;item/brush/brushing_generic3;1,0.4;item/brush/brushing_generic4;1","202;item.brush.brushing.gravel":"0.6;item/brush/brushing_gravel1;1,0.6;item/brush/brushing_gravel2;1,0.6;item/brush/brushing_gravel3;1,0.6;item/brush/brushing_gravel4;1","204;item.brush.brushing.gravel.complete":"1;item/brush/brushing_gravel_complete1;1,1;item/brush/brushing_gravel_complete2;1,1;item/brush/brushing_gravel_complete3;1,1;item/brush/brushing_gravel_complete4;1","201;item.brush.brushing.sand":"0.6;item/brush/brushing_sand1;1,0.6;item/brush/brushing_sand2;1,0.6;item/brush/brushing_sand3;1,0.6;item/brush/brushing_sand4;1","203;item.brush.brushing.sand.complete":"1;item/brush/brush_sand_complete1;1,1;item/brush/brush_sand_complete2;1,1;item/brush/brush_sand_complete3;1,1;item/brush/brush_sand_complete4;1,1;item/brush/brush_sand_complete5;1","211;item.bucket.empty":"1;item/bucket/empty1;1,1;item/bucket/empty1;1,1;item/bucket/empty2;1,1;item/bucket/empty3;1","212;item.bucket.empty_axolotl":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","213;item.bucket.empty_fish":"1;item/bucket/empty_fish1;1,1;item/bucket/empty_fish2;1,1;item/bucket/empty_fish3;1","214;item.bucket.empty_lava":"1;item/bucket/empty_lava1;1,1;item/bucket/empty_lava2;1,1;item/bucket/empty_lava3;1","215;item.bucket.empty_powder_snow":"1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow1;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1,1;item/bucket/empty_powder_snow2;1","216;item.bucket.empty_tadpole":"0.5;item/bucket/empty_fish1;1,0.5;item/bucket/empty_fish2;1,0.5;item/bucket/empty_fish3;1","217;item.bucket.fill":"1;item/bucket/fill1;1,1;item/bucket/fill2;1,1;item/bucket/fill3;1","218;item.bucket.fill_axolotl":"1;item/bucket/fill_axolotl1;1,1;item/bucket/fill_axolotl2;1,1;item/bucket/fill_axolotl3;1","219;item.bucket.fill_fish":"1;item/bucket/fill_fish1;1,1;item/bucket/fill_fish2;1,1;item/bucket/fill_fish3;1","220;item.bucket.fill_lava":"1;item/bucket/fill_lava1;1,1;item/bucket/fill_lava2;1,1;item/bucket/fill_lava3;1","221;item.bucket.fill_powder_snow":"1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow1;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1,1;item/bucket/fill_powder_snow2;1","222;item.bucket.fill_tadpole":"0.5;item/bucket/fill_fish1;1,0.5;item/bucket/fill_fish2;1,0.5;item/bucket/fill_fish3;1","223;item.bundle.drop_contents":"1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents1;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents2;1,1;item/bundle/drop_contents3;1,1;item/bundle/drop_contents3;1","224;item.bundle.insert":"1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert1;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert2;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1,1;item/bundle/insert3;1","225;item.bundle.insert_fail":"1;item/bundle/insert_fail;1","226;item.bundle.remove_one":"1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one1;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one2;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1,1;item/bundle/remove_one3;1","321;item.chorus_fruit.teleport":"1;mob/endermen/portal;1,1;mob/endermen/portal2;1","397;item.crop.plant":"0.45;item/plant/crop1;1,0.45;item/plant/crop1;1,0.45;item/plant/crop2;1,0.45;item/plant/crop2;1,0.45;item/plant/crop3;1,0.45;item/plant/crop3;1,0.45;item/plant/crop4;1,0.45;item/plant/crop4;1,0.45;item/plant/crop5;1,0.45;item/plant/crop5;1,0.45;item/plant/crop6;1,0.45;item/plant/crop6;1","398;item.crossbow.hit":"1;random/bowhit1;1,1;random/bowhit2;1,1;random/bowhit3;1,1;random/bowhit4;1","399;item.crossbow.loading_end":"1;item/crossbow/loading_end;1","400;item.crossbow.loading_middle":"0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle1;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle2;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle3;1,0.65;item/crossbow/loading_middle4;1","401;item.crossbow.loading_start":"0.3;item/crossbow/loading_start;1","402;item.crossbow.quick_charge_1":"0.65;item/crossbow/quick_charge/quick1_1;1,0.5;item/crossbow/quick_charge/quick1_1;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_2;1,0.65;item/crossbow/quick_charge/quick1_3;1","403;item.crossbow.quick_charge_2":"0.65;item/crossbow/quick_charge/quick2_1;1,0.5;item/crossbow/quick_charge/quick2_1;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_2;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1,0.65;item/crossbow/quick_charge/quick2_3;1","404;item.crossbow.quick_charge_3":"0.65;item/crossbow/quick_charge/quick3_1;1,0.5;item/crossbow/quick_charge/quick3_1;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_2;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1,0.65;item/crossbow/quick_charge/quick3_3;1","405;item.crossbow.shoot":"0.8;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.9;item/crossbow/shoot1;1,0.8;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.9;item/crossbow/shoot2;1,0.8;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1,0.9;item/crossbow/shoot3;1","475;item.dye.use":"1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1,1;item/dye/dye;1","485;item.elytra.flying":"0.6;item/elytra/elytra_loop;1","530;item.firecharge.use":"1;mob/ghast/fireball4;1","545;item.flintandsteel.use":"1;fire/ignite;1","624;item.glow_ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","713;item.hoe.till":"1;item/hoe/till1;1,1;item/hoe/till2;1,1;item/hoe/till3;1,1;item/hoe/till4;1","729;item.honey_bottle.drink":"1;item/bottle/drink_honey1;1,1;item/bottle/drink_honey2;1,0.35;item/bottle/drink_honey3;1,0.75;item/bottle/drink_honey3;1","728;item.honeycomb.wax_on":"1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on1;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on2;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1,1;item/honeycomb/wax_on3;1","769;item.ink_sac.use":"1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac1;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac2;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1,1;item/ink_sac/ink_sac3;1","823;item.lodestone_compass.lock":"1;block/lodestone/lock1;1,1;block/lodestone/lock1;1,1;block/lodestone/lock2;1,1;block/lodestone/lock2;1","824;item.mace.smash_air":"1;item/mace/smash_air1;1,1;item/mace/smash_air2;1,1;item/mace/smash_air3;1","825;item.mace.smash_ground":"1;item/mace/smash_ground1;1,1;item/mace/smash_ground2;1,1;item/mace/smash_ground3;1,1;item/mace/smash_ground4;1","826;item.mace.smash_ground_heavy":"1;item/mace/smash_ground_heavy;1","948;item.nether_wart.plant":"0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart1;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart2;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart3;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart4;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart5;1,0.9;item/plant/netherwart6;1,0.9;item/plant/netherwart6;1","1035;item.ominous_bottle.dispose":"1;item/ominous_bottle/dispose;1","1257;item.shield.block":"1;item/shield/block1;1,1;item/shield/block2;1,1;item/shield/block3;1,1;item/shield/block4;1,1;item/shield/block5;1","1258;item.shield.break":"1;random/break;1","1264;item.shovel.flatten":"1;item/shovel/flatten1;1,1;item/shovel/flatten2;1,1;item/shovel/flatten3;1,1;item/shovel/flatten4;1","1396;item.spyglass.stop_using":"0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1,0.5;item/spyglass/stop;1","1395;item.spyglass.use":"0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1,0.5;item/spyglass/use;1","1423;item.totem.use":"1;item/totem/use_totem;1","1424;item.trident.hit":"1;item/trident/pierce1;1,1;item/trident/pierce2;1,1;item/trident/pierce3;1","1425;item.trident.hit_ground":"0.9;item/trident/ground_impact1;1,0.9;item/trident/ground_impact2;1,0.9;item/trident/ground_impact3;1,0.9;item/trident/ground_impact4;1","1426;item.trident.return":"0.8;item/trident/return1;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return2;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1,0.8;item/trident/return3;1","1427;item.trident.riptide_1":"1;item/trident/riptide1;1","1428;item.trident.riptide_2":"1;item/trident/riptide2;1","1429;item.trident.riptide_3":"1;item/trident/riptide3;1","1430;item.trident.throw":"1;item/trident/throw1;1,1;item/trident/throw2;1","1431;item.trident.thunder":"1;item/trident/thunder1;1,1;item/trident/thunder2;1","1588;item.wolf_armor.break":"1;item/armor/break_wolf;1","1589;item.wolf_armor.crack":"1;item/armor/crack_wolf1;1,1;item/armor/crack_wolf2;1,1;item/armor/crack_wolf3;1,1;item/armor/crack_wolf4;1","1590;item.wolf_armor.damage":"1;item/armor/damage_wolf1;1,1;item/armor/damage_wolf2;1,1;item/armor/damage_wolf3;1,1;item/armor/damage_wolf4;1","1591;item.wolf_armor.repair":"1;item/armor/repair_wolf1;1,1;item/armor/repair_wolf2;1,1;item/armor/repair_wolf3;1,1;item/armor/repair_wolf4;1","892;music.creative":"1;music.game;1,1;music/game/creative/aria_math;1,1;music/game/creative/biome_fest;1,1;music/game/creative/blind_spots;1,1;music/game/creative/dreiton;1,1;music/game/creative/haunt_muskie;1,1;music/game/creative/taswell;1","893;music.credits":"1;music/game/end/alpha;1","913;music.dragon":"1;music/game/end/boss;1","914;music.end":"1;music/game/end/the_end;1","915;music.game":"0.4;music/game/a_familiar_room;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/featherfall;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.8;music/game/komorebi;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,0.4;music/game/puzzlebox;1,1;music/game/subwoofer_lullaby;1,1;music/game/sweden;1,0.4;music/game/watcher;1,1;music/game/wet_hands;1,0.8;music/game/yakusoku;1","916;music.menu":"0.4;music/game/deeper;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/featherfall;1,0.8;music/game/komorebi;1,0.8;music/game/pokopoko;1,0.4;music/game/puzzlebox;1,0.4;music/game/watcher;1,0.8;music/game/yakusoku;1,1;music/menu/beginning_2;1,1;music/menu/floating_trees;1,1;music/menu/moog_city_2;1,1;music/menu/mutation;1","917;music.nether.basalt_deltas":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","918;music.nether.crimson_forest":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,0.5;music/game/nether/crimson_forest/chrysopoeia;7,1;music/game/nether/dead_voxel;1,1;music/game/nether/warmth;1","929;music.nether.nether_wastes":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/nether_wastes/rubedo;6,1;music/game/nether/warmth;1","932;music.nether.soul_sand_valley":"1;music/game/nether/ballad_of_the_cats;1,1;music/game/nether/concrete_halls;1,1;music/game/nether/dead_voxel;1,0.5;music/game/nether/soulsand_valley/so_below;7,1;music/game/nether/warmth;1","937;music.overworld.badlands":"0.4;music/game/crescent_dunes;2,1;music/game/danny;2,1;music/game/dry_hands;2,0.4;music/game/echo_in_the_wind;2,0.4;music/game/featherfall;2,1;music/game/haggstrom;2,1;music/game/key;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,0.4;music/game/one_more_day;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","940;music.overworld.bamboo_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","928;music.overworld.cherry_grove":"0.4;music/game/bromeliad;3,1;music/game/clark;3,0.4;music/game/echo_in_the_wind;3,0.4;music/game/featherfall;3,0.4;music/game/left_to_bloom;3,1;music/game/minecraft;3,1;music/game/sweden;3","919;music.overworld.deep_dark":"1;music/game/ancestry;1,0.4;music/game/deeper;1","936;music.overworld.desert":"0.4;music/game/crescent_dunes;3,1;music/game/danny;3,1;music/game/haggstrom;3,1;music/game/key;3,1;music/game/living_mice;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3","920;music.overworld.dripstone_caves":"1;music/game/an_ordinary_day;1,1;music/game/danny;1,0.4;music/game/deeper;1,0.4;music/game/eld_unknown;2,0.4;music/game/endless;2,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;2,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;2","935;music.overworld.flower_forest":"0.4;music/game/bromeliad;1,1;music/game/danny;1,0.4;music/game/echo_in_the_wind;1,0.4;music/game/featherfall;2,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1","925;music.overworld.forest":"0.4;music/game/bromeliad;1,1;music/game/clark;1,0.4;music/game/comforting_memories;1,1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/floating_dream;1,1;music/game/haggstrom;1,1;music/game/key;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,0.4;music/game/one_more_day;1,1;music/game/oxygene;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1,1;music/game/sweden;1,1;music/game/wet_hands;1","930;music.overworld.frozen_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,1;music/game/wet_hands;1","921;music.overworld.grove":"1;music/game/clark;1,0.4;music/game/comforting_memories;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/infinite_amethyst;1,1;music/game/key;1,1;music/game/mice_on_venus;1,1;music/game/minecraft;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;1,1;music/game/sweden;1,0.4;music/game/wending;1","922;music.overworld.jagged_peaks":"1;music/game/dry_hands;1,0.4;music/game/eld_unknown;1,0.4;music/game/endless;1,0.4;music/game/floating_dream;1,1;music/game/key;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,1;music/game/oxygene;1,0.8;music/game/pokopoko;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","938;music.overworld.jungle":"0.4;music/game/bromeliad;3,1;music/game/danny;3,1;music/game/dry_hands;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,1;music/game/wet_hands;3","923;music.overworld.lush_caves":"0.4;music/game/left_to_bloom;4,1;music/game/an_ordinary_day;2,1;music/game/clark;2,0.4;music/game/echo_in_the_wind;2,0.4;music/game/featherfall;2,1;music/game/floating_dream;2,1;music/game/mice_on_venus;2,1;music/game/minecraft;2,0.4;music/game/one_more_day;2,0.4;music/game/swamp/aerie;2,0.4;music/game/swamp/firebugs;2,0.4;music/game/swamp/labyrinthine;2,1;music/game/sweden;2","927;music.overworld.meadow":"1;music/game/danny;1,1;music/game/haggstrom;1,0.4;music/game/left_to_bloom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;2,1;music/game/subwoofer_lullaby;1","926;music.overworld.old_growth_taiga":"1;music/game/clark;3,0.4;music/game/comforting_memories;3,1;music/game/danny;3,1;music/game/dry_hands;3,0.4;music/game/floating_dream;3,1;music/game/haggstrom;3,1;music/game/key;3,0.4;music/game/left_to_bloom;3,1;music/game/living_mice;3,1;music/game/mice_on_venus;3,1;music/game/minecraft;3,0.4;music/game/one_more_day;3,1;music/game/oxygene;3,1;music/game/subwoofer_lullaby;3,0.4;music/game/swamp/aerie;3,0.4;music/game/swamp/firebugs;3,0.4;music/game/swamp/labyrinthine;3,1;music/game/sweden;3,1;music/game/wet_hands;3","931;music.overworld.snowy_slopes":"0.4;music/game/an_ordinary_day;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,0.4;music/game/one_more_day;1,0.8;music/game/pokopoko;1,0.4;music/game/stand_tall;1,1;music/game/subwoofer_lullaby;1","939;music.overworld.sparse_jungle":"0.4;music/game/bromeliad;2,1;music/game/danny;2,1;music/game/dry_hands;2,1;music/game/haggstrom;2,1;music/game/key;2,0.4;music/game/left_to_bloom;2,1;music/game/living_mice;2,1;music/game/mice_on_venus;2,1;music/game/oxygene;2,1;music/game/subwoofer_lullaby;2,1;music/game/wet_hands;2","933;music.overworld.stony_peaks":"1;music/game/danny;1,1;music/game/dry_hands;1,0.4;music/game/eld_unknown;2,0.4;music/game/endless;1,1;music/game/haggstrom;1,1;music/game/living_mice;1,1;music/game/mice_on_venus;1,0.4;music/game/stand_tall;2,1;music/game/subwoofer_lullaby;1,0.4;music/game/wending;1,1;music/game/wet_hands;1","924;music.overworld.swamp":"0.4;music/game/swamp/aerie;1,0.4;music/game/swamp/firebugs;1,0.4;music/game/swamp/labyrinthine;1","941;music.under_water":"0.4;music/game/water/axolotl;1,0.4;music/game/water/dragon_fish;1,0.4;music/game/water/shuniji;1","895;music_disc.11":"1;records/11;1","896;music_disc.13":"1;records/13;1","894;music_disc.5":"1;records/5;1","897;music_disc.blocks":"1;records/blocks;1","898;music_disc.cat":"1;records/cat;1","899;music_disc.chirp":"1;records/chirp;1","910;music_disc.creator":"1;records/creator;1","911;music_disc.creator_music_box":"1;records/creator_music_box;1","900;music_disc.far":"1;records/far;1","901;music_disc.mall":"1;records/mall;1","902;music_disc.mellohi":"1;records/mellohi;1","908;music_disc.otherside":"1;records/otherside;1","903;music_disc.pigstep":"1;records/pigstep;1","912;music_disc.precipice":"1;records/precipice;1","909;music_disc.relic":"1;records/relic;1","904;music_disc.stal":"1;records/stal;1","905;music_disc.strad":"1;records/strad;1","906;music_disc.wait":"1;records/wait;1","907;music_disc.ward":"1;records/ward;1","1322;particle.soul_escape":"0.25;enchant/soulspeed/soulspeed1;1,0.25;enchant/soulspeed/soulspeed2;1,0.25;enchant/soulspeed/soulspeed3;1,0.25;enchant/soulspeed/soulspeed4;1,0.25;enchant/soulspeed/soulspeed5;1,0.25;enchant/soulspeed/soulspeed6;1,0.25;enchant/soulspeed/soulspeed7;1,0.25;enchant/soulspeed/soulspeed8;1,0.25;enchant/soulspeed/soulspeed9;1,0.25;enchant/soulspeed/soulspeed10;1,0.25;enchant/soulspeed/soulspeed11;1,0.25;enchant/soulspeed/soulspeed12;1,0.25;enchant/soulspeed/soulspeed13;1","1467;ui.button.click":"1;random/click_stereo;1","1470;ui.cartography_table.take_result":"1;ui/cartography_table/drawmap1;1,1;ui/cartography_table/drawmap2;1,1;ui/cartography_table/drawmap3;1","210;ui.hud.bubble_pop":"1;ui/hud/hud_bubble;1","1468;ui.loom.select_pattern":"1;ui/loom/select_pattern1;1,1;ui/loom/select_pattern2;1,1;ui/loom/select_pattern3;1,1;ui/loom/select_pattern4;1,1;ui/loom/select_pattern5;1","1469;ui.loom.take_result":"0.5;ui/loom/take_result1;1,0.5;ui/loom/take_result2;1","1472;ui.stonecutter.select_recipe":"1;random/click;1","1471;ui.stonecutter.take_result":"1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut1;1,1;ui/stonecutter/cut2;1,1;ui/stonecutter/cut2;1","1473;ui.toast.challenge_complete":"0.6;ui/toast/challenge_complete;1","1474;ui.toast.in":"0.4;ui/toast/in;1","1475;ui.toast.out":"0.4;ui/toast/out;1","1557;weather.rain":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1,1;ambient/weather/rain5;1,1;ambient/weather/rain6;1,1;ambient/weather/rain7;1,1;ambient/weather/rain8;1","1558;weather.rain.above":"1;ambient/weather/rain1;1,1;ambient/weather/rain2;1,1;ambient/weather/rain3;1,1;ambient/weather/rain4;1"}}; - window.allSoundsVersionedMap = { "1.20.6": ["ambient/cave/cave20", "ambient/cave/cave21", "ambient/cave/cave22", "ambient/cave/cave23", "block/copper_bulb/toggle", "block/spawner/break1", "block/spawner/break2", "block/spawner/break3", "block/spawner/break4", "block/spawner/step1", "block/spawner/step2", "block/spawner/step3", "block/spawner/step4", "block/spawner/step5", "block/trial_spawner/ambient_ominous1", "block/trial_spawner/ambient_ominous2", "block/trial_spawner/ambient_ominous3", "block/trial_spawner/ambient_ominous4", "block/trial_spawner/ambient_ominous5", "block/trial_spawner/ominous_activate", "block/vault/reject_rewarded_player", "item/bundle/insert_fail", "music/game/deeper", "music/game/eld_unknown", "music/game/endless", "music/game/featherfall", "music/game/komorebi", "music/game/pokopoko", "music/game/puzzlebox", "music/game/watcher", "music/game/yakusoku", "records/creator_music_box", "records/creator", "records/precipice", "event/mob_effects/bad_omen", "event/mob_effects/raid_omen", "item/ominous_bottle/dispose", "tile/piston/in", "tile/piston/out"], "1.20.1": ["block/cobweb/break1", "block/cobweb/break2", "block/cobweb/break3", "block/cobweb/break4", "block/cobweb/break5", "block/cobweb/break6", "block/cobweb/step1", "block/cobweb/step2", "block/cobweb/step3", "block/cobweb/step4", "block/cobweb/step5", "block/cobweb/step6", "block/copper_bulb/break1", "block/copper_bulb/break2", "block/copper_bulb/break3", "block/copper_bulb/break4", "block/copper_bulb/place1", "block/copper_bulb/place2", "block/copper_bulb/place3", "block/copper_bulb/place4", "block/copper_bulb/step1", "block/copper_bulb/step2", "block/copper_bulb/step3", "block/copper_bulb/step4", "block/copper_bulb/step5", "block/copper_bulb/step6", "block/copper_bulb/turn_off", "block/copper_bulb/turn_on", "block/copper_door/toggle1", "block/copper_door/toggle2", "block/copper_door/toggle3", "block/copper_grate/break1", "block/copper_grate/break2", "block/copper_grate/break3", "block/copper_grate/break4", "block/copper_grate/step1", "block/copper_grate/step2", "block/copper_grate/step3", "block/copper_grate/step4", "block/copper_grate/step5", "block/copper_grate/step6", "block/copper_trapdoor/toggle1", "block/copper_trapdoor/toggle2", "block/copper_trapdoor/toggle3", "block/copper_trapdoor/toggle4", "block/crafter/craft", "block/crafter/fail", "block/decorated_pot/insert_fail1", "block/decorated_pot/insert_fail2", "block/decorated_pot/insert_fail3", "block/decorated_pot/insert_fail4", "block/decorated_pot/insert_fail5", "block/decorated_pot/insert1", "block/decorated_pot/insert2", "block/decorated_pot/insert3", "block/decorated_pot/insert4", "block/heavy_core/break1", "block/heavy_core/break2", "block/heavy_core/break3", "block/heavy_core/break4", "block/heavy_core/step1", "block/heavy_core/step2", "block/heavy_core/step3", "block/heavy_core/step4", "block/sponge/absorb1", "block/sponge/absorb2", "block/sponge/absorb3", "block/sponge/break1", "block/sponge/break2", "block/sponge/break3", "block/sponge/break4", "block/sponge/step1", "block/sponge/step2", "block/sponge/step3", "block/sponge/step4", "block/sponge/step5", "block/sponge/step6", "block/sponge/wet_sponge/break1", "block/sponge/wet_sponge/break2", "block/sponge/wet_sponge/break3", "block/sponge/wet_sponge/break4", "block/sponge/wet_sponge/step1", "block/sponge/wet_sponge/step2", "block/sponge/wet_sponge/step3", "block/sponge/wet_sponge/step4", "block/trial_spawner/about_to_spawn_item", "block/trial_spawner/ambient_charged1", "block/trial_spawner/ambient_charged2", "block/trial_spawner/ambient_charged3", "block/trial_spawner/ambient_charged4", "block/trial_spawner/ambient_charged5", "block/trial_spawner/ambient1", "block/trial_spawner/ambient2", "block/trial_spawner/ambient3", "block/trial_spawner/ambient4", "block/trial_spawner/ambient5", "block/trial_spawner/break1", "block/trial_spawner/break2", "block/trial_spawner/break3", "block/trial_spawner/charge_activate", "block/trial_spawner/close_shutter", "block/trial_spawner/detect_player1", "block/trial_spawner/detect_player2", "block/trial_spawner/detect_player3", "block/trial_spawner/eject_item1", "block/trial_spawner/open_shutter", "block/trial_spawner/place1", "block/trial_spawner/place2", "block/trial_spawner/place3", "block/trial_spawner/spawn_item_begin1", "block/trial_spawner/spawn_item_begin2", "block/trial_spawner/spawn_item_begin3", "block/trial_spawner/spawn_item1", "block/trial_spawner/spawn_item2", "block/trial_spawner/spawn_item3", "block/trial_spawner/spawn1", "block/trial_spawner/spawn2", "block/trial_spawner/spawn3", "block/trial_spawner/spawn4", "block/trial_spawner/step1", "block/trial_spawner/step2", "block/trial_spawner/step3", "block/trial_spawner/step4", "block/trial_spawner/step5", "block/tuff_bricks/place1", "block/tuff_bricks/place2", "block/tuff_bricks/place3", "block/tuff_bricks/place4", "block/tuff_bricks/place5", "block/tuff_bricks/step1", "block/tuff_bricks/step2", "block/tuff_bricks/step3", "block/tuff_bricks/step4", "block/tuff_bricks/step5", "block/tuff_bricks/step6", "block/vault/activate", "block/vault/ambient1", "block/vault/ambient2", "block/vault/ambient3", "block/vault/break1", "block/vault/break2", "block/vault/break3", "block/vault/break4", "block/vault/deactivate", "block/vault/eject1", "block/vault/eject2", "block/vault/eject3", "block/vault/insert_fail", "block/vault/insert", "block/vault/open_shutter", "block/vault/place1", "block/vault/place2", "block/vault/place3", "block/vault/place4", "block/vault/step1", "block/vault/step2", "block/vault/step3", "block/vault/step4", "block/vault/step5", "block/vault/step6", "block/vault/step7", "block/vault/step8", "entity/wind_charge/wind_burst1", "entity/wind_charge/wind_burst2", "entity/wind_charge/wind_burst3", "event/mob_effects/bad_omen", "event/mob_effects/raid_omen", "event/mob_effects/trial_omen", "item/armor/break_wolf", "item/armor/crack_wolf1", "item/armor/crack_wolf2", "item/armor/crack_wolf3", "item/armor/crack_wolf4", "item/armor/damage_wolf1", "item/armor/damage_wolf2", "item/armor/damage_wolf3", "item/armor/damage_wolf4", "item/armor/equip_wolf1", "item/armor/equip_wolf2", "item/armor/repair_wolf1", "item/armor/repair_wolf2", "item/armor/repair_wolf3", "item/armor/repair_wolf4", "item/armor/unequip_wolf1", "item/armor/unequip_wolf2", "item/mace/smash_air1", "item/mace/smash_air2", "item/mace/smash_air3", "item/mace/smash_ground_heavy", "item/mace/smash_ground1", "item/mace/smash_ground2", "item/mace/smash_ground3", "item/mace/smash_ground4", "item/ominous_bottle/dispose", "mob/armadillo/ambient1", "mob/armadillo/ambient2", "mob/armadillo/ambient3", "mob/armadillo/ambient4", "mob/armadillo/ambient5", "mob/armadillo/ambient6", "mob/armadillo/ambient7", "mob/armadillo/ambient8", "mob/armadillo/brush_armadillo1", "mob/armadillo/brush_armadillo2", "mob/armadillo/death1", "mob/armadillo/death2", "mob/armadillo/death3", "mob/armadillo/death4", "mob/armadillo/eat1", "mob/armadillo/eat2", "mob/armadillo/eat3", "mob/armadillo/hurt_reduced1", "mob/armadillo/hurt_reduced2", "mob/armadillo/hurt_reduced3", "mob/armadillo/hurt_reduced4", "mob/armadillo/hurt1", "mob/armadillo/hurt2", "mob/armadillo/hurt3", "mob/armadillo/hurt4", "mob/armadillo/hurt5", "mob/armadillo/land1", "mob/armadillo/land2", "mob/armadillo/land3", "mob/armadillo/land4", "mob/armadillo/peek", "mob/armadillo/roll1", "mob/armadillo/roll2", "mob/armadillo/roll3", "mob/armadillo/roll4", "mob/armadillo/scute_drop1", "mob/armadillo/scute_drop2", "mob/armadillo/step1", "mob/armadillo/step2", "mob/armadillo/step3", "mob/armadillo/step4", "mob/armadillo/step5", "mob/armadillo/unroll_finish1", "mob/armadillo/unroll_finish2", "mob/armadillo/unroll_start", "mob/bogged/ambient1", "mob/bogged/ambient2", "mob/bogged/ambient3", "mob/bogged/ambient4", "mob/bogged/death", "mob/bogged/hurt1", "mob/bogged/hurt2", "mob/bogged/hurt3", "mob/bogged/hurt4", "mob/bogged/step1", "mob/bogged/step2", "mob/bogged/step3", "mob/bogged/step4", "mob/breeze/charge1", "mob/breeze/charge2", "mob/breeze/charge3", "mob/breeze/death1", "mob/breeze/death2", "mob/breeze/deflect1", "mob/breeze/deflect2", "mob/breeze/deflect3", "mob/breeze/hurt1", "mob/breeze/hurt2", "mob/breeze/hurt3", "mob/breeze/idle_air1", "mob/breeze/idle_air2", "mob/breeze/idle_air3", "mob/breeze/idle_air4", "mob/breeze/idle1", "mob/breeze/idle2", "mob/breeze/idle3", "mob/breeze/idle4", "mob/breeze/inhale1", "mob/breeze/inhale2", "mob/breeze/jump1", "mob/breeze/jump2", "mob/breeze/land1", "mob/breeze/land2", "mob/breeze/shoot", "mob/breeze/slide1", "mob/breeze/slide2", "mob/breeze/slide3", "mob/breeze/slide4", "mob/breeze/whirl", "mob/breeze/wind_burst1", "mob/breeze/wind_burst2", "mob/breeze/wind_burst3", "music/game/clark", "music/game/creative/aria_math", "music/game/creative/biome_fest", "music/game/creative/blind_spots", "music/game/creative/dreiton", "music/game/creative/haunt_muskie", "music/game/creative/taswell", "music/game/danny", "music/game/dry_hands", "music/game/end/alpha", "music/game/end/the_end", "music/game/haggstrom", "music/game/key", "music/game/living_mice", "music/game/mice_on_venus", "music/game/minecraft", "music/game/nether/ballad_of_the_cats", "music/game/nether/concrete_halls", "music/game/nether/dead_voxel", "music/game/nether/warmth", "music/game/oxygene", "music/game/subwoofer_lullaby", "music/game/sweden", "music/game/wet_hands", "music/menu/beginning_2", "music/menu/floating_trees", "music/menu/moog_city_2", "music/menu/mutation", "block/decorated_pot/break1", "block/decorated_pot/break2", "block/decorated_pot/break3", "block/decorated_pot/break4", "block/decorated_pot/shatter1", "block/decorated_pot/shatter2", "block/decorated_pot/shatter3", "block/decorated_pot/shatter4", "block/decorated_pot/shatter5", "block/decorated_pot/step1", "block/decorated_pot/step2", "block/decorated_pot/step3", "block/decorated_pot/step4", "block/decorated_pot/step5"], "1.19.2": ["block/amethyst/resonate1", "block/amethyst/resonate2", "block/amethyst/resonate3", "block/amethyst/resonate4", "block/bamboo_wood_button/bamboo_wood_button", "block/bamboo_wood_door/toggle1", "block/bamboo_wood_door/toggle2", "block/bamboo_wood_door/toggle3", "block/bamboo_wood_door/toggle4", "block/bamboo_wood_fence/toggle1", "block/bamboo_wood_fence/toggle2", "block/bamboo_wood_fence/toggle3", "block/bamboo_wood_fence/toggle4", "block/bamboo_wood_hanging_sign/break1", "block/bamboo_wood_hanging_sign/break2", "block/bamboo_wood_hanging_sign/break3", "block/bamboo_wood_hanging_sign/break4", "block/bamboo_wood_hanging_sign/step1", "block/bamboo_wood_hanging_sign/step2", "block/bamboo_wood_hanging_sign/step3", "block/bamboo_wood_hanging_sign/step4", "block/bamboo_wood_trapdoor/toggle1", "block/bamboo_wood_trapdoor/toggle2", "block/bamboo_wood_trapdoor/toggle3", "block/bamboo_wood_trapdoor/toggle4", "block/bamboo_wood/break1", "block/bamboo_wood/break2", "block/bamboo_wood/break3", "block/bamboo_wood/break4", "block/bamboo_wood/break5", "block/bamboo_wood/step1", "block/bamboo_wood/step2", "block/bamboo_wood/step3", "block/bamboo_wood/step4", "block/bamboo_wood/step5", "block/bamboo_wood/step6", "block/cherry_leaves/break1", "block/cherry_leaves/break2", "block/cherry_leaves/break3", "block/cherry_leaves/break4", "block/cherry_leaves/break5", "block/cherry_leaves/step1", "block/cherry_leaves/step2", "block/cherry_leaves/step3", "block/cherry_leaves/step4", "block/cherry_leaves/step5", "block/cherry_wood_hanging_sign/break1", "block/cherry_wood_hanging_sign/break2", "block/cherry_wood_hanging_sign/break3", "block/cherry_wood_hanging_sign/break4", "block/cherry_wood_hanging_sign/step1", "block/cherry_wood_hanging_sign/step2", "block/cherry_wood_hanging_sign/step3", "block/cherry_wood_hanging_sign/step4", "block/cherry_wood/break1", "block/cherry_wood/break2", "block/cherry_wood/break3", "block/cherry_wood/break4", "block/cherry_wood/break5", "block/cherry_wood/step1", "block/cherry_wood/step2", "block/cherry_wood/step3", "block/cherry_wood/step4", "block/cherry_wood/step5", "block/cherry_wood/step6", "block/cherrywood_button/cherrywood_click", "block/cherrywood_door/toggle1", "block/cherrywood_door/toggle2", "block/cherrywood_door/toggle3", "block/cherrywood_door/toggle4", "block/cherrywood_fence_gate/toggle1", "block/cherrywood_fence_gate/toggle2", "block/cherrywood_fence_gate/toggle3", "block/cherrywood_trapdoor/toggle1", "block/cherrywood_trapdoor/toggle2", "block/cherrywood_trapdoor/toggle3", "block/chest/close_locked", "block/chest/close1", "block/chest/open_locked", "block/chiseled_bookshelf/break1", "block/chiseled_bookshelf/break2", "block/chiseled_bookshelf/break3", "block/chiseled_bookshelf/break4", "block/chiseled_bookshelf/break5", "block/chiseled_bookshelf/break6", "block/chiseled_bookshelf/insert_enchanted1", "block/chiseled_bookshelf/insert_enchanted2", "block/chiseled_bookshelf/insert_enchanted3", "block/chiseled_bookshelf/insert_enchanted4", "block/chiseled_bookshelf/insert1", "block/chiseled_bookshelf/insert2", "block/chiseled_bookshelf/insert3", "block/chiseled_bookshelf/insert4", "block/chiseled_bookshelf/pickup_enchanted1", "block/chiseled_bookshelf/pickup_enchanted2", "block/chiseled_bookshelf/pickup_enchanted3", "block/chiseled_bookshelf/pickup1", "block/chiseled_bookshelf/pickup2", "block/chiseled_bookshelf/pickup3", "block/chiseled_bookshelf/step1", "block/chiseled_bookshelf/step2", "block/chiseled_bookshelf/step3", "block/chiseled_bookshelf/step4", "block/chiseled_bookshelf/step5", "block/decorated_pot/break1", "block/decorated_pot/break2", "block/decorated_pot/break3", "block/decorated_pot/break4", "block/decorated_pot/shatter1", "block/decorated_pot/shatter2", "block/decorated_pot/shatter3", "block/decorated_pot/shatter4", "block/decorated_pot/shatter5", "block/decorated_pot/shatter6", "block/decorated_pot/step1", "block/decorated_pot/step2", "block/decorated_pot/step3", "block/decorated_pot/step4", "block/decorated_pot/step5", "block/hanging_sign/break1", "block/hanging_sign/break2", "block/hanging_sign/break3", "block/hanging_sign/break4", "block/hanging_sign/step1", "block/hanging_sign/step2", "block/hanging_sign/step3", "block/hanging_sign/step4", "block/nether_wood_button/nether_wood_button", "block/nether_wood_door/toggle1", "block/nether_wood_door/toggle2", "block/nether_wood_door/toggle3", "block/nether_wood_door/toggle4", "block/nether_wood_fence/toggle1", "block/nether_wood_fence/toggle2", "block/nether_wood_fence/toggle3", "block/nether_wood_fence/toggle4", "block/nether_wood_hanging_sign/break1", "block/nether_wood_hanging_sign/break2", "block/nether_wood_hanging_sign/break3", "block/nether_wood_hanging_sign/break4", "block/nether_wood_hanging_sign/step1", "block/nether_wood_hanging_sign/step2", "block/nether_wood_hanging_sign/step3", "block/nether_wood_hanging_sign/step4", "block/nether_wood_trapdoor/toggle1", "block/nether_wood_trapdoor/toggle2", "block/nether_wood_trapdoor/toggle3", "block/nether_wood_trapdoor/toggle4", "block/nether_wood/break1", "block/nether_wood/break2", "block/nether_wood/break3", "block/nether_wood/break4", "block/nether_wood/step1", "block/nether_wood/step2", "block/nether_wood/step3", "block/nether_wood/step4", "block/nether_wood/step5", "block/sign/waxed_interact_fail1", "block/sign/waxed_interact_fail2", "block/sign/waxed_interact_fail3", "block/suspicious_gravel/break1", "block/suspicious_gravel/break2", "block/suspicious_gravel/break3", "block/suspicious_gravel/break4", "block/suspicious_gravel/break5", "block/suspicious_gravel/break6", "block/suspicious_gravel/place1", "block/suspicious_gravel/place2", "block/suspicious_gravel/place3", "block/suspicious_gravel/place4", "block/suspicious_gravel/step1", "block/suspicious_gravel/step2", "block/suspicious_gravel/step3", "block/suspicious_gravel/step4", "block/suspicious_sand/break1", "block/suspicious_sand/break2", "block/suspicious_sand/break3", "block/suspicious_sand/break4", "block/suspicious_sand/break5", "block/suspicious_sand/break6", "block/suspicious_sand/place1", "block/suspicious_sand/place2", "block/suspicious_sand/place3", "block/suspicious_sand/place4", "block/suspicious_sand/place5", "block/suspicious_sand/step1", "block/suspicious_sand/step2", "block/suspicious_sand/step3", "block/suspicious_sand/step4", "block/suspicious_sand/step5", "block/wooden_door/close1", "block/wooden_door/open1", "item/brush/brush_sand_complete1", "item/brush/brush_sand_complete2", "item/brush/brush_sand_complete3", "item/brush/brush_sand_complete4", "item/brush/brush_sand_complete5", "item/brush/brushing_generic1", "item/brush/brushing_generic2", "item/brush/brushing_generic3", "item/brush/brushing_generic4", "item/brush/brushing_gravel_complete1", "item/brush/brushing_gravel_complete2", "item/brush/brushing_gravel_complete3", "item/brush/brushing_gravel_complete4", "item/brush/brushing_gravel1", "item/brush/brushing_gravel2", "item/brush/brushing_gravel3", "item/brush/brushing_gravel4", "item/brush/brushing_sand1", "item/brush/brushing_sand2", "item/brush/brushing_sand3", "item/brush/brushing_sand4", "mob/camel/ambient1", "mob/camel/ambient2", "mob/camel/ambient3", "mob/camel/ambient4", "mob/camel/ambient5", "mob/camel/ambient6", "mob/camel/ambient7", "mob/camel/ambient8", "mob/camel/dash_ready1", "mob/camel/dash1", "mob/camel/dash2", "mob/camel/dash3", "mob/camel/dash4", "mob/camel/dash5", "mob/camel/dash6", "mob/camel/death1", "mob/camel/death2", "mob/camel/eat1", "mob/camel/eat2", "mob/camel/eat3", "mob/camel/eat4", "mob/camel/eat5", "mob/camel/hurt1", "mob/camel/hurt2", "mob/camel/hurt3", "mob/camel/hurt4", "mob/camel/sit1", "mob/camel/sit2", "mob/camel/sit3", "mob/camel/sit4", "mob/camel/stand1", "mob/camel/stand2", "mob/camel/stand3", "mob/camel/stand4", "mob/camel/stand5", "mob/camel/step_sand1", "mob/camel/step_sand2", "mob/camel/step_sand3", "mob/camel/step_sand4", "mob/camel/step_sand5", "mob/camel/step_sand6", "mob/camel/step1", "mob/camel/step2", "mob/camel/step3", "mob/camel/step4", "mob/camel/step5", "mob/camel/step6", "mob/sniffer/death1", "mob/sniffer/death2", "mob/sniffer/digging_stop1", "mob/sniffer/digging_stop2", "mob/sniffer/eat1", "mob/sniffer/eat2", "mob/sniffer/eat3", "mob/sniffer/happy1", "mob/sniffer/happy2", "mob/sniffer/happy3", "mob/sniffer/happy4", "mob/sniffer/happy5", "mob/sniffer/hurt1", "mob/sniffer/hurt2", "mob/sniffer/hurt3", "mob/sniffer/idle1", "mob/sniffer/idle10", "mob/sniffer/idle11", "mob/sniffer/idle2", "mob/sniffer/idle3", "mob/sniffer/idle4", "mob/sniffer/idle5", "mob/sniffer/idle6", "mob/sniffer/idle7", "mob/sniffer/idle8", "mob/sniffer/idle9", "mob/sniffer/longdig1", "mob/sniffer/longdig2", "mob/sniffer/scenting1", "mob/sniffer/scenting2", "mob/sniffer/scenting3", "mob/sniffer/searching1", "mob/sniffer/searching2", "mob/sniffer/searching3", "mob/sniffer/searching4", "mob/sniffer/searching5", "mob/sniffer/searching6", "mob/sniffer/sniffing1", "mob/sniffer/sniffing2", "mob/sniffer/sniffing3", "mob/sniffer/step1", "mob/sniffer/step2", "mob/sniffer/step3", "mob/sniffer/step4", "mob/sniffer/step5", "mob/sniffer/step6", "music/game/a_familiar_room", "music/game/bromeliad", "music/game/crescent_dunes", "music/game/echo_in_the_wind", "records/relic", "block/wooden_door/close2", "block/wooden_door/close3", "block/wooden_door/open2"], "1.18.2": ["block/froglight/break1", "block/froglight/break2", "block/froglight/break3", "block/froglight/break4", "block/froglight/step1", "block/froglight/step2", "block/froglight/step3", "block/froglight/step4", "block/froglight/step5", "block/froglight/step6", "block/frogspawn/break1", "block/frogspawn/break2", "block/frogspawn/break3", "block/frogspawn/break4", "block/frogspawn/hatch1", "block/frogspawn/hatch2", "block/frogspawn/hatch3", "block/frogspawn/hatch4", "block/frogspawn/hatch5", "block/frogspawn/step1", "block/frogspawn/step2", "block/frogspawn/step3", "block/frogspawn/step4", "block/frogspawn/step5", "block/frogspawn/step6", "block/mangrove_roots/break1", "block/mangrove_roots/break2", "block/mangrove_roots/break3", "block/mangrove_roots/break4", "block/mangrove_roots/break5", "block/mangrove_roots/break6", "block/mangrove_roots/step1", "block/mangrove_roots/step2", "block/mangrove_roots/step3", "block/mangrove_roots/step4", "block/mangrove_roots/step5", "block/mangrove_roots/step6", "block/mud_bricks/break1", "block/mud_bricks/break2", "block/mud_bricks/break3", "block/mud_bricks/break4", "block/mud_bricks/break5", "block/mud_bricks/break6", "block/mud_bricks/step1", "block/mud_bricks/step2", "block/mud_bricks/step3", "block/mud_bricks/step4", "block/mud_bricks/step5", "block/mud_bricks/step6", "block/mud/break1", "block/mud/break2", "block/mud/break3", "block/mud/break4", "block/mud/break5", "block/mud/break6", "block/mud/step1", "block/mud/step2", "block/mud/step3", "block/mud/step4", "block/mud/step5", "block/mud/step6", "block/muddy_mangrove_roots/break1", "block/muddy_mangrove_roots/break2", "block/muddy_mangrove_roots/break3", "block/muddy_mangrove_roots/break4", "block/muddy_mangrove_roots/break5", "block/muddy_mangrove_roots/break6", "block/muddy_mangrove_roots/step1", "block/muddy_mangrove_roots/step2", "block/muddy_mangrove_roots/step3", "block/muddy_mangrove_roots/step4", "block/muddy_mangrove_roots/step5", "block/muddy_mangrove_roots/step6", "block/packed_mud/break1", "block/packed_mud/break2", "block/packed_mud/break3", "block/packed_mud/break4", "block/packed_mud/break5", "block/packed_mud/break6", "block/packed_mud/step1", "block/packed_mud/step2", "block/packed_mud/step3", "block/packed_mud/step4", "block/packed_mud/step5", "block/packed_mud/step6", "block/sculk_catalyst/break1", "block/sculk_catalyst/break10", "block/sculk_catalyst/break2", "block/sculk_catalyst/break3", "block/sculk_catalyst/break4", "block/sculk_catalyst/break5", "block/sculk_catalyst/break6", "block/sculk_catalyst/break7", "block/sculk_catalyst/break8", "block/sculk_catalyst/break9", "block/sculk_catalyst/place1", "block/sculk_catalyst/place2", "block/sculk_catalyst/place3", "block/sculk_catalyst/place4", "block/sculk_catalyst/place5", "block/sculk_catalyst/step1", "block/sculk_catalyst/step2", "block/sculk_catalyst/step3", "block/sculk_catalyst/step4", "block/sculk_catalyst/step5", "block/sculk_catalyst/step6", "block/sculk_shrieker/break1", "block/sculk_shrieker/break2", "block/sculk_shrieker/break3", "block/sculk_shrieker/break4", "block/sculk_shrieker/break5", "block/sculk_shrieker/break6", "block/sculk_shrieker/place1", "block/sculk_shrieker/place2", "block/sculk_shrieker/place3", "block/sculk_shrieker/place4", "block/sculk_shrieker/place5", "block/sculk_shrieker/shriek1", "block/sculk_shrieker/shriek2", "block/sculk_shrieker/shriek3", "block/sculk_shrieker/shriek4", "block/sculk_shrieker/shriek5", "block/sculk_vein/break1", "block/sculk_vein/break2", "block/sculk_vein/break3", "block/sculk_vein/break4", "block/sculk_vein/break5", "block/sculk/break1", "block/sculk/break10", "block/sculk/break11", "block/sculk/break12", "block/sculk/break13", "block/sculk/break14", "block/sculk/break2", "block/sculk/break3", "block/sculk/break4", "block/sculk/break5", "block/sculk/break6", "block/sculk/break7", "block/sculk/break8", "block/sculk/break9", "block/sculk/charge1", "block/sculk/charge2", "block/sculk/charge3", "block/sculk/charge4", "block/sculk/charge5", "block/sculk/place1", "block/sculk/place2", "block/sculk/place3", "block/sculk/place4", "block/sculk/place5", "block/sculk/spread1", "block/sculk/spread2", "block/sculk/spread3", "block/sculk/spread4", "block/sculk/spread5", "item/goat_horn/call0", "item/goat_horn/call1", "item/goat_horn/call2", "item/goat_horn/call3", "item/goat_horn/call4", "item/goat_horn/call5", "item/goat_horn/call6", "item/goat_horn/call7", "mob/allay/death1", "mob/allay/death2", "mob/allay/hurt1", "mob/allay/hurt2", "mob/allay/idle_with_item1", "mob/allay/idle_with_item2", "mob/allay/idle_with_item3", "mob/allay/idle_with_item4", "mob/allay/idle_without_item1", "mob/allay/idle_without_item2", "mob/allay/idle_without_item3", "mob/allay/idle_without_item4", "mob/allay/item_given1", "mob/allay/item_given2", "mob/allay/item_given3", "mob/allay/item_given4", "mob/allay/item_taken1", "mob/allay/item_taken2", "mob/allay/item_taken3", "mob/allay/item_taken4", "mob/allay/item_thrown1", "mob/frog/death1", "mob/frog/death2", "mob/frog/death3", "mob/frog/eat1", "mob/frog/eat2", "mob/frog/eat3", "mob/frog/eat4", "mob/frog/hurt1", "mob/frog/hurt2", "mob/frog/hurt3", "mob/frog/hurt4", "mob/frog/hurt5", "mob/frog/idle1", "mob/frog/idle2", "mob/frog/idle3", "mob/frog/idle4", "mob/frog/idle5", "mob/frog/idle6", "mob/frog/idle7", "mob/frog/idle8", "mob/frog/lay_spawn1", "mob/frog/lay_spawn2", "mob/frog/long_jump1", "mob/frog/long_jump2", "mob/frog/long_jump3", "mob/frog/long_jump4", "mob/frog/step1", "mob/frog/step2", "mob/frog/step3", "mob/frog/step4", "mob/frog/tongue1", "mob/frog/tongue2", "mob/frog/tongue3", "mob/frog/tongue4", "mob/goat/horn_break1", "mob/goat/horn_break2", "mob/goat/horn_break3", "mob/goat/horn_break4", "mob/tadpole/death1", "mob/tadpole/death2", "mob/tadpole/hurt1", "mob/tadpole/hurt2", "mob/tadpole/hurt3", "mob/tadpole/hurt4", "mob/warden/agitated_1", "mob/warden/agitated_2", "mob/warden/agitated_3", "mob/warden/agitated_4", "mob/warden/agitated_5", "mob/warden/agitated_6", "mob/warden/ambient_1", "mob/warden/ambient_10", "mob/warden/ambient_11", "mob/warden/ambient_12", "mob/warden/ambient_2", "mob/warden/ambient_3", "mob/warden/ambient_4", "mob/warden/ambient_5", "mob/warden/ambient_6", "mob/warden/ambient_7", "mob/warden/ambient_8", "mob/warden/ambient_9", "mob/warden/angry_1", "mob/warden/angry_2", "mob/warden/angry_3", "mob/warden/angry_4", "mob/warden/angry_5", "mob/warden/angry_6", "mob/warden/attack_impact_1", "mob/warden/attack_impact_2", "mob/warden/death_1", "mob/warden/death_2", "mob/warden/dig", "mob/warden/emerge", "mob/warden/heartbeat_1", "mob/warden/heartbeat_2", "mob/warden/heartbeat_3", "mob/warden/heartbeat_4", "mob/warden/hurt_1", "mob/warden/hurt_2", "mob/warden/hurt_3", "mob/warden/hurt_4", "mob/warden/listening_1", "mob/warden/listening_2", "mob/warden/listening_3", "mob/warden/listening_4", "mob/warden/listening_5", "mob/warden/listening_angry_1", "mob/warden/listening_angry_2", "mob/warden/listening_angry_3", "mob/warden/listening_angry_4", "mob/warden/listening_angry_5", "mob/warden/nearby_close_1", "mob/warden/nearby_close_2", "mob/warden/nearby_close_3", "mob/warden/nearby_close_4", "mob/warden/nearby_closer_1", "mob/warden/nearby_closer_2", "mob/warden/nearby_closer_3", "mob/warden/nearby_closest_1", "mob/warden/nearby_closest_2", "mob/warden/nearby_closest_3", "mob/warden/roar_1", "mob/warden/roar_2", "mob/warden/roar_3", "mob/warden/roar_4", "mob/warden/roar_5", "mob/warden/sniff_1", "mob/warden/sniff_2", "mob/warden/sniff_3", "mob/warden/sniff_4", "mob/warden/sonic_boom1", "mob/warden/sonic_boom2", "mob/warden/sonic_boom3", "mob/warden/sonic_boom4", "mob/warden/sonic_charge1", "mob/warden/sonic_charge2", "mob/warden/sonic_charge3", "mob/warden/sonic_charge4", "mob/warden/step_1", "mob/warden/step_2", "mob/warden/step_3", "mob/warden/step_4", "mob/warden/tendril_clicks_1", "mob/warden/tendril_clicks_2", "mob/warden/tendril_clicks_3", "mob/warden/tendril_clicks_4", "mob/warden/tendril_clicks_5", "mob/warden/tendril_clicks_6", "music/game/ancestry", "music/game/swamp/aerie", "music/game/swamp/firebugs", "music/game/swamp/labyrinthine", "records/5"], "1.17.1": ["item/bundle/drop_contents1", "item/bundle/drop_contents2", "item/bundle/drop_contents3", "item/bundle/insert1", "item/bundle/insert2", "item/bundle/insert3", "item/bundle/remove_one1", "item/bundle/remove_one2", "item/bundle/remove_one3", "music/game/an_ordinary_day", "music/game/comforting_memories", "music/game/floating_dream", "music/game/infinite_amethyst", "music/game/left_to_bloom", "music/game/one_more_day", "music/game/stand_tall", "music/game/wending", "records/otherside"], "1.16.5": ["block/amethyst_cluster/break1", "block/amethyst_cluster/break2", "block/amethyst_cluster/break3", "block/amethyst_cluster/break4", "block/amethyst_cluster/place1", "block/amethyst_cluster/place2", "block/amethyst_cluster/place3", "block/amethyst_cluster/place4", "block/amethyst/break1", "block/amethyst/break2", "block/amethyst/break3", "block/amethyst/break4", "block/amethyst/place1", "block/amethyst/place2", "block/amethyst/place3", "block/amethyst/place4", "block/amethyst/shimmer", "block/amethyst/step1", "block/amethyst/step10", "block/amethyst/step11", "block/amethyst/step12", "block/amethyst/step13", "block/amethyst/step14", "block/amethyst/step2", "block/amethyst/step3", "block/amethyst/step4", "block/amethyst/step5", "block/amethyst/step6", "block/amethyst/step7", "block/amethyst/step8", "block/amethyst/step9", "block/azalea_leaves/break1", "block/azalea_leaves/break2", "block/azalea_leaves/break3", "block/azalea_leaves/break4", "block/azalea_leaves/break5", "block/azalea_leaves/break6", "block/azalea_leaves/break7", "block/azalea_leaves/step1", "block/azalea_leaves/step2", "block/azalea_leaves/step3", "block/azalea_leaves/step4", "block/azalea_leaves/step5", "block/azalea/break1", "block/azalea/break2", "block/azalea/break3", "block/azalea/break4", "block/azalea/break5", "block/azalea/break6", "block/azalea/step1", "block/azalea/step2", "block/azalea/step3", "block/azalea/step4", "block/azalea/step5", "block/azalea/step6", "block/big_dripleaf/break1", "block/big_dripleaf/break2", "block/big_dripleaf/break3", "block/big_dripleaf/break4", "block/big_dripleaf/break5", "block/big_dripleaf/break6", "block/big_dripleaf/step1", "block/big_dripleaf/step2", "block/big_dripleaf/step3", "block/big_dripleaf/step4", "block/big_dripleaf/step5", "block/big_dripleaf/step6", "block/big_dripleaf/tilt_down1", "block/big_dripleaf/tilt_down2", "block/big_dripleaf/tilt_down3", "block/big_dripleaf/tilt_down4", "block/big_dripleaf/tilt_down5", "block/big_dripleaf/tilt_up1", "block/big_dripleaf/tilt_up2", "block/big_dripleaf/tilt_up3", "block/big_dripleaf/tilt_up4", "block/cake/add_candle1", "block/cake/add_candle2", "block/cake/add_candle3", "block/calcite/break1", "block/calcite/break2", "block/calcite/break3", "block/calcite/break4", "block/calcite/place1", "block/calcite/place2", "block/calcite/place3", "block/calcite/place4", "block/calcite/step1", "block/calcite/step2", "block/calcite/step3", "block/calcite/step4", "block/calcite/step5", "block/calcite/step6", "block/candle/ambient1", "block/candle/ambient2", "block/candle/ambient3", "block/candle/ambient4", "block/candle/ambient5", "block/candle/ambient6", "block/candle/ambient7", "block/candle/ambient8", "block/candle/ambient9", "block/candle/break1", "block/candle/break2", "block/candle/break3", "block/candle/break4", "block/candle/break5", "block/candle/extinguish1", "block/candle/extinguish2", "block/candle/extinguish3", "block/candle/step1", "block/candle/step2", "block/candle/step3", "block/candle/step4", "block/candle/step5", "block/cave_vines/break1", "block/cave_vines/break2", "block/cave_vines/break3", "block/cave_vines/break4", "block/cave_vines/break5", "block/copper/break1", "block/copper/break2", "block/copper/break3", "block/copper/break4", "block/copper/step1", "block/copper/step2", "block/copper/step3", "block/copper/step4", "block/copper/step5", "block/copper/step6", "block/deepslate_bricks/place1", "block/deepslate_bricks/place2", "block/deepslate_bricks/place3", "block/deepslate_bricks/place4", "block/deepslate_bricks/place5", "block/deepslate_bricks/place6", "block/deepslate_bricks/step1", "block/deepslate_bricks/step2", "block/deepslate_bricks/step3", "block/deepslate_bricks/step4", "block/deepslate_bricks/step5", "block/deepslate/break1", "block/deepslate/break2", "block/deepslate/break3", "block/deepslate/break4", "block/deepslate/place1", "block/deepslate/place2", "block/deepslate/place3", "block/deepslate/place4", "block/deepslate/place5", "block/deepslate/place6", "block/deepslate/step1", "block/deepslate/step2", "block/deepslate/step3", "block/deepslate/step4", "block/deepslate/step5", "block/deepslate/step6", "block/dripstone/break1", "block/dripstone/break2", "block/dripstone/break3", "block/dripstone/break4", "block/dripstone/break5", "block/dripstone/step1", "block/dripstone/step2", "block/dripstone/step3", "block/dripstone/step4", "block/dripstone/step5", "block/dripstone/step6", "block/hanging_roots/break1", "block/hanging_roots/break2", "block/hanging_roots/break3", "block/hanging_roots/break4", "block/hanging_roots/step1", "block/hanging_roots/step2", "block/hanging_roots/step3", "block/hanging_roots/step4", "block/hanging_roots/step5", "block/hanging_roots/step6", "block/moss/break1", "block/moss/break2", "block/moss/break3", "block/moss/break4", "block/moss/break5", "block/moss/step1", "block/moss/step2", "block/moss/step3", "block/moss/step4", "block/moss/step5", "block/moss/step6", "block/pointed_dripstone/drip_lava_cauldron1", "block/pointed_dripstone/drip_lava_cauldron2", "block/pointed_dripstone/drip_lava_cauldron3", "block/pointed_dripstone/drip_lava_cauldron4", "block/pointed_dripstone/drip_lava1", "block/pointed_dripstone/drip_lava2", "block/pointed_dripstone/drip_lava3", "block/pointed_dripstone/drip_lava4", "block/pointed_dripstone/drip_lava5", "block/pointed_dripstone/drip_lava6", "block/pointed_dripstone/drip_water_cauldron1", "block/pointed_dripstone/drip_water_cauldron2", "block/pointed_dripstone/drip_water_cauldron3", "block/pointed_dripstone/drip_water_cauldron4", "block/pointed_dripstone/drip_water_cauldron5", "block/pointed_dripstone/drip_water_cauldron6", "block/pointed_dripstone/drip_water_cauldron7", "block/pointed_dripstone/drip_water_cauldron8", "block/pointed_dripstone/drip_water1", "block/pointed_dripstone/drip_water10", "block/pointed_dripstone/drip_water11", "block/pointed_dripstone/drip_water12", "block/pointed_dripstone/drip_water13", "block/pointed_dripstone/drip_water14", "block/pointed_dripstone/drip_water15", "block/pointed_dripstone/drip_water2", "block/pointed_dripstone/drip_water3", "block/pointed_dripstone/drip_water4", "block/pointed_dripstone/drip_water5", "block/pointed_dripstone/drip_water6", "block/pointed_dripstone/drip_water7", "block/pointed_dripstone/drip_water8", "block/pointed_dripstone/drip_water9", "block/pointed_dripstone/land1", "block/pointed_dripstone/land2", "block/pointed_dripstone/land3", "block/pointed_dripstone/land4", "block/pointed_dripstone/land5", "block/powder_snow/break1", "block/powder_snow/break2", "block/powder_snow/break3", "block/powder_snow/break4", "block/powder_snow/break5", "block/powder_snow/break6", "block/powder_snow/break7", "block/powder_snow/step1", "block/powder_snow/step10", "block/powder_snow/step2", "block/powder_snow/step3", "block/powder_snow/step4", "block/powder_snow/step5", "block/powder_snow/step6", "block/powder_snow/step7", "block/powder_snow/step8", "block/powder_snow/step9", "block/rooted_dirt/break1", "block/rooted_dirt/break2", "block/rooted_dirt/break3", "block/rooted_dirt/break4", "block/rooted_dirt/step1", "block/rooted_dirt/step2", "block/rooted_dirt/step3", "block/rooted_dirt/step4", "block/rooted_dirt/step5", "block/rooted_dirt/step6", "block/sculk_sensor/break1", "block/sculk_sensor/break2", "block/sculk_sensor/break3", "block/sculk_sensor/break4", "block/sculk_sensor/break5", "block/sculk_sensor/place1", "block/sculk_sensor/place2", "block/sculk_sensor/place3", "block/sculk_sensor/place4", "block/sculk_sensor/place5", "block/sculk_sensor/sculk_clicking_stop1", "block/sculk_sensor/sculk_clicking_stop2", "block/sculk_sensor/sculk_clicking_stop3", "block/sculk_sensor/sculk_clicking_stop4", "block/sculk_sensor/sculk_clicking_stop5", "block/sculk_sensor/sculk_clicking1", "block/sculk_sensor/sculk_clicking2", "block/sculk_sensor/sculk_clicking3", "block/sculk_sensor/sculk_clicking4", "block/sculk_sensor/sculk_clicking5", "block/sculk_sensor/sculk_clicking6", "block/sculk/step1", "block/sculk/step2", "block/sculk/step3", "block/sculk/step4", "block/sculk/step5", "block/sculk/step6", "block/spore_blossom/break1", "block/spore_blossom/break2", "block/spore_blossom/break3", "block/spore_blossom/break4", "block/spore_blossom/break5", "block/spore_blossom/step1", "block/spore_blossom/step2", "block/spore_blossom/step3", "block/spore_blossom/step4", "block/spore_blossom/step5", "block/spore_blossom/step6", "block/tuff/break1", "block/tuff/break2", "block/tuff/break3", "block/tuff/break4", "block/tuff/break5", "block/tuff/step1", "block/tuff/step2", "block/tuff/step3", "block/tuff/step4", "block/tuff/step5", "block/tuff/step6", "block/vine/break1", "block/vine/break2", "block/vine/break3", "block/vine/break4", "entity/glow_squid/ambient1", "entity/glow_squid/ambient2", "entity/glow_squid/ambient3", "entity/glow_squid/ambient4", "entity/glow_squid/ambient5", "entity/glow_squid/death1", "entity/glow_squid/death2", "entity/glow_squid/death3", "entity/glow_squid/hurt1", "entity/glow_squid/hurt2", "entity/glow_squid/hurt3", "entity/glow_squid/hurt4", "entity/glow_squid/squirt1", "entity/glow_squid/squirt2", "entity/glow_squid/squirt3", "entity/player/hurt/freeze_hurt1", "entity/player/hurt/freeze_hurt2", "entity/player/hurt/freeze_hurt3", "entity/player/hurt/freeze_hurt4", "entity/player/hurt/freeze_hurt5", "item/axe/scrape1", "item/axe/scrape2", "item/axe/scrape3", "item/axe/wax_off1", "item/axe/wax_off2", "item/axe/wax_off3", "item/bonemeal/bonemeal1", "item/bonemeal/bonemeal2", "item/bonemeal/bonemeal3", "item/bonemeal/bonemeal4", "item/bonemeal/bonemeal5", "item/bucket/empty_powder_snow1", "item/bucket/empty_powder_snow2", "item/bucket/fill_axolotl1", "item/bucket/fill_axolotl2", "item/bucket/fill_axolotl3", "item/bucket/fill_powder_snow1", "item/bucket/fill_powder_snow2", "item/dye/dye", "item/honeycomb/wax_on1", "item/honeycomb/wax_on2", "item/honeycomb/wax_on3", "item/ink_sac/ink_sac1", "item/ink_sac/ink_sac2", "item/ink_sac/ink_sac3", "item/spyglass/stop", "item/spyglass/use", "minecart/inside_underwater1", "minecart/inside_underwater2", "minecart/inside_underwater3", "mob/axolotl/attack1", "mob/axolotl/attack2", "mob/axolotl/attack3", "mob/axolotl/attack4", "mob/axolotl/death1", "mob/axolotl/death2", "mob/axolotl/hurt1", "mob/axolotl/hurt2", "mob/axolotl/hurt3", "mob/axolotl/hurt4", "mob/axolotl/idle_air1", "mob/axolotl/idle_air2", "mob/axolotl/idle_air3", "mob/axolotl/idle_air4", "mob/axolotl/idle_air5", "mob/axolotl/idle1", "mob/axolotl/idle2", "mob/axolotl/idle3", "mob/axolotl/idle4", "mob/axolotl/idle5", "mob/goat/death1", "mob/goat/death2", "mob/goat/death3", "mob/goat/death4", "mob/goat/death5", "mob/goat/eat1", "mob/goat/eat2", "mob/goat/eat3", "mob/goat/hurt1", "mob/goat/hurt2", "mob/goat/hurt3", "mob/goat/hurt4", "mob/goat/idle1", "mob/goat/idle2", "mob/goat/idle3", "mob/goat/idle4", "mob/goat/idle5", "mob/goat/idle6", "mob/goat/idle7", "mob/goat/idle8", "mob/goat/impact1", "mob/goat/impact2", "mob/goat/impact3", "mob/goat/jump1", "mob/goat/jump2", "mob/goat/pre_ram1", "mob/goat/pre_ram2", "mob/goat/pre_ram3", "mob/goat/pre_ram4", "mob/goat/scream1", "mob/goat/scream2", "mob/goat/scream3", "mob/goat/scream4", "mob/goat/scream5", "mob/goat/scream6", "mob/goat/scream7", "mob/goat/scream8", "mob/goat/scream9", "mob/goat/screaming_death1", "mob/goat/screaming_death2", "mob/goat/screaming_death3", "mob/goat/screaming_hurt1", "mob/goat/screaming_hurt2", "mob/goat/screaming_hurt3", "mob/goat/screaming_milk1", "mob/goat/screaming_milk2", "mob/goat/screaming_milk3", "mob/goat/screaming_milk4", "mob/goat/screaming_milk5", "mob/goat/screaming_pre_ram1", "mob/goat/screaming_pre_ram2", "mob/goat/screaming_pre_ram3", "mob/goat/screaming_pre_ram4", "mob/goat/screaming_pre_ram5", "mob/goat/step1", "mob/goat/step2", "mob/goat/step3", "mob/goat/step4", "mob/goat/step5", "mob/goat/step6", "mob/stray/convert1", "mob/stray/convert2", "mob/stray/convert3", "block/chest/close", "block/chest/close2", "block/chest/close3"], "1.15.2": ["ambient/nether/basalt_deltas/active1", "ambient/nether/basalt_deltas/active2", "ambient/nether/basalt_deltas/active3", "ambient/nether/basalt_deltas/active4", "ambient/nether/basalt_deltas/ambience", "ambient/nether/basalt_deltas/basaltground1", "ambient/nether/basalt_deltas/basaltground2", "ambient/nether/basalt_deltas/basaltground3", "ambient/nether/basalt_deltas/basaltground4", "ambient/nether/basalt_deltas/click1", "ambient/nether/basalt_deltas/click2", "ambient/nether/basalt_deltas/click3", "ambient/nether/basalt_deltas/click4", "ambient/nether/basalt_deltas/click5", "ambient/nether/basalt_deltas/click6", "ambient/nether/basalt_deltas/click7", "ambient/nether/basalt_deltas/click8", "ambient/nether/basalt_deltas/debris1", "ambient/nether/basalt_deltas/debris2", "ambient/nether/basalt_deltas/debris3", "ambient/nether/basalt_deltas/heavy_click1", "ambient/nether/basalt_deltas/heavy_click2", "ambient/nether/basalt_deltas/long_debris1", "ambient/nether/basalt_deltas/long_debris2", "ambient/nether/basalt_deltas/plode1", "ambient/nether/basalt_deltas/plode2", "ambient/nether/basalt_deltas/plode3", "ambient/nether/basalt_deltas/twist1", "ambient/nether/basalt_deltas/twist2", "ambient/nether/basalt_deltas/twist3", "ambient/nether/basalt_deltas/twist4", "ambient/nether/crimson_forest/addition1", "ambient/nether/crimson_forest/addition2", "ambient/nether/crimson_forest/addition3", "ambient/nether/crimson_forest/ambience", "ambient/nether/crimson_forest/mood1", "ambient/nether/crimson_forest/mood2", "ambient/nether/crimson_forest/mood3", "ambient/nether/crimson_forest/mood4", "ambient/nether/crimson_forest/particles1", "ambient/nether/crimson_forest/particles2", "ambient/nether/crimson_forest/particles3", "ambient/nether/crimson_forest/shine1", "ambient/nether/crimson_forest/shine2", "ambient/nether/crimson_forest/shine3", "ambient/nether/crimson_forest/shroom1", "ambient/nether/crimson_forest/shroom2", "ambient/nether/crimson_forest/shroom3", "ambient/nether/crimson_forest/twang1", "ambient/nether/crimson_forest/voom1", "ambient/nether/crimson_forest/voom2", "ambient/nether/nether_wastes/addition1", "ambient/nether/nether_wastes/addition2", "ambient/nether/nether_wastes/addition3", "ambient/nether/nether_wastes/addition4", "ambient/nether/nether_wastes/addition5", "ambient/nether/nether_wastes/addition6", "ambient/nether/nether_wastes/addition7", "ambient/nether/nether_wastes/addition8", "ambient/nether/nether_wastes/ambience", "ambient/nether/nether_wastes/dark1", "ambient/nether/nether_wastes/dark2", "ambient/nether/nether_wastes/ground1", "ambient/nether/nether_wastes/ground2", "ambient/nether/nether_wastes/ground3", "ambient/nether/nether_wastes/ground4", "ambient/nether/nether_wastes/mood1", "ambient/nether/nether_wastes/mood2", "ambient/nether/nether_wastes/mood3", "ambient/nether/nether_wastes/mood4", "ambient/nether/nether_wastes/mood5", "ambient/nether/soulsand_valley/ambience", "ambient/nether/soulsand_valley/mood1", "ambient/nether/soulsand_valley/mood2", "ambient/nether/soulsand_valley/mood3", "ambient/nether/soulsand_valley/mood4", "ambient/nether/soulsand_valley/sand1", "ambient/nether/soulsand_valley/sand2", "ambient/nether/soulsand_valley/sand3", "ambient/nether/soulsand_valley/voices1", "ambient/nether/soulsand_valley/voices2", "ambient/nether/soulsand_valley/voices3", "ambient/nether/soulsand_valley/voices4", "ambient/nether/soulsand_valley/voices5", "ambient/nether/soulsand_valley/whisper1", "ambient/nether/soulsand_valley/whisper2", "ambient/nether/soulsand_valley/whisper3", "ambient/nether/soulsand_valley/whisper4", "ambient/nether/soulsand_valley/whisper5", "ambient/nether/soulsand_valley/whisper6", "ambient/nether/soulsand_valley/whisper7", "ambient/nether/soulsand_valley/whisper8", "ambient/nether/soulsand_valley/wind1", "ambient/nether/soulsand_valley/wind2", "ambient/nether/soulsand_valley/wind3", "ambient/nether/soulsand_valley/wind4", "ambient/nether/soulsand_valley/with1", "ambient/nether/warped_forest/addition1", "ambient/nether/warped_forest/addition2", "ambient/nether/warped_forest/addition3", "ambient/nether/warped_forest/addition4", "ambient/nether/warped_forest/addition5", "ambient/nether/warped_forest/addition6", "ambient/nether/warped_forest/ambience", "ambient/nether/warped_forest/creak1", "ambient/nether/warped_forest/creak2", "ambient/nether/warped_forest/creak3", "ambient/nether/warped_forest/creak4", "ambient/nether/warped_forest/creak5", "ambient/nether/warped_forest/enish1", "ambient/nether/warped_forest/enish2", "ambient/nether/warped_forest/enish3", "ambient/nether/warped_forest/help1", "ambient/nether/warped_forest/help2", "ambient/nether/warped_forest/here1", "ambient/nether/warped_forest/here2", "ambient/nether/warped_forest/here3", "ambient/nether/warped_forest/mood1", "ambient/nether/warped_forest/mood2", "ambient/nether/warped_forest/mood3", "ambient/nether/warped_forest/mood4", "ambient/nether/warped_forest/mood5", "ambient/nether/warped_forest/mood6", "ambient/nether/warped_forest/mood7", "ambient/nether/warped_forest/mood8", "ambient/nether/warped_forest/mood9", "block/ancient_debris/break1", "block/ancient_debris/break2", "block/ancient_debris/break3", "block/ancient_debris/break4", "block/ancient_debris/break5", "block/basalt/break1", "block/basalt/break2", "block/basalt/break3", "block/basalt/break4", "block/basalt/break5", "block/basalt/step1", "block/basalt/step2", "block/basalt/step3", "block/basalt/step4", "block/basalt/step5", "block/basalt/step6", "block/bone_block/break1", "block/bone_block/break2", "block/bone_block/break3", "block/bone_block/break4", "block/bone_block/break5", "block/bone_block/step1", "block/bone_block/step2", "block/bone_block/step3", "block/bone_block/step4", "block/bone_block/step5", "block/chain/break1", "block/chain/break2", "block/chain/break3", "block/chain/break4", "block/chain/step1", "block/chain/step2", "block/chain/step3", "block/chain/step4", "block/chain/step5", "block/chain/step6", "block/fungus/break1", "block/fungus/break2", "block/fungus/break3", "block/fungus/break4", "block/fungus/break5", "block/fungus/break6", "block/lodestone/lock1", "block/lodestone/lock2", "block/lodestone/place1", "block/lodestone/place2", "block/lodestone/place3", "block/lodestone/place4", "block/nether_bricks/break1", "block/nether_bricks/break2", "block/nether_bricks/break3", "block/nether_bricks/break4", "block/nether_bricks/break5", "block/nether_bricks/break6", "block/nether_bricks/step1", "block/nether_bricks/step2", "block/nether_bricks/step3", "block/nether_bricks/step4", "block/nether_bricks/step5", "block/nether_bricks/step6", "block/nether_ore/break1", "block/nether_ore/break2", "block/nether_ore/break3", "block/nether_ore/break4", "block/nether_ore/step1", "block/nether_ore/step2", "block/nether_ore/step3", "block/nether_ore/step4", "block/nether_ore/step5", "block/nether_sprouts/break1", "block/nether_sprouts/break2", "block/nether_sprouts/break3", "block/nether_sprouts/break4", "block/nether_sprouts/step1", "block/nether_sprouts/step2", "block/nether_sprouts/step3", "block/nether_sprouts/step4", "block/nether_sprouts/step5", "block/netherite/break1", "block/netherite/break2", "block/netherite/break3", "block/netherite/break4", "block/netherite/step1", "block/netherite/step2", "block/netherite/step3", "block/netherite/step4", "block/netherite/step5", "block/netherite/step6", "block/netherrack/break1", "block/netherrack/break2", "block/netherrack/break3", "block/netherrack/break4", "block/netherrack/break5", "block/netherrack/break6", "block/netherrack/step1", "block/netherrack/step2", "block/netherrack/step3", "block/netherrack/step4", "block/netherrack/step5", "block/netherrack/step6", "block/netherwart/break1", "block/netherwart/break2", "block/netherwart/break3", "block/netherwart/break4", "block/netherwart/break5", "block/netherwart/break6", "block/netherwart/step1", "block/netherwart/step2", "block/netherwart/step3", "block/netherwart/step4", "block/netherwart/step5", "block/nylium/break1", "block/nylium/break2", "block/nylium/break3", "block/nylium/break4", "block/nylium/break5", "block/nylium/break6", "block/nylium/step1", "block/nylium/step2", "block/nylium/step3", "block/nylium/step4", "block/nylium/step5", "block/nylium/step6", "block/respawn_anchor/ambient1", "block/respawn_anchor/ambient2", "block/respawn_anchor/ambient3", "block/respawn_anchor/charge1", "block/respawn_anchor/charge2", "block/respawn_anchor/charge3", "block/respawn_anchor/deplete1", "block/respawn_anchor/deplete2", "block/respawn_anchor/set_spawn1", "block/respawn_anchor/set_spawn2", "block/respawn_anchor/set_spawn3", "block/roots/break1", "block/roots/break2", "block/roots/break3", "block/roots/break4", "block/roots/break5", "block/roots/break6", "block/roots/step1", "block/roots/step2", "block/roots/step3", "block/roots/step4", "block/roots/step5", "block/shroomlight/break1", "block/shroomlight/break2", "block/shroomlight/break3", "block/shroomlight/break4", "block/shroomlight/break5", "block/shroomlight/step1", "block/shroomlight/step2", "block/shroomlight/step3", "block/shroomlight/step4", "block/shroomlight/step5", "block/shroomlight/step6", "block/soul_sand/break1", "block/soul_sand/break2", "block/soul_sand/break3", "block/soul_sand/break4", "block/soul_sand/break5", "block/soul_sand/break6", "block/soul_sand/break7", "block/soul_sand/break8", "block/soul_sand/break9", "block/soul_sand/step1", "block/soul_sand/step2", "block/soul_sand/step3", "block/soul_sand/step4", "block/soul_sand/step5", "block/soul_soil/break1", "block/soul_soil/break2", "block/soul_soil/break3", "block/soul_soil/break4", "block/soul_soil/break5", "block/soul_soil/break6", "block/soul_soil/step1", "block/soul_soil/step2", "block/soul_soil/step3", "block/soul_soil/step4", "block/soul_soil/step5", "block/stem/break1", "block/stem/break2", "block/stem/break3", "block/stem/break4", "block/stem/break5", "block/stem/break6", "block/stem/step1", "block/stem/step2", "block/stem/step3", "block/stem/step4", "block/stem/step5", "block/stem/step6", "block/vine/climb1", "block/vine/climb2", "block/vine/climb3", "block/vine/climb4", "block/vine/climb5", "enchant/soulspeed/soulspeed1", "enchant/soulspeed/soulspeed10", "enchant/soulspeed/soulspeed11", "enchant/soulspeed/soulspeed12", "enchant/soulspeed/soulspeed13", "enchant/soulspeed/soulspeed2", "enchant/soulspeed/soulspeed3", "enchant/soulspeed/soulspeed4", "enchant/soulspeed/soulspeed5", "enchant/soulspeed/soulspeed6", "enchant/soulspeed/soulspeed7", "enchant/soulspeed/soulspeed8", "enchant/soulspeed/soulspeed9", "item/armor/equip_netherite1", "item/armor/equip_netherite2", "item/armor/equip_netherite3", "item/armor/equip_netherite4", "mob/hoglin/angry1", "mob/hoglin/angry2", "mob/hoglin/angry3", "mob/hoglin/angry4", "mob/hoglin/angry5", "mob/hoglin/angry6", "mob/hoglin/attack1", "mob/hoglin/attack2", "mob/hoglin/converted1", "mob/hoglin/converted2", "mob/hoglin/death1", "mob/hoglin/death2", "mob/hoglin/death3", "mob/hoglin/hurt1", "mob/hoglin/hurt2", "mob/hoglin/hurt3", "mob/hoglin/hurt4", "mob/hoglin/idle1", "mob/hoglin/idle10", "mob/hoglin/idle11", "mob/hoglin/idle2", "mob/hoglin/idle3", "mob/hoglin/idle4", "mob/hoglin/idle5", "mob/hoglin/idle6", "mob/hoglin/idle7", "mob/hoglin/idle8", "mob/hoglin/idle9", "mob/hoglin/retreat1", "mob/hoglin/retreat2", "mob/hoglin/retreat3", "mob/hoglin/step1", "mob/hoglin/step2", "mob/hoglin/step3", "mob/hoglin/step4", "mob/hoglin/step5", "mob/hoglin/step6", "mob/piglin_brute/angry1", "mob/piglin_brute/angry2", "mob/piglin_brute/angry3", "mob/piglin_brute/angry4", "mob/piglin_brute/angry5", "mob/piglin_brute/death1", "mob/piglin_brute/death2", "mob/piglin_brute/death3", "mob/piglin_brute/hurt1", "mob/piglin_brute/hurt2", "mob/piglin_brute/hurt3", "mob/piglin_brute/hurt4", "mob/piglin_brute/idle1", "mob/piglin_brute/idle2", "mob/piglin_brute/idle3", "mob/piglin_brute/idle4", "mob/piglin_brute/idle5", "mob/piglin_brute/idle6", "mob/piglin_brute/idle7", "mob/piglin_brute/idle8", "mob/piglin_brute/idle9", "mob/piglin_brute/step1", "mob/piglin_brute/step2", "mob/piglin_brute/step3", "mob/piglin_brute/step4", "mob/piglin_brute/step5", "mob/piglin/admire1", "mob/piglin/admire2", "mob/piglin/angry1", "mob/piglin/angry2", "mob/piglin/angry3", "mob/piglin/angry4", "mob/piglin/celebrate1", "mob/piglin/celebrate2", "mob/piglin/celebrate3", "mob/piglin/celebrate4", "mob/piglin/converted1", "mob/piglin/converted2", "mob/piglin/death1", "mob/piglin/death2", "mob/piglin/death3", "mob/piglin/death4", "mob/piglin/hurt1", "mob/piglin/hurt2", "mob/piglin/hurt3", "mob/piglin/idle1", "mob/piglin/idle2", "mob/piglin/idle3", "mob/piglin/idle4", "mob/piglin/idle5", "mob/piglin/jealous1", "mob/piglin/jealous2", "mob/piglin/jealous3", "mob/piglin/jealous4", "mob/piglin/jealous5", "mob/piglin/retreat1", "mob/piglin/retreat2", "mob/piglin/retreat3", "mob/piglin/retreat4", "mob/piglin/step1", "mob/piglin/step2", "mob/piglin/step3", "mob/piglin/step4", "mob/piglin/step5", "mob/strider/death1", "mob/strider/death2", "mob/strider/death3", "mob/strider/death4", "mob/strider/eat1", "mob/strider/eat2", "mob/strider/eat3", "mob/strider/happy1", "mob/strider/happy2", "mob/strider/happy3", "mob/strider/happy4", "mob/strider/happy5", "mob/strider/hurt1", "mob/strider/hurt2", "mob/strider/hurt3", "mob/strider/hurt4", "mob/strider/idle1", "mob/strider/idle2", "mob/strider/idle3", "mob/strider/idle4", "mob/strider/idle5", "mob/strider/idle6", "mob/strider/retreat1", "mob/strider/retreat2", "mob/strider/retreat3", "mob/strider/retreat4", "mob/strider/retreat5", "mob/strider/step_lava1", "mob/strider/step_lava2", "mob/strider/step_lava3", "mob/strider/step_lava4", "mob/strider/step_lava5", "mob/strider/step_lava6", "mob/strider/step1", "mob/strider/step2", "mob/strider/step3", "mob/strider/step4", "mob/strider/step5", "mob/zoglin/angry1", "mob/zoglin/angry2", "mob/zoglin/angry3", "mob/zoglin/attack1", "mob/zoglin/attack2", "mob/zoglin/death1", "mob/zoglin/death2", "mob/zoglin/death3", "mob/zoglin/hurt1", "mob/zoglin/hurt2", "mob/zoglin/hurt3", "mob/zoglin/idle1", "mob/zoglin/idle2", "mob/zoglin/idle3", "mob/zoglin/idle4", "mob/zoglin/idle5", "mob/zoglin/idle6", "mob/zoglin/step1", "mob/zoglin/step2", "mob/zoglin/step3", "mob/zoglin/step4", "mob/zoglin/step5", "mob/zombified_piglin/zpig1", "mob/zombified_piglin/zpig2", "mob/zombified_piglin/zpig3", "mob/zombified_piglin/zpig4", "mob/zombified_piglin/zpigangry1", "mob/zombified_piglin/zpigangry2", "mob/zombified_piglin/zpigangry3", "mob/zombified_piglin/zpigangry4", "mob/zombified_piglin/zpigdeath", "mob/zombified_piglin/zpighurt1", "mob/zombified_piglin/zpighurt2", "music/game/nether/crimson_forest/chrysopoeia", "music/game/nether/nether_wastes/rubedo", "music/game/nether/soulsand_valley/so_below", "records/pigstep", "mob/cat/hiss1", "mob/cat/hiss3"], "1.14.4": ["block/beehive/drip1", "block/beehive/drip2", "block/beehive/drip3", "block/beehive/drip4", "block/beehive/drip5", "block/beehive/drip6", "block/beehive/enter", "block/beehive/exit", "block/beehive/shear", "block/beehive/work1", "block/beehive/work2", "block/beehive/work3", "block/beehive/work4", "block/honeyblock/break1", "block/honeyblock/break2", "block/honeyblock/break3", "block/honeyblock/break4", "block/honeyblock/break5", "block/honeyblock/slide1", "block/honeyblock/slide2", "block/honeyblock/slide3", "block/honeyblock/slide4", "block/honeyblock/step1", "block/honeyblock/step2", "block/honeyblock/step3", "block/honeyblock/step4", "block/honeyblock/step5", "item/bottle/drink_honey1", "item/bottle/drink_honey2", "item/bottle/drink_honey3", "mob/bee/aggressive1", "mob/bee/aggressive2", "mob/bee/aggressive3", "mob/bee/death1", "mob/bee/death2", "mob/bee/hurt1", "mob/bee/hurt2", "mob/bee/hurt3", "mob/bee/loop1", "mob/bee/loop2", "mob/bee/loop3", "mob/bee/loop4", "mob/bee/loop5", "mob/bee/pollinate1", "mob/bee/pollinate2", "mob/bee/pollinate3", "mob/bee/pollinate4", "mob/bee/sting", "mob/irongolem/damage1", "mob/irongolem/damage2", "mob/irongolem/repair"], "1.13.2": ["block/bamboo/place1", "block/bamboo/place2", "block/bamboo/place3", "block/bamboo/place4", "block/bamboo/place5", "block/bamboo/place6", "block/bamboo/sapling_hit1", "block/bamboo/sapling_hit2", "block/bamboo/sapling_hit3", "block/bamboo/sapling_hit4", "block/bamboo/sapling_hit5", "block/bamboo/sapling_place1", "block/bamboo/sapling_place2", "block/bamboo/sapling_place3", "block/bamboo/sapling_place4", "block/bamboo/sapling_place5", "block/bamboo/sapling_place6", "block/bamboo/step1", "block/bamboo/step2", "block/bamboo/step3", "block/bamboo/step4", "block/bamboo/step5", "block/bamboo/step6", "block/barrel/close", "block/barrel/open1", "block/barrel/open2", "block/bell/bell_use01", "block/bell/bell_use02", "block/bell/resonate", "block/blastfurnace/blastfurnace1", "block/blastfurnace/blastfurnace2", "block/blastfurnace/blastfurnace3", "block/blastfurnace/blastfurnace4", "block/blastfurnace/blastfurnace5", "block/campfire/crackle1", "block/campfire/crackle2", "block/campfire/crackle3", "block/campfire/crackle4", "block/campfire/crackle5", "block/campfire/crackle6", "block/cauldron/dye1", "block/cauldron/dye2", "block/cauldron/dye3", "block/composter/empty1", "block/composter/empty2", "block/composter/empty3", "block/composter/fill_success1", "block/composter/fill_success2", "block/composter/fill_success3", "block/composter/fill_success4", "block/composter/fill1", "block/composter/fill2", "block/composter/fill3", "block/composter/fill4", "block/composter/ready1", "block/composter/ready2", "block/composter/ready3", "block/composter/ready4", "block/fletching_table/fletching_table1", "block/fletching_table/fletching_table2", "block/grindstone/grindstone1", "block/grindstone/grindstone2", "block/grindstone/grindstone3", "block/lantern/break1", "block/lantern/break2", "block/lantern/break3", "block/lantern/break4", "block/lantern/break5", "block/lantern/break6", "block/lantern/place1", "block/lantern/place2", "block/lantern/place3", "block/lantern/place4", "block/lantern/place5", "block/lantern/place6", "block/scaffold/place1", "block/scaffold/place2", "block/scaffold/place3", "block/scaffold/place4", "block/smithing_table/smithing_table1", "block/smithing_table/smithing_table2", "block/smithing_table/smithing_table3", "block/smoker/smoker1", "block/smoker/smoker2", "block/smoker/smoker3", "block/smoker/smoker4", "block/smoker/smoker5", "block/sweet_berry_bush/break1", "block/sweet_berry_bush/break2", "block/sweet_berry_bush/break3", "block/sweet_berry_bush/break4", "block/sweet_berry_bush/place1", "block/sweet_berry_bush/place2", "block/sweet_berry_bush/place3", "block/sweet_berry_bush/place4", "block/sweet_berry_bush/place5", "block/sweet_berry_bush/place6", "entity/player/hurt/berrybush_hurt1", "entity/player/hurt/berrybush_hurt2", "entity/witch/celebrate", "event/raid/raidhorn_01", "event/raid/raidhorn_02", "event/raid/raidhorn_03", "event/raid/raidhorn_04", "item/book/close_put1", "item/book/close_put2", "item/book/open_flip1", "item/book/open_flip2", "item/book/open_flip3", "item/crossbow/loading_end", "item/crossbow/loading_middle1", "item/crossbow/loading_middle2", "item/crossbow/loading_middle3", "item/crossbow/loading_middle4", "item/crossbow/loading_start", "item/crossbow/quick_charge/quick1_1", "item/crossbow/quick_charge/quick1_2", "item/crossbow/quick_charge/quick1_3", "item/crossbow/quick_charge/quick2_1", "item/crossbow/quick_charge/quick2_2", "item/crossbow/quick_charge/quick2_3", "item/crossbow/quick_charge/quick3_1", "item/crossbow/quick_charge/quick3_2", "item/crossbow/quick_charge/quick3_3", "item/crossbow/shoot1", "item/crossbow/shoot2", "item/crossbow/shoot3", "item/plant/crop1", "item/plant/crop2", "item/plant/crop3", "item/plant/crop4", "item/plant/crop5", "item/plant/crop6", "item/plant/netherwart1", "item/plant/netherwart2", "item/plant/netherwart3", "item/plant/netherwart4", "item/plant/netherwart5", "item/plant/netherwart6", "item/sweet_berries/pick_from_bush1", "item/sweet_berries/pick_from_bush2", "mob/cat/beg1", "mob/cat/beg2", "mob/cat/beg3", "mob/cat/eat1", "mob/cat/eat2", "mob/cat/ocelot/death1", "mob/cat/ocelot/death2", "mob/cat/ocelot/death3", "mob/cat/ocelot/idle1", "mob/cat/ocelot/idle2", "mob/cat/ocelot/idle3", "mob/cat/ocelot/idle4", "mob/cat/stray/idle1", "mob/cat/stray/idle2", "mob/cat/stray/idle3", "mob/cat/stray/idle4", "mob/evocation_illager/celebrate", "mob/fox/aggro1", "mob/fox/aggro2", "mob/fox/aggro3", "mob/fox/aggro4", "mob/fox/aggro5", "mob/fox/aggro6", "mob/fox/aggro7", "mob/fox/bite1", "mob/fox/bite2", "mob/fox/bite3", "mob/fox/death1", "mob/fox/death2", "mob/fox/eat1", "mob/fox/eat2", "mob/fox/eat3", "mob/fox/hurt1", "mob/fox/hurt2", "mob/fox/hurt3", "mob/fox/hurt4", "mob/fox/idle1", "mob/fox/idle2", "mob/fox/idle3", "mob/fox/idle4", "mob/fox/idle5", "mob/fox/idle6", "mob/fox/screech1", "mob/fox/screech2", "mob/fox/screech3", "mob/fox/screech4", "mob/fox/sleep1", "mob/fox/sleep2", "mob/fox/sleep3", "mob/fox/sleep4", "mob/fox/sleep5", "mob/fox/sniff1", "mob/fox/sniff2", "mob/fox/sniff3", "mob/fox/sniff4", "mob/fox/spit1", "mob/fox/spit2", "mob/fox/spit3", "mob/mooshroom/convert1", "mob/mooshroom/convert2", "mob/mooshroom/eat1", "mob/mooshroom/eat2", "mob/mooshroom/eat3", "mob/mooshroom/eat4", "mob/mooshroom/milk1", "mob/mooshroom/milk2", "mob/mooshroom/milk3", "mob/panda/aggressive/aggressive1", "mob/panda/aggressive/aggressive2", "mob/panda/aggressive/aggressive3", "mob/panda/aggressive/aggressive4", "mob/panda/bite1", "mob/panda/bite2", "mob/panda/bite3", "mob/panda/cant_breed1", "mob/panda/cant_breed2", "mob/panda/cant_breed3", "mob/panda/cant_breed4", "mob/panda/cant_breed5", "mob/panda/death1", "mob/panda/death2", "mob/panda/death3", "mob/panda/death4", "mob/panda/eat1", "mob/panda/eat10", "mob/panda/eat11", "mob/panda/eat12", "mob/panda/eat2", "mob/panda/eat3", "mob/panda/eat4", "mob/panda/eat5", "mob/panda/eat6", "mob/panda/eat7", "mob/panda/eat8", "mob/panda/eat9", "mob/panda/hurt1", "mob/panda/hurt2", "mob/panda/hurt3", "mob/panda/hurt4", "mob/panda/hurt5", "mob/panda/hurt6", "mob/panda/idle1", "mob/panda/idle2", "mob/panda/idle3", "mob/panda/idle4", "mob/panda/nosebreath1", "mob/panda/nosebreath2", "mob/panda/nosebreath3", "mob/panda/pant1", "mob/panda/pant2", "mob/panda/pre_sneeze", "mob/panda/sneeze1", "mob/panda/sneeze2", "mob/panda/sneeze3", "mob/panda/step1", "mob/panda/step2", "mob/panda/step3", "mob/panda/step4", "mob/panda/step5", "mob/panda/worried/worried1", "mob/panda/worried/worried2", "mob/panda/worried/worried3", "mob/panda/worried/worried4", "mob/panda/worried/worried5", "mob/panda/worried/worried6", "mob/pillager/celebrate1", "mob/pillager/celebrate2", "mob/pillager/celebrate3", "mob/pillager/celebrate4", "mob/pillager/death1", "mob/pillager/death2", "mob/pillager/horn_celebrate", "mob/pillager/hurt1", "mob/pillager/hurt2", "mob/pillager/hurt3", "mob/pillager/idle1", "mob/pillager/idle2", "mob/pillager/idle3", "mob/pillager/idle4", "mob/ravager/bite1", "mob/ravager/bite2", "mob/ravager/bite3", "mob/ravager/celebrate1", "mob/ravager/celebrate2", "mob/ravager/death1", "mob/ravager/death2", "mob/ravager/death3", "mob/ravager/hurt1", "mob/ravager/hurt2", "mob/ravager/hurt3", "mob/ravager/hurt4", "mob/ravager/idle1", "mob/ravager/idle2", "mob/ravager/idle3", "mob/ravager/idle4", "mob/ravager/idle5", "mob/ravager/idle6", "mob/ravager/idle7", "mob/ravager/idle8", "mob/ravager/roar1", "mob/ravager/roar2", "mob/ravager/roar3", "mob/ravager/roar4", "mob/ravager/step1", "mob/ravager/step2", "mob/ravager/step3", "mob/ravager/step4", "mob/ravager/step5", "mob/ravager/stun1", "mob/ravager/stun2", "mob/ravager/stun3", "mob/vindication_illager/celebrate1", "mob/vindication_illager/celebrate2", "mob/wandering_trader/appeared1", "mob/wandering_trader/appeared2", "mob/wandering_trader/death", "mob/wandering_trader/disappeared1", "mob/wandering_trader/disappeared2", "mob/wandering_trader/drink_milk1", "mob/wandering_trader/drink_milk2", "mob/wandering_trader/drink_milk3", "mob/wandering_trader/drink_milk4", "mob/wandering_trader/drink_milk5", "mob/wandering_trader/drink_potion", "mob/wandering_trader/haggle1", "mob/wandering_trader/haggle2", "mob/wandering_trader/haggle3", "mob/wandering_trader/hurt1", "mob/wandering_trader/hurt2", "mob/wandering_trader/hurt3", "mob/wandering_trader/hurt4", "mob/wandering_trader/idle1", "mob/wandering_trader/idle2", "mob/wandering_trader/idle3", "mob/wandering_trader/idle4", "mob/wandering_trader/idle5", "mob/wandering_trader/no1", "mob/wandering_trader/no2", "mob/wandering_trader/no3", "mob/wandering_trader/no4", "mob/wandering_trader/no5", "mob/wandering_trader/reappeared1", "mob/wandering_trader/reappeared2", "mob/wandering_trader/yes1", "mob/wandering_trader/yes2", "mob/wandering_trader/yes3", "mob/wandering_trader/yes4", "note/banjo", "note/bit", "note/cow_bell", "note/didgeridoo", "note/iron_xylophone", "random/click_stereo", "step/scaffold1", "step/scaffold2", "step/scaffold3", "step/scaffold4", "step/scaffold5", "step/scaffold6", "step/scaffold7", "ui/cartography_table/drawmap1", "ui/cartography_table/drawmap2", "ui/cartography_table/drawmap3", "ui/loom/select_pattern1", "ui/loom/select_pattern2", "ui/loom/select_pattern3", "ui/loom/select_pattern4", "ui/loom/select_pattern5", "ui/loom/take_result1", "ui/loom/take_result2", "ui/stonecutter/cut1", "ui/stonecutter/cut2", "liquid/splash2", "mob/cat/hiss1", "mob/cat/hiss2", "mob/cat/hiss3", "mob/cat/hitt1", "mob/cat/hitt2", "mob/cat/hitt3", "mob/cat/meow1", "mob/cat/meow2", "mob/cat/meow3", "mob/cat/meow4", "mob/cat/purr1", "mob/cat/purr2", "mob/cat/purr3", "mob/cat/purreow1", "mob/cat/purreow2", "mob/horse/breathe1", "mob/horse/breathe2", "mob/horse/breathe3", "random/click", "step/wood1", "step/wood2", "step/wood3", "step/wood4", "step/wood5", "step/wood6"], "1.12.2": ["ambient/cave/cave19", "ambient/underwater/additions/animal1", "ambient/underwater/additions/animal2", "ambient/underwater/additions/bass_whale1", "ambient/underwater/additions/bass_whale2", "ambient/underwater/additions/bubbles1", "ambient/underwater/additions/bubbles2", "ambient/underwater/additions/bubbles3", "ambient/underwater/additions/bubbles4", "ambient/underwater/additions/bubbles5", "ambient/underwater/additions/bubbles6", "ambient/underwater/additions/crackles1", "ambient/underwater/additions/crackles2", "ambient/underwater/additions/dark1", "ambient/underwater/additions/dark2", "ambient/underwater/additions/dark3", "ambient/underwater/additions/dark4", "ambient/underwater/additions/driplets1", "ambient/underwater/additions/driplets2", "ambient/underwater/additions/earth_crack", "ambient/underwater/additions/water1", "ambient/underwater/additions/water2", "ambient/underwater/enter1", "ambient/underwater/enter2", "ambient/underwater/enter3", "ambient/underwater/exit1", "ambient/underwater/exit2", "ambient/underwater/exit3", "ambient/underwater/underwater_ambience", "block/beacon/activate", "block/beacon/ambient", "block/beacon/deactivate", "block/beacon/power1", "block/beacon/power2", "block/beacon/power3", "block/bubble_column/bubble1", "block/bubble_column/bubble2", "block/bubble_column/bubble3", "block/bubble_column/upwards_ambient1", "block/bubble_column/upwards_ambient2", "block/bubble_column/upwards_ambient3", "block/bubble_column/upwards_ambient4", "block/bubble_column/upwards_ambient5", "block/bubble_column/upwards_inside", "block/bubble_column/whirlpool_ambient1", "block/bubble_column/whirlpool_ambient2", "block/bubble_column/whirlpool_ambient3", "block/bubble_column/whirlpool_ambient4", "block/bubble_column/whirlpool_ambient5", "block/bubble_column/whirlpool_inside", "block/conduit/activate", "block/conduit/ambient", "block/conduit/attack1", "block/conduit/attack2", "block/conduit/attack3", "block/conduit/deactivate", "block/conduit/short1", "block/conduit/short2", "block/conduit/short3", "block/conduit/short4", "block/conduit/short5", "block/conduit/short6", "block/conduit/short7", "block/conduit/short8", "block/conduit/short9", "block/pumpkin/carve1", "block/pumpkin/carve2", "block/wooden_door/close5", "block/wooden_door/close6", "dig/coral1", "dig/coral2", "dig/coral3", "dig/coral4", "dig/wet_grass1", "dig/wet_grass2", "dig/wet_grass3", "dig/wet_grass4", "entity/fish/flop1", "entity/fish/flop2", "entity/fish/flop3", "entity/fish/flop4", "entity/fish/hurt1", "entity/fish/hurt2", "entity/fish/hurt3", "entity/fish/hurt4", "entity/fish/swim1", "entity/fish/swim2", "entity/fish/swim3", "entity/fish/swim4", "entity/fish/swim5", "entity/fish/swim6", "entity/fish/swim7", "entity/pufferfish/blow_out1", "entity/pufferfish/blow_out2", "entity/pufferfish/blow_up1", "entity/pufferfish/blow_up2", "entity/pufferfish/death1", "entity/pufferfish/death2", "entity/pufferfish/flop1", "entity/pufferfish/flop2", "entity/pufferfish/flop3", "entity/pufferfish/flop4", "entity/pufferfish/hurt1", "entity/pufferfish/hurt2", "entity/pufferfish/sting1", "entity/pufferfish/sting2", "entity/squid/squirt1", "entity/squid/squirt2", "entity/squid/squirt3", "item/axe/strip1", "item/axe/strip2", "item/axe/strip3", "item/axe/strip4", "item/bucket/empty_fish1", "item/bucket/empty_fish2", "item/bucket/empty_fish3", "item/bucket/fill_fish1", "item/bucket/fill_fish2", "item/bucket/fill_fish3", "item/trident/ground_impact1", "item/trident/ground_impact2", "item/trident/ground_impact3", "item/trident/ground_impact4", "item/trident/pierce1", "item/trident/pierce2", "item/trident/pierce3", "item/trident/return1", "item/trident/return2", "item/trident/return3", "item/trident/riptide1", "item/trident/riptide2", "item/trident/riptide3", "item/trident/throw1", "item/trident/throw2", "item/trident/thunder1", "item/trident/thunder2", "liquid/heavy_splash", "liquid/swim10", "liquid/swim11", "liquid/swim12", "liquid/swim13", "liquid/swim14", "liquid/swim15", "liquid/swim16", "liquid/swim17", "liquid/swim18", "liquid/swim5", "liquid/swim6", "liquid/swim7", "liquid/swim8", "liquid/swim9", "mob/dolphin/attack1", "mob/dolphin/attack2", "mob/dolphin/attack3", "mob/dolphin/blowhole1", "mob/dolphin/blowhole2", "mob/dolphin/death1", "mob/dolphin/death2", "mob/dolphin/eat1", "mob/dolphin/eat2", "mob/dolphin/eat3", "mob/dolphin/hurt1", "mob/dolphin/hurt2", "mob/dolphin/hurt3", "mob/dolphin/idle_water1", "mob/dolphin/idle_water10", "mob/dolphin/idle_water2", "mob/dolphin/idle_water3", "mob/dolphin/idle_water4", "mob/dolphin/idle_water5", "mob/dolphin/idle_water6", "mob/dolphin/idle_water7", "mob/dolphin/idle_water8", "mob/dolphin/idle_water9", "mob/dolphin/idle1", "mob/dolphin/idle2", "mob/dolphin/idle3", "mob/dolphin/idle4", "mob/dolphin/idle5", "mob/dolphin/idle6", "mob/dolphin/jump1", "mob/dolphin/jump2", "mob/dolphin/jump3", "mob/dolphin/play1", "mob/dolphin/play2", "mob/dolphin/splash1", "mob/dolphin/splash2", "mob/dolphin/splash3", "mob/dolphin/swim1", "mob/dolphin/swim2", "mob/dolphin/swim3", "mob/dolphin/swim4", "mob/drowned/convert1", "mob/drowned/convert2", "mob/drowned/convert3", "mob/drowned/death1", "mob/drowned/death2", "mob/drowned/hurt1", "mob/drowned/hurt2", "mob/drowned/hurt3", "mob/drowned/idle1", "mob/drowned/idle2", "mob/drowned/idle3", "mob/drowned/idle4", "mob/drowned/idle5", "mob/drowned/step1", "mob/drowned/step2", "mob/drowned/step3", "mob/drowned/step4", "mob/drowned/step5", "mob/drowned/water/death1", "mob/drowned/water/death2", "mob/drowned/water/hurt1", "mob/drowned/water/hurt2", "mob/drowned/water/hurt3", "mob/drowned/water/idle1", "mob/drowned/water/idle2", "mob/drowned/water/idle3", "mob/drowned/water/idle4", "mob/horse/skeleton/water/gallop1", "mob/horse/skeleton/water/gallop2", "mob/horse/skeleton/water/gallop3", "mob/horse/skeleton/water/gallop4", "mob/horse/skeleton/water/idle1", "mob/horse/skeleton/water/idle2", "mob/horse/skeleton/water/idle3", "mob/horse/skeleton/water/idle4", "mob/horse/skeleton/water/idle5", "mob/horse/skeleton/water/jump", "mob/horse/skeleton/water/soft1", "mob/horse/skeleton/water/soft2", "mob/horse/skeleton/water/soft3", "mob/horse/skeleton/water/soft4", "mob/horse/skeleton/water/soft5", "mob/horse/skeleton/water/soft6", "mob/husk/convert1", "mob/husk/convert2", "mob/phantom/bite1", "mob/phantom/bite2", "mob/phantom/death1", "mob/phantom/death2", "mob/phantom/death3", "mob/phantom/flap1", "mob/phantom/flap2", "mob/phantom/flap3", "mob/phantom/flap4", "mob/phantom/flap5", "mob/phantom/flap6", "mob/phantom/hurt1", "mob/phantom/hurt2", "mob/phantom/hurt3", "mob/phantom/idle1", "mob/phantom/idle2", "mob/phantom/idle3", "mob/phantom/idle4", "mob/phantom/idle5", "mob/phantom/swoop1", "mob/phantom/swoop2", "mob/phantom/swoop3", "mob/phantom/swoop4", "mob/turtle/armor", "mob/turtle/baby/death1", "mob/turtle/baby/death2", "mob/turtle/baby/egg_hatched1", "mob/turtle/baby/egg_hatched2", "mob/turtle/baby/egg_hatched3", "mob/turtle/baby/hurt1", "mob/turtle/baby/hurt2", "mob/turtle/baby/shamble1", "mob/turtle/baby/shamble2", "mob/turtle/baby/shamble3", "mob/turtle/baby/shamble4", "mob/turtle/death1", "mob/turtle/death2", "mob/turtle/death3", "mob/turtle/egg/drop_egg1", "mob/turtle/egg/drop_egg2", "mob/turtle/egg/egg_break1", "mob/turtle/egg/egg_break2", "mob/turtle/egg/egg_crack1", "mob/turtle/egg/egg_crack2", "mob/turtle/egg/egg_crack3", "mob/turtle/egg/egg_crack4", "mob/turtle/egg/egg_crack5", "mob/turtle/egg/jump_egg1", "mob/turtle/egg/jump_egg2", "mob/turtle/egg/jump_egg3", "mob/turtle/egg/jump_egg4", "mob/turtle/hurt1", "mob/turtle/hurt2", "mob/turtle/hurt3", "mob/turtle/hurt4", "mob/turtle/hurt5", "mob/turtle/idle1", "mob/turtle/idle2", "mob/turtle/idle3", "mob/turtle/swim/swim1", "mob/turtle/swim/swim2", "mob/turtle/swim/swim3", "mob/turtle/swim/swim4", "mob/turtle/swim/swim5", "mob/turtle/walk1", "mob/turtle/walk2", "mob/turtle/walk3", "mob/turtle/walk4", "mob/turtle/walk5", "music/game/water/axolotl", "music/game/water/dragon_fish", "music/game/water/shuniji", "step/coral1", "step/coral2", "step/coral3", "step/coral4", "step/coral5", "step/coral6", "step/wet_grass1", "step/wet_grass2", "step/wet_grass3", "step/wet_grass4", "step/wet_grass5", "step/wet_grass6"], "1.11.2": ["ambient/cave/cave17", "ambient/cave/cave18", "block/end_portal/endportal", "block/end_portal/eyeplace1", "block/end_portal/eyeplace2", "block/end_portal/eyeplace3", "entity/boat/paddle_land1", "entity/boat/paddle_land2", "entity/boat/paddle_land3", "entity/boat/paddle_land4", "entity/boat/paddle_land5", "entity/boat/paddle_land6", "entity/boat/paddle_water1", "entity/boat/paddle_water2", "entity/boat/paddle_water3", "entity/boat/paddle_water4", "entity/boat/paddle_water5", "entity/boat/paddle_water6", "entity/boat/paddle_water7", "entity/boat/paddle_water8", "entity/bobber/castfast", "entity/bobber/retrieve1", "entity/bobber/retrieve2", "entity/bobber/retrieve3", "entity/endereye/dead1", "entity/endereye/dead2", "entity/endereye/endereye_launch1", "entity/endereye/endereye_launch2", "entity/player/hurt/drown1", "entity/player/hurt/drown2", "entity/player/hurt/drown3", "entity/player/hurt/drown4", "entity/player/hurt/fire_hurt1", "entity/player/hurt/fire_hurt2", "entity/player/hurt/fire_hurt3", "mob/illusion_illager/death1", "mob/illusion_illager/death2", "mob/illusion_illager/hurt1", "mob/illusion_illager/hurt2", "mob/illusion_illager/hurt3", "mob/illusion_illager/idle1", "mob/illusion_illager/idle2", "mob/illusion_illager/idle3", "mob/illusion_illager/idle4", "mob/illusion_illager/mirror_move1", "mob/illusion_illager/mirror_move2", "mob/illusion_illager/prepare_blind", "mob/illusion_illager/prepare_mirror", "mob/parrot/death1", "mob/parrot/death2", "mob/parrot/death3", "mob/parrot/death4", "mob/parrot/eat1", "mob/parrot/eat2", "mob/parrot/eat3", "mob/parrot/fly1", "mob/parrot/fly2", "mob/parrot/fly3", "mob/parrot/fly4", "mob/parrot/fly5", "mob/parrot/fly6", "mob/parrot/fly7", "mob/parrot/fly8", "mob/parrot/hurt1", "mob/parrot/hurt2", "mob/parrot/idle1", "mob/parrot/idle2", "mob/parrot/idle3", "mob/parrot/idle4", "mob/parrot/idle5", "mob/parrot/idle6", "mob/parrot/step1", "mob/parrot/step2", "mob/parrot/step3", "mob/parrot/step4", "mob/parrot/step5", "note/bell", "note/flute", "note/guitar", "note/harp2", "note/icechime", "note/xylobone", "ui/toast/challenge_complete", "ui/toast/in", "ui/toast/out"], "1.10.2": ["block/shulker_box/close", "block/shulker_box/open", "fireworks/largeblast_far1", "fireworks/largeblast1", "item/bottle/empty1", "item/bottle/empty2", "item/totem/use_totem", "mob/evocation_illager/cast1", "mob/evocation_illager/cast2", "mob/evocation_illager/death1", "mob/evocation_illager/death2", "mob/evocation_illager/fangs", "mob/evocation_illager/hurt1", "mob/evocation_illager/hurt2", "mob/evocation_illager/idle1", "mob/evocation_illager/idle2", "mob/evocation_illager/idle3", "mob/evocation_illager/idle4", "mob/evocation_illager/prepare_attack1", "mob/evocation_illager/prepare_attack2", "mob/evocation_illager/prepare_summon", "mob/evocation_illager/prepare_wololo", "mob/llama/angry1", "mob/llama/death1", "mob/llama/death2", "mob/llama/eat1", "mob/llama/eat2", "mob/llama/eat3", "mob/llama/hurt1", "mob/llama/hurt2", "mob/llama/hurt3", "mob/llama/idle1", "mob/llama/idle2", "mob/llama/idle3", "mob/llama/idle4", "mob/llama/idle5", "mob/llama/spit1", "mob/llama/spit2", "mob/llama/step1", "mob/llama/step2", "mob/llama/step3", "mob/llama/step4", "mob/llama/step5", "mob/llama/swag", "mob/vex/charge1", "mob/vex/charge2", "mob/vex/charge3", "mob/vex/death1", "mob/vex/death2", "mob/vex/hurt1", "mob/vex/hurt2", "mob/vex/idle1", "mob/vex/idle2", "mob/vex/idle3", "mob/vex/idle4", "mob/vindication_illager/death1", "mob/vindication_illager/death2", "mob/vindication_illager/hurt1", "mob/vindication_illager/hurt2", "mob/vindication_illager/hurt3", "mob/vindication_illager/idle1", "mob/vindication_illager/idle2", "mob/vindication_illager/idle3", "mob/vindication_illager/idle4", "mob/vindication_illager/idle5", "mob/wither_skeleton/death1", "mob/wither_skeleton/death2", "mob/wither_skeleton/hurt1", "mob/wither_skeleton/hurt2", "mob/wither_skeleton/hurt3", "mob/wither_skeleton/hurt4", "mob/wither_skeleton/idle1", "mob/wither_skeleton/idle2", "mob/wither_skeleton/idle3", "mob/wither_skeleton/step1", "mob/wither_skeleton/step2", "mob/wither_skeleton/step3", "mob/wither_skeleton/step4", "mob/zombie_villager/death", "mob/zombie_villager/hurt1", "mob/zombie_villager/hurt2", "mob/zombie_villager/say1", "mob/zombie_villager/say2", "mob/zombie_villager/say3"], "1.9.4": ["ambient/cave/cave15", "ambient/cave/cave16", "block/enchantment_table/enchant1", "block/enchantment_table/enchant2", "block/enchantment_table/enchant3", "block/enderchest/close", "block/enderchest/open", "mob/husk/death1", "mob/husk/death2", "mob/husk/hurt1", "mob/husk/hurt2", "mob/husk/idle1", "mob/husk/idle2", "mob/husk/idle3", "mob/husk/step1", "mob/husk/step2", "mob/husk/step3", "mob/husk/step4", "mob/husk/step5", "mob/polarbear_baby/idle1", "mob/polarbear_baby/idle2", "mob/polarbear_baby/idle3", "mob/polarbear_baby/idle4", "mob/polarbear/death1", "mob/polarbear/death2", "mob/polarbear/death3", "mob/polarbear/hurt1", "mob/polarbear/hurt2", "mob/polarbear/hurt3", "mob/polarbear/hurt4", "mob/polarbear/idle1", "mob/polarbear/idle2", "mob/polarbear/idle3", "mob/polarbear/idle4", "mob/polarbear/step1", "mob/polarbear/step2", "mob/polarbear/step3", "mob/polarbear/step4", "mob/polarbear/warning1", "mob/polarbear/warning2", "mob/polarbear/warning3", "mob/stray/death1", "mob/stray/death2", "mob/stray/hurt1", "mob/stray/hurt2", "mob/stray/hurt3", "mob/stray/hurt4", "mob/stray/idle1", "mob/stray/idle2", "mob/stray/idle3", "mob/stray/idle4", "mob/stray/step1", "mob/stray/step2", "mob/stray/step3", "mob/stray/step4"], "1.8.9": ["ambient/cave/cave14", "ambient/weather/rain5", "ambient/weather/rain6", "ambient/weather/rain7", "ambient/weather/rain8", "block/brewing_stand/brew1", "block/brewing_stand/brew2", "block/chest/close", "block/chest/close2", "block/chest/close3", "block/chest/open", "block/chorus_flower/death1", "block/chorus_flower/death2", "block/chorus_flower/death3", "block/chorus_flower/grow1", "block/chorus_flower/grow2", "block/chorus_flower/grow3", "block/chorus_flower/grow4", "block/fence_gate/close1", "block/fence_gate/close2", "block/fence_gate/open1", "block/fence_gate/open2", "block/furnace/fire_crackle1", "block/furnace/fire_crackle2", "block/furnace/fire_crackle3", "block/furnace/fire_crackle4", "block/furnace/fire_crackle5", "block/iron_door/close1", "block/iron_door/close2", "block/iron_door/close3", "block/iron_door/close4", "block/iron_door/open1", "block/iron_door/open2", "block/iron_door/open3", "block/iron_door/open4", "block/iron_trapdoor/close1", "block/iron_trapdoor/close2", "block/iron_trapdoor/close3", "block/iron_trapdoor/close4", "block/iron_trapdoor/open1", "block/iron_trapdoor/open2", "block/iron_trapdoor/open3", "block/iron_trapdoor/open4", "block/waterlily/place1", "block/waterlily/place2", "block/waterlily/place3", "block/waterlily/place4", "block/wooden_door/close", "block/wooden_door/close2", "block/wooden_door/close3", "block/wooden_door/close4", "block/wooden_door/open", "block/wooden_door/open2", "block/wooden_door/open3", "block/wooden_door/open4", "block/wooden_trapdoor/close1", "block/wooden_trapdoor/close2", "block/wooden_trapdoor/close3", "block/wooden_trapdoor/open1", "block/wooden_trapdoor/open2", "block/wooden_trapdoor/open3", "block/wooden_trapdoor/open4", "block/wooden_trapdoor/open5", "enchant/thorns/hit1", "enchant/thorns/hit2", "enchant/thorns/hit3", "enchant/thorns/hit4", "entity/armorstand/break1", "entity/armorstand/break2", "entity/armorstand/break3", "entity/armorstand/break4", "entity/armorstand/hit1", "entity/armorstand/hit2", "entity/armorstand/hit3", "entity/armorstand/hit4", "entity/cow/milk1", "entity/cow/milk2", "entity/cow/milk3", "entity/guardian/ambient1", "entity/guardian/ambient2", "entity/guardian/ambient3", "entity/guardian/ambient4", "entity/horse/eat1", "entity/horse/eat2", "entity/horse/eat3", "entity/horse/eat4", "entity/horse/eat5", "entity/itemframe/add_item1", "entity/itemframe/add_item2", "entity/itemframe/add_item3", "entity/itemframe/add_item4", "entity/itemframe/break1", "entity/itemframe/break2", "entity/itemframe/break3", "entity/itemframe/place1", "entity/itemframe/place2", "entity/itemframe/place3", "entity/itemframe/place4", "entity/itemframe/remove_item1", "entity/itemframe/remove_item2", "entity/itemframe/remove_item3", "entity/itemframe/remove_item4", "entity/itemframe/rotate_item1", "entity/itemframe/rotate_item2", "entity/itemframe/rotate_item3", "entity/itemframe/rotate_item4", "entity/leashknot/break1", "entity/leashknot/break2", "entity/leashknot/break3", "entity/leashknot/place1", "entity/leashknot/place2", "entity/leashknot/place3", "entity/painting/break1", "entity/painting/break2", "entity/painting/break3", "entity/painting/place1", "entity/painting/place2", "entity/painting/place3", "entity/painting/place4", "entity/player/attack/crit1", "entity/player/attack/crit2", "entity/player/attack/crit3", "entity/player/attack/knockback1", "entity/player/attack/knockback2", "entity/player/attack/knockback3", "entity/player/attack/knockback4", "entity/player/attack/strong1", "entity/player/attack/strong2", "entity/player/attack/strong3", "entity/player/attack/strong4", "entity/player/attack/strong5", "entity/player/attack/strong6", "entity/player/attack/sweep1", "entity/player/attack/sweep2", "entity/player/attack/sweep3", "entity/player/attack/sweep4", "entity/player/attack/sweep5", "entity/player/attack/sweep6", "entity/player/attack/sweep7", "entity/player/attack/weak1", "entity/player/attack/weak2", "entity/player/attack/weak3", "entity/player/attack/weak4", "entity/rabbit/attack1", "entity/rabbit/attack2", "entity/rabbit/attack3", "entity/rabbit/attack4", "entity/shulker_bullet/hit1", "entity/shulker_bullet/hit2", "entity/shulker_bullet/hit3", "entity/shulker_bullet/hit4", "entity/shulker/ambient1", "entity/shulker/ambient2", "entity/shulker/ambient3", "entity/shulker/ambient4", "entity/shulker/ambient5", "entity/shulker/ambient6", "entity/shulker/ambient7", "entity/shulker/close1", "entity/shulker/close2", "entity/shulker/close3", "entity/shulker/close4", "entity/shulker/close5", "entity/shulker/death1", "entity/shulker/death2", "entity/shulker/death3", "entity/shulker/death4", "entity/shulker/hurt_closed1", "entity/shulker/hurt_closed2", "entity/shulker/hurt_closed3", "entity/shulker/hurt_closed4", "entity/shulker/hurt_closed5", "entity/shulker/hurt1", "entity/shulker/hurt2", "entity/shulker/hurt3", "entity/shulker/hurt4", "entity/shulker/open1", "entity/shulker/open2", "entity/shulker/open3", "entity/shulker/open4", "entity/shulker/open5", "entity/shulker/shoot1", "entity/shulker/shoot2", "entity/shulker/shoot3", "entity/shulker/shoot4", "entity/snowman/death1", "entity/snowman/death2", "entity/snowman/death3", "entity/snowman/hurt1", "entity/snowman/hurt2", "entity/snowman/hurt3", "entity/squid/ambient1", "entity/squid/ambient2", "entity/squid/ambient3", "entity/squid/ambient4", "entity/squid/ambient5", "entity/squid/death1", "entity/squid/death2", "entity/squid/death3", "entity/squid/hurt1", "entity/squid/hurt2", "entity/squid/hurt3", "entity/squid/hurt4", "entity/witch/ambient1", "entity/witch/ambient2", "entity/witch/ambient3", "entity/witch/ambient4", "entity/witch/ambient5", "entity/witch/death1", "entity/witch/death2", "entity/witch/death3", "entity/witch/drink1", "entity/witch/drink2", "entity/witch/drink3", "entity/witch/drink4", "entity/witch/hurt1", "entity/witch/hurt2", "entity/witch/hurt3", "entity/witch/throw1", "entity/witch/throw2", "entity/witch/throw3", "item/armor/equip_chain1", "item/armor/equip_chain2", "item/armor/equip_chain3", "item/armor/equip_chain4", "item/armor/equip_chain5", "item/armor/equip_chain6", "item/armor/equip_diamond1", "item/armor/equip_diamond2", "item/armor/equip_diamond3", "item/armor/equip_diamond4", "item/armor/equip_diamond5", "item/armor/equip_diamond6", "item/armor/equip_generic1", "item/armor/equip_generic2", "item/armor/equip_generic3", "item/armor/equip_generic4", "item/armor/equip_generic5", "item/armor/equip_generic6", "item/armor/equip_gold1", "item/armor/equip_gold2", "item/armor/equip_gold3", "item/armor/equip_gold4", "item/armor/equip_gold5", "item/armor/equip_gold6", "item/armor/equip_iron1", "item/armor/equip_iron2", "item/armor/equip_iron3", "item/armor/equip_iron4", "item/armor/equip_iron5", "item/armor/equip_iron6", "item/armor/equip_leather1", "item/armor/equip_leather2", "item/armor/equip_leather3", "item/armor/equip_leather4", "item/armor/equip_leather5", "item/armor/equip_leather6", "item/bottle/fill_dragonbreath1", "item/bottle/fill_dragonbreath2", "item/bottle/fill1", "item/bottle/fill2", "item/bottle/fill3", "item/bottle/fill4", "item/bucket/empty_lava1", "item/bucket/empty_lava2", "item/bucket/empty_lava3", "item/bucket/empty1", "item/bucket/empty2", "item/bucket/empty3", "item/bucket/fill_lava1", "item/bucket/fill_lava2", "item/bucket/fill_lava3", "item/bucket/fill1", "item/bucket/fill2", "item/bucket/fill3", "item/elytra/elytra_loop", "item/hoe/till1", "item/hoe/till2", "item/hoe/till3", "item/hoe/till4", "item/shield/block1", "item/shield/block2", "item/shield/block3", "item/shield/block4", "item/shield/block5", "item/shovel/flatten1", "item/shovel/flatten2", "item/shovel/flatten3", "item/shovel/flatten4", "ambient/weather/rain1", "ambient/weather/rain2", "ambient/weather/rain3", "ambient/weather/rain4", "mob/guardian/attack_loop"] }; - window.allSoundsMeta = { "format": "mp3", "baseUrl": "https://raw.githubusercontent.com/dimaka-love/temp-mc-sounds/sounds/sounds/" }; -})(); diff --git a/sounds.js b/sounds.js deleted file mode 100644 index e9f81cba..00000000 --- a/sounds.js +++ /dev/null @@ -1,6 +0,0 @@ -(() => { - // scripts/sounds.js - window.allSoundsMap = { "1.20.1": { "8;ambient.basalt_deltas.additions": "0.35;ambient/nether/basalt_deltas/debris1", "9;ambient.basalt_deltas.loop": "0.5;ambient/nether/basalt_deltas/ambience", "10;ambient.basalt_deltas.mood": "1;ambient/nether/nether_wastes/mood1", "7;ambient.cave": "1;ambient/cave/cave1", "11;ambient.crimson_forest.additions": "0.4;ambient/nether/crimson_forest/particles1", "12;ambient.crimson_forest.loop": "0.74;ambient/nether/crimson_forest/ambience", "13;ambient.crimson_forest.mood": "1;ambient/nether/crimson_forest/mood1", "14;ambient.nether_wastes.additions": "0.3;ambient/nether/nether_wastes/addition1", "15;ambient.nether_wastes.loop": "0.77;ambient/nether/nether_wastes/ambience", "16;ambient.nether_wastes.mood": "1;ambient/nether/nether_wastes/mood1", "17;ambient.soul_sand_valley.additions": "0.2;ambient/nether/soulsand_valley/sand1", "18;ambient.soul_sand_valley.loop": "0.85;ambient/nether/soulsand_valley/ambience", "19;ambient.soul_sand_valley.mood": "1;ambient/nether/soulsand_valley/mood1", "23;ambient.underwater.enter": "0.8;ambient/underwater/enter1", "24;ambient.underwater.exit": "0.5;ambient/underwater/exit1", "25;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "26;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "27;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "28;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "20;ambient.warped_forest.additions": "0.3;ambient/nether/crimson_forest/addition1", "21;ambient.warped_forest.loop": "0.71;ambient/nether/warped_forest/ambience", "22;ambient.warped_forest.mood": "1;ambient/nether/warped_forest/creak1", "29;block.amethyst_block.break": "1;block/amethyst/break1", "30;block.amethyst_block.chime": "0.2;block/amethyst/shimmer", "31;block.amethyst_block.fall": "1;block/amethyst/step1", "32;block.amethyst_block.hit": "1;block/amethyst/step1", "33;block.amethyst_block.place": "1;block/amethyst/place1", "34;block.amethyst_block.resonate": "1;block/amethyst/resonate1", "35;block.amethyst_block.step": "1;block/amethyst/step1", "36;block.amethyst_cluster.break": "0.8;block/amethyst_cluster/break1", "37;block.amethyst_cluster.fall": "1;block/amethyst/step1", "38;block.amethyst_cluster.hit": "1;block/amethyst/step1", "39;block.amethyst_cluster.place": "0.9;block/amethyst_cluster/place1", "40;block.amethyst_cluster.step": "1;block/amethyst/step1", "41;block.ancient_debris.break": "1;block/ancient_debris/break1", "45;block.ancient_debris.fall": "1;block/basalt/step1", "44;block.ancient_debris.hit": "1;block/basalt/step1", "43;block.ancient_debris.place": "1;block/ancient_debris/break1", "42;block.ancient_debris.step": "1;block/basalt/step1", "46;block.anvil.break": "1;dig/stone1", "47;block.anvil.destroy": "1;random/anvil_break", "48;block.anvil.fall": "1;step/stone1", "49;block.anvil.hit": "1;step/stone1", "50;block.anvil.land": "1;random/anvil_land", "51;block.anvil.place": "1;random/anvil_land", "52;block.anvil.step": "1;step/stone1", "53;block.anvil.use": "1;random/anvil_use", "80;block.azalea.break": "1;block/azalea/break1", "81;block.azalea.fall": "1;block/azalea/step1", "82;block.azalea.hit": "1;block/azalea/step1", "83;block.azalea.place": "1;block/azalea/break1", "84;block.azalea.step": "1;block/azalea/step1", "85;block.azalea_leaves.break": "0.85;block/azalea_leaves/break1", "86;block.azalea_leaves.fall": "1;block/azalea_leaves/step1", "87;block.azalea_leaves.hit": "0.8;block/azalea_leaves/step1", "88;block.azalea_leaves.place": "0.85;block/azalea_leaves/break1", "89;block.azalea_leaves.step": "0.85;block/azalea_leaves/step1", "90;block.bamboo.break": "0.8;block/bamboo/place1", "91;block.bamboo.fall": "1;block/bamboo/step1", "92;block.bamboo.hit": "1;block/bamboo/step1", "93;block.bamboo.place": "0.8;block/bamboo/place1", "94;block.bamboo.step": "1;block/bamboo/step1", "95;block.bamboo_sapling.break": "0.9;block/bamboo/sapling_place1", "96;block.bamboo_sapling.hit": "0.8;block/bamboo/sapling_hit1", "97;block.bamboo_sapling.place": "0.85;block/bamboo/sapling_place1", "98;block.bamboo_wood.break": "0.9;block/bamboo_wood/break1", "99;block.bamboo_wood.fall": "1;block/bamboo_wood/step1", "100;block.bamboo_wood.hit": "0.9;block/bamboo_wood/step1", "101;block.bamboo_wood.place": "0.9;block/bamboo_wood/break1", "102;block.bamboo_wood.step": "1;block/bamboo_wood/step1", "107;block.bamboo_wood_button.click_off": "0.3;block/bamboo_wood_button/bamboo_wood_button", "108;block.bamboo_wood_button.click_on": "0.3;block/bamboo_wood_button/bamboo_wood_button", "103;block.bamboo_wood_door.close": "0.9;block/bamboo_wood_door/toggle1", "104;block.bamboo_wood_door.open": "0.9;block/bamboo_wood_door/toggle1", "111;block.bamboo_wood_fence_gate.close": "0.9;block/bamboo_wood_fence/toggle1", "112;block.bamboo_wood_fence_gate.open": "0.9;block/bamboo_wood_fence/toggle1", "605;block.bamboo_wood_hanging_sign.break": "0.8;block/bamboo_wood_hanging_sign/break1", "606;block.bamboo_wood_hanging_sign.fall": "1;block/bamboo_wood_hanging_sign/step1", "607;block.bamboo_wood_hanging_sign.hit": "0.7;block/bamboo_wood_hanging_sign/step1", "608;block.bamboo_wood_hanging_sign.place": "0.8;block/bamboo_wood_hanging_sign/break1", "604;block.bamboo_wood_hanging_sign.step": "1;block/bamboo_wood_hanging_sign/step1", "109;block.bamboo_wood_pressure_plate.click_off": "0.3;random/click", "110;block.bamboo_wood_pressure_plate.click_on": "0.3;random/click", "105;block.bamboo_wood_trapdoor.close": "1;block/bamboo_wood_trapdoor/toggle1", "106;block.bamboo_wood_trapdoor.open": "1;block/bamboo_wood_trapdoor/toggle1", "113;block.barrel.close": "1;block/barrel/close", "114;block.barrel.open": "1;block/barrel/open1", "115;block.basalt.break": "1;block/basalt/break1", "119;block.basalt.fall": "1;block/basalt/step1", "118;block.basalt.hit": "1;block/basalt/step1", "117;block.basalt.place": "1;block/basalt/break1", "116;block.basalt.step": "1;block/basalt/step1", "125;block.beacon.activate": "1;block/beacon/activate", "126;block.beacon.ambient": "0.9;block/beacon/ambient", "127;block.beacon.deactivate": "1;block/beacon/deactivate", "128;block.beacon.power_select": "1;block/beacon/power1", "135;block.beehive.drip": "0.3;block/beehive/drip1", "136;block.beehive.enter": "1;block/beehive/enter", "137;block.beehive.exit": "1;block/beehive/exit", "138;block.beehive.shear": "0.8;block/beehive/shear", "139;block.beehive.work": "0.6;block/beehive/work1", "141;block.bell.resonate": "1;block/bell/resonate", "140;block.bell.use": "12;block/bell/bell_use01", "142;block.big_dripleaf.break": "1;block/big_dripleaf/break1", "143;block.big_dripleaf.fall": "1;block/big_dripleaf/step1", "144;block.big_dripleaf.hit": "1;block/big_dripleaf/step1", "145;block.big_dripleaf.place": "1;block/big_dripleaf/break1", "146;block.big_dripleaf.step": "1;block/big_dripleaf/step1", "384;block.big_dripleaf.tilt_down": "1;block/big_dripleaf/tilt_down1", "385;block.big_dripleaf.tilt_up": "1;block/big_dripleaf/tilt_up1", "162;block.blastfurnace.fire_crackle": "1;block/blastfurnace/blastfurnace1", "154;block.bone_block.break": "0.9;block/bone_block/break1", "155;block.bone_block.fall": "1;block/bone_block/step1", "156;block.bone_block.hit": "1;block/bone_block/step1", "157;block.bone_block.place": "0.9;block/bone_block/break1", "158;block.bone_block.step": "1;block/bone_block/step1", "166;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "172;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "173;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "174;block.bubble_column.upwards_inside": "0.7;block/bubble_column/upwards_inside", "175;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "176;block.bubble_column.whirlpool_inside": "0.7;block/bubble_column/whirlpool_inside", "192;block.cake.add_candle": "1;block/cake/add_candle1", "193;block.calcite.break": "0.9;block/calcite/break1", "197;block.calcite.fall": "1;block/calcite/step1", "196;block.calcite.hit": "1;block/calcite/step1", "195;block.calcite.place": "0.94;block/calcite/place1", "194;block.calcite.step": "1;block/calcite/step1", "209;block.campfire.crackle": "1;block/campfire/crackle1", "210;block.candle.ambient": "1;block/candle/ambient1", "211;block.candle.break": "1;block/candle/break1", "212;block.candle.extinguish": "1;block/candle/extinguish1", "213;block.candle.fall": "1;block/candle/step1", "214;block.candle.hit": "1;block/candle/step1", "215;block.candle.place": "1;block/candle/break1", "216;block.candle.step": "1;block/candle/step1", "226;block.cave_vines.break": "1;block/cave_vines/break1", "227;block.cave_vines.fall": "1;block/vine/climb1", "228;block.cave_vines.hit": "1;block/vine/climb1", "231;block.cave_vines.pick_berries": "1;block.sweet_berry_bush.pick_berries", "229;block.cave_vines.place": "1;block/cave_vines/break1", "230;block.cave_vines.step": "1;block/vine/climb1", "232;block.chain.break": "0.5;block/chain/break1", "233;block.chain.fall": "1;block/chain/step1", "234;block.chain.hit": "0.8;block/chain/step1", "235;block.chain.place": "0.5;block/chain/break1", "236;block.chain.step": "1;block/chain/step1", "247;block.cherry_leaves.break": "1;block/cherry_leaves/break1", "248;block.cherry_leaves.fall": "1;block/cherry_leaves/step1", "249;block.cherry_leaves.hit": "0.8;block/cherry_leaves/step1", "250;block.cherry_leaves.place": "1;block/cherry_leaves/break1", "251;block.cherry_leaves.step": "1;block/cherry_leaves/step1", "242;block.cherry_sapling.break": "1;block/bamboo/sapling_place1", "243;block.cherry_sapling.fall": "1;block/bamboo/sapling_hit1", "244;block.cherry_sapling.hit": "1;block/bamboo/sapling_hit1", "245;block.cherry_sapling.place": "1;block/bamboo/sapling_place1", "246;block.cherry_sapling.step": "1;block/bamboo/sapling_hit1", "237;block.cherry_wood.break": "1;block/cherry_wood/break1", "238;block.cherry_wood.fall": "1;block/cherry_wood/step1", "239;block.cherry_wood.hit": "1;block/cherry_wood/step1", "240;block.cherry_wood.place": "1;block/cherry_wood/break1", "241;block.cherry_wood.step": "1;block/cherry_wood/step1", "261;block.cherry_wood_button.click_off": "0.4;block/cherrywood_button/cherrywood_click", "262;block.cherry_wood_button.click_on": "0.4;block/cherrywood_button/cherrywood_click", "257;block.cherry_wood_door.close": "1;block/cherrywood_door/toggle1", "258;block.cherry_wood_door.open": "1;block/cherrywood_door/toggle1", "265;block.cherry_wood_fence_gate.close": "1;block/cherrywood_fence_gate/toggle1", "266;block.cherry_wood_fence_gate.open": "1;block/cherrywood_fence_gate/toggle1", "253;block.cherry_wood_hanging_sign.break": "1;block/cherry_wood_hanging_sign/break1", "254;block.cherry_wood_hanging_sign.fall": "1;block/cherry_wood_hanging_sign/step1", "255;block.cherry_wood_hanging_sign.hit": "1;block/cherry_wood_hanging_sign/step1", "256;block.cherry_wood_hanging_sign.place": "1;block/cherry_wood_hanging_sign/break1", "252;block.cherry_wood_hanging_sign.step": "1;block/cherry_wood_hanging_sign/step1", "263;block.cherry_wood_pressure_plate.click_off": "0.3;random/click", "264;block.cherry_wood_pressure_plate.click_on": "0.3;random/click", "259;block.cherry_wood_trapdoor.close": "1;block/cherrywood_trapdoor/toggle1", "260;block.cherry_wood_trapdoor.open": "1;block/cherrywood_trapdoor/toggle1", "267;block.chest.close": "1;block/chest/close1", "268;block.chest.locked": "1;block/chest/close_locked", "269;block.chest.open": "1;block/chest/open", "275;block.chiseled_bookshelf.break": "1;block/chiseled_bookshelf/break1", "276;block.chiseled_bookshelf.fall": "1;block/chiseled_bookshelf/step1", "277;block.chiseled_bookshelf.hit": "1;block/chiseled_bookshelf/step1", "278;block.chiseled_bookshelf.insert": "0.8;block/chiseled_bookshelf/insert1", "279;block.chiseled_bookshelf.insert.enchanted": "0.8;block/chiseled_bookshelf/insert_enchanted1", "281;block.chiseled_bookshelf.pickup": "0.8;block/chiseled_bookshelf/pickup1", "282;block.chiseled_bookshelf.pickup.enchanted": "0.8;block/chiseled_bookshelf/pickup_enchanted1", "283;block.chiseled_bookshelf.place": "1;block/chiseled_bookshelf/break1", "280;block.chiseled_bookshelf.step": "1;block/chiseled_bookshelf/step1", "284;block.chorus_flower.death": "1;block/chorus_flower/death1", "285;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "291;block.comparator.click": "1;random/click", "292;block.composter.empty": "1;block/composter/empty1", "293;block.composter.fill": "0.3;block/composter/fill1", "294;block.composter.fill_success": "1;block/composter/fill_success1", "295;block.composter.ready": "1;block/composter/ready1", "296;block.conduit.activate": "0.9;block/conduit/activate", "297;block.conduit.ambient": "1;block/conduit/ambient", "298;block.conduit.ambient.short": "1;block/conduit/short1", "299;block.conduit.attack.target": "1;block/conduit/attack1", "300;block.conduit.deactivate": "0.7;block/conduit/deactivate", "301;block.copper.break": "1;block/copper/break1", "305;block.copper.fall": "1;block/copper/step1", "304;block.copper.hit": "1;block/copper/step1", "303;block.copper.place": "1;block/copper/break1", "302;block.copper.step": "1;block/copper/step1", "306;block.coral_block.break": "1;dig/coral1", "307;block.coral_block.fall": "1;step/coral1", "308;block.coral_block.hit": "1;step/coral1", "309;block.coral_block.place": "1;dig/coral1", "310;block.coral_block.step": "1;step/coral1", "319;block.crop.break": "0.9;block/bamboo/sapling_place1", "329;block.decorated_pot.break": "1;block/decorated_pot/break1", "330;block.decorated_pot.fall": "1;block/decorated_pot/step1", "331;block.decorated_pot.hit": "1;block/decorated_pot/step1", "333;block.decorated_pot.place": "1;block/decorated_pot/break1", "334;block.decorated_pot.shatter": "1;block/decorated_pot/shatter1", "332;block.decorated_pot.step": "1;block/decorated_pot/step1", "340;block.deepslate.break": "1;block/deepslate/break1", "341;block.deepslate.fall": "1;block/deepslate/step1", "342;block.deepslate.hit": "1;block/deepslate/step1", "343;block.deepslate.place": "1;block/deepslate/place1", "344;block.deepslate.step": "1;block/deepslate/step1", "335;block.deepslate_bricks.break": "0.85;block/deepslate_bricks/place1", "336;block.deepslate_bricks.fall": "1;block/deepslate_bricks/step1", "337;block.deepslate_bricks.hit": "1;block/deepslate_bricks/step1", "338;block.deepslate_bricks.place": "0.85;block/deepslate_bricks/place1", "339;block.deepslate_bricks.step": "1;block/deepslate_bricks/step1", "345;block.deepslate_tiles.break": "0.92;block/deepslate_bricks/place1", "346;block.deepslate_tiles.fall": "1;block/deepslate_bricks/step1", "347;block.deepslate_tiles.hit": "1;block/deepslate_bricks/step1", "348;block.deepslate_tiles.place": "0.85;block/deepslate_bricks/place1", "349;block.deepslate_tiles.step": "1;block/deepslate_bricks/step1", "350;block.dispenser.dispense": "1;random/click", "351;block.dispenser.fail": "1;random/click", "352;block.dispenser.launch": "1;random/bow", "369;block.dripstone_block.break": "1;block/dripstone/break1", "373;block.dripstone_block.fall": "1;block/dripstone/step1", "372;block.dripstone_block.hit": "1;block/dripstone/step1", "371;block.dripstone_block.place": "1;block/dripstone/break1", "370;block.dripstone_block.step": "1;block/dripstone/step1", "406;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "429;block.end_gateway.spawn": "1;random/explode1", "431;block.end_portal.spawn": "1;block/end_portal/endportal", "430;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "407;block.ender_chest.close": "1;block/enderchest/close", "408;block.ender_chest.open": "1;block/enderchest/open", "443;block.fence_gate.close": "0.9;block/fence_gate/close1", "444;block.fence_gate.open": "0.9;block/fence_gate/open1", "454;block.fire.ambient": "1;fire/fire", "455;block.fire.extinguish": "1;random/fizz", "461;block.flowering_azalea.break": "1;block/azalea/break1", "462;block.flowering_azalea.fall": "1;block/azalea/step1", "463;block.flowering_azalea.hit": "1;block/azalea/step1", "464;block.flowering_azalea.place": "1;block/azalea/break1", "465;block.flowering_azalea.step": "1;block/azalea/step1", "487;block.froglight.break": "0.8;block/froglight/break1", "488;block.froglight.fall": "1;block/froglight/step1", "489;block.froglight.hit": "0.83;block/froglight/step1", "490;block.froglight.place": "0.8;block/froglight/break1", "491;block.froglight.step": "1;block/froglight/step1", "493;block.frogspawn.break": "0.1;block/frogspawn/break1", "494;block.frogspawn.fall": "0.3;block/frogspawn/step1", "495;block.frogspawn.hatch": "0.6;block/frogspawn/hatch1", "496;block.frogspawn.hit": "0.3;block/frogspawn/step1", "497;block.frogspawn.place": "0.2;block/frogspawn/break1", "492;block.frogspawn.step": "0.3;block/frogspawn/step1", "867;block.fungus.break": "1;block/fungus/break1", "869;block.fungus.place": "1;block/fungus/break1", "868;block.fungus.step": "0.9;item/plant/netherwart1", "511;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "529;block.gilded_blackstone.break": "1;block/nether_ore/break1", "530;block.gilded_blackstone.fall": "1;block/nether_ore/step1", "531;block.gilded_blackstone.hit": "1;block/nether_ore/step1", "532;block.gilded_blackstone.place": "1;block/nether_ore/break1", "533;block.gilded_blackstone.step": "1;block/nether_ore/step1", "534;block.glass.break": "1;random/glass1", "535;block.glass.fall": "1;step/stone1", "536;block.glass.hit": "1;step/stone1", "537;block.glass.place": "1;dig/stone1", "538;block.glass.step": "1;step/stone1", "569;block.grass.break": "1;dig/grass1", "570;block.grass.fall": "1;step/grass1", "571;block.grass.hit": "1;step/grass1", "572;block.grass.place": "1;dig/grass1", "573;block.grass.step": "1;step/grass1", "574;block.gravel.break": "1;dig/gravel1", "575;block.gravel.fall": "1;step/gravel1", "576;block.gravel.hit": "1;step/gravel1", "577;block.gravel.place": "1;dig/gravel1", "578;block.gravel.step": "1;step/gravel1", "579;block.grindstone.use": "0.5;block/grindstone/grindstone1", "580;block.growing_plant.crop": "1;mob/sheep/shear", "589;block.hanging_roots.break": "1;block/hanging_roots/break1", "590;block.hanging_roots.fall": "1;block/hanging_roots/step1", "591;block.hanging_roots.hit": "1;block/hanging_roots/step1", "592;block.hanging_roots.place": "1;block/hanging_roots/break1", "593;block.hanging_roots.step": "1;block/hanging_roots/step1", "595;block.hanging_sign.break": "1;block/hanging_sign/break1", "596;block.hanging_sign.fall": "1;block/hanging_sign/step1", "597;block.hanging_sign.hit": "1;block/hanging_sign/step1", "598;block.hanging_sign.place": "1;block/hanging_sign/break1", "594;block.hanging_sign.step": "1;block/hanging_sign/step1", "618;block.honey_block.break": "1;block/honeyblock/break1", "619;block.honey_block.fall": "1;block/honeyblock/step1", "620;block.honey_block.hit": "1;block/honeyblock/step1", "621;block.honey_block.place": "1;block/honeyblock/break1", "622;block.honey_block.slide": "0.8;block/honeyblock/slide1", "623;block.honey_block.step": "1;block/honeyblock/step1", "659;block.iron_door.close": "0.9;block/iron_door/close1", "660;block.iron_door.open": "0.9;block/iron_door/open1", "667;block.iron_trapdoor.close": "0.9;block/iron_trapdoor/close1", "668;block.iron_trapdoor.open": "0.9;block/iron_trapdoor/open1", "676;block.ladder.break": "1;dig/wood1", "677;block.ladder.fall": "1;step/ladder1", "678;block.ladder.hit": "1;step/ladder1", "679;block.ladder.place": "1;dig/wood1", "680;block.ladder.step": "1;step/ladder1", "681;block.lantern.break": "1;block/lantern/break1", "682;block.lantern.fall": "1;block/lantern/break1", "683;block.lantern.hit": "1;block/lantern/place1", "684;block.lantern.place": "1;block/lantern/place1", "685;block.lantern.step": "1;block/lantern/break1", "686;block.large_amethyst_bud.break": "0.7;block/amethyst_cluster/break1", "687;block.large_amethyst_bud.place": "0.75;block/amethyst_cluster/place1", "688;block.lava.ambient": "1;liquid/lava", "689;block.lava.extinguish": "1;random/fizz", "690;block.lava.pop": "1;liquid/lavapop", "693;block.lever.click": "1;random/click", "1355;block.lily_pad.place": "1;block/waterlily/place1", "707;block.lodestone.break": "1;dig/stone1", "711;block.lodestone.fall": "1;step/stone1", "710;block.lodestone.hit": "1;step/stone1", "709;block.lodestone.place": "1;block/lodestone/place1", "708;block.lodestone.step": "1;step/stone1", "719;block.mangrove_roots.break": "0.25;block/mangrove_roots/break1", "720;block.mangrove_roots.fall": "0.25;block/mangrove_roots/step1", "721;block.mangrove_roots.hit": "0.25;block/mangrove_roots/step1", "722;block.mangrove_roots.place": "0.25;block/mangrove_roots/break1", "723;block.mangrove_roots.step": "0.25;block/mangrove_roots/step1", "724;block.medium_amethyst_bud.break": "0.55;block/amethyst_cluster/break1", "725;block.medium_amethyst_bud.place": "0.5;block/amethyst_cluster/place1", "726;block.metal.break": "1;dig/stone1", "727;block.metal.fall": "1;step/stone1", "728;block.metal.hit": "1;step/stone1", "729;block.metal.place": "1;dig/stone1", "732;block.metal.step": "1;step/stone1", "730;block.metal_pressure_plate.click_off": "0.3;random/click", "731;block.metal_pressure_plate.click_on": "0.3;random/click", "751;block.moss.break": "0.95;block/moss/break1", "752;block.moss.fall": "1;block/moss/step1", "753;block.moss.hit": "1;block/moss/step1", "754;block.moss.place": "0.93;block/moss/break1", "755;block.moss.step": "1;block/moss/step1", "741;block.moss_carpet.break": "0.9;block/moss/break1", "742;block.moss_carpet.fall": "0.9;block/moss/step1", "743;block.moss_carpet.hit": "0.9;block/moss/step1", "744;block.moss_carpet.place": "0.9;block/moss/break1", "745;block.moss_carpet.step": "0.9;block/moss/step1", "756;block.mud.break": "0.5;block/mud/break1", "757;block.mud.fall": "0.5;block/mud/step1", "758;block.mud.hit": "0.5;block/mud/step1", "759;block.mud.place": "0.5;block/mud/break1", "760;block.mud.step": "0.5;block/mud/step1", "761;block.mud_bricks.break": "0.5;block/mud_bricks/break1", "762;block.mud_bricks.fall": "0.5;block/mud_bricks/step1", "763;block.mud_bricks.hit": "0.5;block/mud_bricks/step1", "764;block.mud_bricks.place": "0.5;block/mud_bricks/break1", "765;block.mud_bricks.step": "0.5;block/mud_bricks/step1", "766;block.muddy_mangrove_roots.break": "0.25;block/muddy_mangrove_roots/break1", "767;block.muddy_mangrove_roots.fall": "0.25;block/muddy_mangrove_roots/step1", "768;block.muddy_mangrove_roots.hit": "0.25;block/muddy_mangrove_roots/step1", "769;block.muddy_mangrove_roots.place": "0.25;block/muddy_mangrove_roots/break1", "770;block.muddy_mangrove_roots.step": "0.25;block/muddy_mangrove_roots/step1", "824;block.nether_bricks.break": "0.8;block/nether_bricks/break1", "828;block.nether_bricks.fall": "1;block/nether_bricks/step1", "827;block.nether_bricks.hit": "1;block/nether_bricks/step1", "826;block.nether_bricks.place": "0.8;block/nether_bricks/break1", "825;block.nether_bricks.step": "1;block/nether_bricks/step1", "1063;block.nether_gold_ore.break": "1;block/nether_ore/break1", "1064;block.nether_gold_ore.fall": "1;block/nether_ore/step1", "1065;block.nether_gold_ore.hit": "1;block/nether_ore/step1", "1066;block.nether_gold_ore.place": "1;block/nether_ore/break1", "1067;block.nether_gold_ore.step": "1;block/nether_ore/step1", "1068;block.nether_ore.break": "1;block/nether_ore/break1", "1069;block.nether_ore.fall": "1;block/nether_ore/step1", "1070;block.nether_ore.hit": "1;block/nether_ore/step1", "1071;block.nether_ore.place": "1;block/nether_ore/break1", "1072;block.nether_ore.step": "1;block/nether_ore/step1", "862;block.nether_sprouts.break": "0.7;block/nether_sprouts/break1", "866;block.nether_sprouts.fall": "1;block/nether_sprouts/step1", "865;block.nether_sprouts.hit": "1;block/nether_sprouts/step1", "864;block.nether_sprouts.place": "0.7;block/nether_sprouts/break1", "863;block.nether_sprouts.step": "0.5;block/nether_sprouts/step1", "829;block.nether_wart.break": "0.9;item/plant/netherwart1", "831;block.nether_wood.break": "1;block/nether_wood/break1", "832;block.nether_wood.fall": "1;block/nether_wood/step1", "833;block.nether_wood.hit": "1;block/nether_wood/step1", "834;block.nether_wood.place": "1;block/nether_wood/break1", "835;block.nether_wood.step": "1;block/nether_wood/step1", "840;block.nether_wood_button.click_off": "0.3;block/nether_wood_button/nether_wood_button", "841;block.nether_wood_button.click_on": "0.3;block/nether_wood_button/nether_wood_button", "836;block.nether_wood_door.close": "1;block/nether_wood_door/toggle1", "837;block.nether_wood_door.open": "1;block/nether_wood_door/toggle1", "844;block.nether_wood_fence_gate.close": "1;block/nether_wood_fence/toggle1", "845;block.nether_wood_fence_gate.open": "1;block/nether_wood_fence/toggle1", "600;block.nether_wood_hanging_sign.break": "1;block/nether_wood_hanging_sign/break1", "601;block.nether_wood_hanging_sign.fall": "1;block/nether_wood_hanging_sign/step1", "602;block.nether_wood_hanging_sign.hit": "0.8;block/nether_wood_hanging_sign/step1", "603;block.nether_wood_hanging_sign.place": "1;block/nether_wood_hanging_sign/break1", "599;block.nether_wood_hanging_sign.step": "1;block/nether_wood_hanging_sign/step1", "842;block.nether_wood_pressure_plate.click_off": "0.3;random/click", "843;block.nether_wood_pressure_plate.click_on": "0.3;random/click", "838;block.nether_wood_trapdoor.close": "1;block/nether_wood_trapdoor/toggle1", "839;block.nether_wood_trapdoor.open": "1;block/nether_wood_trapdoor/toggle1", "882;block.netherite_block.break": "0.95;block/netherite/break1", "886;block.netherite_block.fall": "1;block/netherite/step1", "885;block.netherite_block.hit": "1;block/netherite/step1", "884;block.netherite_block.place": "0.95;block/netherite/break1", "883;block.netherite_block.step": "1;block/netherite/step1", "887;block.netherrack.break": "1;block/netherrack/break1", "891;block.netherrack.fall": "1;block/netherrack/step1", "890;block.netherrack.hit": "0.55;block/netherrack/step1", "889;block.netherrack.place": "1;block/netherrack/break1", "888;block.netherrack.step": "1;block/netherrack/step1", "907;block.note_block.banjo": "1;note/banjo", "892;block.note_block.basedrum": "1;note/bd", "893;block.note_block.bass": "1;note/bassattack", "894;block.note_block.bell": "1;note/bell", "906;block.note_block.bit": "1;note/bit", "895;block.note_block.chime": "1;note/icechime", "904;block.note_block.cow_bell": "1;note/cow_bell", "905;block.note_block.didgeridoo": "1;note/didgeridoo", "896;block.note_block.flute": "1;note/flute", "897;block.note_block.guitar": "1;note/guitar", "898;block.note_block.harp": "1;note/harp2", "899;block.note_block.hat": "1;note/hat", "910;block.note_block.imitate.creeper": "1;entity.creeper.primed", "911;block.note_block.imitate.ender_dragon": "1;entity.ender_dragon.ambient", "913;block.note_block.imitate.piglin": "1;entity.piglin.ambient", "909;block.note_block.imitate.skeleton": "1;entity.skeleton.ambient", "912;block.note_block.imitate.wither_skeleton": "1;entity.wither_skeleton.ambient", "908;block.note_block.imitate.zombie": "1;entity.zombie.ambient", "903;block.note_block.iron_xylophone": "1;note/iron_xylophone", "900;block.note_block.pling": "1;note/pling", "901;block.note_block.snare": "1;note/snare", "902;block.note_block.xylophone": "1;note/xylobone", "857;block.nylium.break": "0.85;block/nylium/break1", "861;block.nylium.fall": "1;block/nylium/step1", "860;block.nylium.hit": "1;block/nylium/step1", "859;block.nylium.place": "0.85;block/nylium/break1", "858;block.nylium.step": "1;block/nylium/step1", "847;block.packed_mud.break": "0.3;block/packed_mud/break1", "848;block.packed_mud.fall": "0.3;block/packed_mud/step1", "849;block.packed_mud.hit": "0.3;block/packed_mud/step1", "850;block.packed_mud.place": "0.3;block/packed_mud/break1", "851;block.packed_mud.step": "0.3;block/packed_mud/step1", "746;block.pink_petals.break": "0.8;block/cherry_leaves/break1", "747;block.pink_petals.fall": "0.8;block/cherry_leaves/step1", "748;block.pink_petals.hit": "0.8;block/cherry_leaves/step1", "749;block.pink_petals.place": "0.8;block/cherry_leaves/break1", "750;block.pink_petals.step": "0.8;block/cherry_leaves/step1", "1000;block.piston.contract": "1;tile/piston/in", "1001;block.piston.extend": "1;tile/piston/out", "374;block.pointed_dripstone.break": "1;block/dripstone/break1", "380;block.pointed_dripstone.drip_lava": "1;block/pointed_dripstone/drip_lava1", "382;block.pointed_dripstone.drip_lava_into_cauldron": "1;block/pointed_dripstone/drip_lava_cauldron1", "381;block.pointed_dripstone.drip_water": "1;block/pointed_dripstone/drip_water1", "383;block.pointed_dripstone.drip_water_into_cauldron": "1;block/pointed_dripstone/drip_water_cauldron1", "378;block.pointed_dripstone.fall": "1;block/dripstone/step1", "377;block.pointed_dripstone.hit": "1;block/dripstone/step1", "379;block.pointed_dripstone.land": "1;block/pointed_dripstone/land1", "376;block.pointed_dripstone.place": "1;block/dripstone/break1", "375;block.pointed_dripstone.step": "1;block/dripstone/step1", "1028;block.polished_deepslate.break": "1;block/deepslate/break1", "1029;block.polished_deepslate.fall": "1;block/deepslate/step1", "1030;block.polished_deepslate.hit": "1;block/deepslate/step1", "1031;block.polished_deepslate.place": "1;block/deepslate/place1", "1032;block.polished_deepslate.step": "1;block/deepslate/step1", "1033;block.portal.ambient": "1;portal/portal", "1034;block.portal.travel": "1;portal/travel", "1035;block.portal.trigger": "1;portal/trigger", "1036;block.powder_snow.break": "1;block/powder_snow/break1", "1037;block.powder_snow.fall": "1;block/powder_snow/step1", "1038;block.powder_snow.hit": "0.83;block/powder_snow/step1", "1039;block.powder_snow.place": "1;block/powder_snow/break1", "1040;block.powder_snow.step": "1;block/powder_snow/step1", "1048;block.pumpkin.carve": "1;block/pumpkin/carve1", "1073;block.redstone_torch.burnout": "1;random/fizz", "1074;block.respawn_anchor.ambient": "1;block/respawn_anchor/ambient1", "1075;block.respawn_anchor.charge": "1;block/respawn_anchor/charge1", "1076;block.respawn_anchor.deplete": "1;block/respawn_anchor/deplete1", "1077;block.respawn_anchor.set_spawn": "1;block/respawn_anchor/set_spawn1", "1078;block.rooted_dirt.break": "1;block/rooted_dirt/break1", "1079;block.rooted_dirt.fall": "1;block/rooted_dirt/step1", "1080;block.rooted_dirt.hit": "0.8;block/rooted_dirt/step1", "1081;block.rooted_dirt.place": "1;block/rooted_dirt/break1", "1082;block.rooted_dirt.step": "1;block/rooted_dirt/step1", "506;block.roots.break": "1;block/roots/break1", "510;block.roots.fall": "1;block/roots/step1", "509;block.roots.hit": "1;block/roots/step1", "508;block.roots.place": "1;block/roots/break1", "507;block.roots.step": "1;block/roots/step1", "1087;block.sand.break": "1;dig/sand1", "1088;block.sand.fall": "1;step/sand1", "1089;block.sand.hit": "1;step/sand1", "1090;block.sand.place": "1;dig/sand1", "1091;block.sand.step": "1;step/sand1", "1092;block.scaffolding.break": "0.8;block/scaffold/place1", "1093;block.scaffolding.fall": "1;step/scaffold1", "1094;block.scaffolding.hit": "1;step/scaffold1", "1095;block.scaffolding.place": "0.9;block/scaffold/place1", "1096;block.scaffolding.step": "1;step/scaffold1", "1099;block.sculk.break": "1;block/sculk/break1", "1098;block.sculk.charge": "1;block/sculk/charge1", "1100;block.sculk.fall": "1;block/sculk/step1", "1101;block.sculk.hit": "1;block/sculk/step1", "1102;block.sculk.place": "1;block/sculk/place1", "1097;block.sculk.spread": "1;block/sculk/spread1", "1103;block.sculk.step": "1;block/sculk/step1", "1104;block.sculk_catalyst.bloom": "0.25;enchant/soulspeed/soulspeed1", "1105;block.sculk_catalyst.break": "1;block/sculk_catalyst/break1", "1106;block.sculk_catalyst.fall": "1;block/sculk_catalyst/step1", "1107;block.sculk_catalyst.hit": "1;block/sculk_catalyst/step1", "1108;block.sculk_catalyst.place": "1;block/sculk_catalyst/place1", "1109;block.sculk_catalyst.step": "1;block/sculk_catalyst/step1", "1112;block.sculk_sensor.break": "0.9;block/sculk_sensor/break1", "1110;block.sculk_sensor.clicking": "0.73;block/sculk_sensor/sculk_clicking1", "1111;block.sculk_sensor.clicking_stop": "0.62;block/sculk_sensor/sculk_clicking_stop1", "1113;block.sculk_sensor.fall": "1;block/sculk/step1", "1114;block.sculk_sensor.hit": "1;block/sculk/step1", "1115;block.sculk_sensor.place": "0.8;block/sculk_sensor/place1", "1116;block.sculk_sensor.step": "1;block/sculk/step1", "1117;block.sculk_shrieker.break": "0.9;block/sculk_shrieker/break1", "1118;block.sculk_shrieker.fall": "1;block/sculk/step1", "1119;block.sculk_shrieker.hit": "1;block/sculk/step1", "1120;block.sculk_shrieker.place": "0.9;block/sculk_shrieker/place1", "1121;block.sculk_shrieker.shriek": "0.85;block/sculk_shrieker/shriek1", "1122;block.sculk_shrieker.step": "1;block/sculk/step1", "1123;block.sculk_vein.break": "0.8;block/sculk_vein/break1", "1124;block.sculk_vein.fall": "1;block/sculk/step1", "1125;block.sculk_vein.hit": "1;block/sculk/step1", "1126;block.sculk_vein.place": "0.8;block/sculk_vein/break1", "1127;block.sculk_vein.step": "1;block/sculk/step1", "1135;block.shroomlight.break": "1;block/shroomlight/break1", "1139;block.shroomlight.fall": "1;block/shroomlight/step1", "1138;block.shroomlight.hit": "1;block/shroomlight/step1", "1137;block.shroomlight.place": "1;block/shroomlight/break1", "1136;block.shroomlight.step": "1;block/shroomlight/step1", "1142;block.shulker_box.close": "1;block/shulker_box/close", "1143;block.shulker_box.open": "1;block/shulker_box/open", "1386;block.sign.waxed_interact_fail": "1;block/sign/waxed_interact_fail1", "1176;block.slime_block.break": "1;mob/slime/big1", "1177;block.slime_block.fall": "1;mob/slime/small1", "1178;block.slime_block.hit": "1;mob/slime/small1", "1179;block.slime_block.place": "1;mob/slime/big1", "1180;block.slime_block.step": "1;mob/slime/small1", "1181;block.small_amethyst_bud.break": "0.4;block/amethyst_cluster/break1", "1182;block.small_amethyst_bud.place": "0.4;block/amethyst_cluster/place1", "1183;block.small_dripleaf.break": "0.9;block/big_dripleaf/break1", "1184;block.small_dripleaf.fall": "0.9;block/big_dripleaf/step1", "1185;block.small_dripleaf.hit": "0.9;block/big_dripleaf/step1", "1186;block.small_dripleaf.place": "0.9;block/big_dripleaf/break1", "1187;block.small_dripleaf.step": "0.9;block/big_dripleaf/step1", "1217;block.smithing_table.use": "1;block/smithing_table/smithing_table1", "1218;block.smoker.smoke": "1;block/smoker/smoker1", "1232;block.sniffer_egg.crack": "1;mob/turtle/egg/egg_crack1", "1233;block.sniffer_egg.hatch": "1;mob/turtle/egg/egg_break1", "1231;block.sniffer_egg.plop": "1;mob/chicken/plop", "1235;block.snow.break": "1;dig/snow1", "1236;block.snow.fall": "1;step/snow1", "1242;block.snow.hit": "1;step/snow1", "1243;block.snow.place": "1;dig/snow1", "1244;block.snow.step": "1;step/snow1", "1188;block.soul_sand.break": "1;block/soul_sand/break1", "1192;block.soul_sand.fall": "1;block/soul_sand/step1", "1191;block.soul_sand.hit": "0.55;block/soul_sand/step1", "1190;block.soul_sand.place": "1;block/soul_sand/break1", "1189;block.soul_sand.step": "1;block/soul_sand/step1", "1193;block.soul_soil.break": "0.8;block/soul_soil/break1", "1197;block.soul_soil.fall": "1;block/soul_soil/step1", "1196;block.soul_soil.hit": "0.66;block/soul_soil/step1", "1195;block.soul_soil.place": "0.8;block/soul_soil/break1", "1194;block.soul_soil.step": "1;block/soul_soil/step1", "1199;block.spore_blossom.break": "1;block/spore_blossom/break1", "1200;block.spore_blossom.fall": "1;block/spore_blossom/step1", "1201;block.spore_blossom.hit": "1;block/spore_blossom/step1", "1202;block.spore_blossom.place": "1;block/spore_blossom/break1", "1203;block.spore_blossom.step": "1;block/spore_blossom/step1", "852;block.stem.break": "1;block/stem/break1", "856;block.stem.fall": "1;block/stem/step1", "855;block.stem.hit": "0.8;block/stem/step1", "854;block.stem.place": "0.8;block/stem/break1", "853;block.stem.step": "1;block/stem/step1", "1257;block.stone.break": "1;dig/stone1", "1260;block.stone.fall": "1;step/stone1", "1261;block.stone.hit": "1;step/stone1", "1262;block.stone.place": "1;dig/stone1", "1265;block.stone.step": "1;step/stone1", "1258;block.stone_button.click_off": "0.3;random/click", "1259;block.stone_button.click_on": "0.3;random/click", "1263;block.stone_pressure_plate.click_off": "0.3;random/click", "1264;block.stone_pressure_plate.click_on": "0.3;random/click", "482;block.suspicious_gravel.break": "1;block/suspicious_gravel/break1", "486;block.suspicious_gravel.fall": "1;block/suspicious_gravel/step1", "485;block.suspicious_gravel.hit": "0.8;block/suspicious_gravel/step1", "484;block.suspicious_gravel.place": "1;block/suspicious_gravel/place1", "483;block.suspicious_gravel.step": "1;block/suspicious_gravel/step1", "477;block.suspicious_sand.break": "1;block/suspicious_sand/break1", "481;block.suspicious_sand.fall": "1;block/suspicious_sand/step1", "480;block.suspicious_sand.hit": "1;block/suspicious_sand/step1", "479;block.suspicious_sand.place": "1;block/suspicious_sand/place1", "478;block.suspicious_sand.step": "1;block/suspicious_sand/step1", "1270;block.sweet_berry_bush.break": "0.8;block/sweet_berry_bush/break1", "1272;block.sweet_berry_bush.pick_berries": "1;item/sweet_berries/pick_from_bush1", "1271;block.sweet_berry_bush.place": "0.8;block/sweet_berry_bush/place1", "1288;block.tripwire.attach": "1;random/click", "1289;block.tripwire.click_off": "1;random/click", "1290;block.tripwire.click_on": "1;random/click", "1291;block.tripwire.detach": "1;random/bowhit1", "1296;block.tuff.break": "1;block/tuff/break1", "1300;block.tuff.fall": "1;block/tuff/step1", "1299;block.tuff.hit": "1;block/tuff/step1", "1298;block.tuff.place": "1;block/tuff/break1", "1297;block.tuff.step": "1;block/tuff/step1", "1350;block.vine.break": "0.9;block/vine/break1", "1351;block.vine.fall": "1;block/vine/climb1", "1352;block.vine.hit": "1;step/grass1", "1353;block.vine.place": "0.9;block/vine/break1", "1354;block.vine.step": "1;block/vine/climb1", "877;block.wart_block.break": "0.8;block/netherwart/break1", "881;block.wart_block.fall": "1;block/netherwart/step1", "880;block.wart_block.hit": "0.7;block/netherwart/step1", "879;block.wart_block.place": "0.8;block/netherwart/break1", "878;block.wart_block.step": "1;block/netherwart/step1", "1387;block.water.ambient": "1;liquid/water", "872;block.weeping_vines.break": "1;block/roots/break1", "876;block.weeping_vines.fall": "1;block/roots/break1", "875;block.weeping_vines.hit": "1;block/roots/break1", "874;block.weeping_vines.place": "1;block/roots/break1", "873;block.weeping_vines.step": "1;block/roots/step1", "1390;block.wet_grass.break": "0.8;dig/wet_grass1", "1391;block.wet_grass.fall": "1;step/wet_grass1", "1392;block.wet_grass.hit": "1;step/wet_grass1", "1393;block.wet_grass.place": "0.8;dig/wet_grass1", "1394;block.wet_grass.step": "1;step/wet_grass1", "1428;block.wood.break": "1;dig/wood1", "1429;block.wood.fall": "1;step/wood1", "1430;block.wood.hit": "1;step/wood1", "1431;block.wood.place": "1;dig/wood1", "1432;block.wood.step": "1;step/wood1", "1424;block.wooden_button.click_off": "0.3;random/wood_click", "1425;block.wooden_button.click_on": "0.3;random/wood_click", "1420;block.wooden_door.close": "0.9;block/wooden_door/close1", "1421;block.wooden_door.open": "0.9;block/wooden_door/open1", "1426;block.wooden_pressure_plate.click_off": "0.3;random/click", "1427;block.wooden_pressure_plate.click_on": "0.3;random/click", "1422;block.wooden_trapdoor.close": "0.9;block/wooden_trapdoor/close1", "1423;block.wooden_trapdoor.open": "0.9;block/wooden_trapdoor/open1", "1433;block.wool.break": "1;dig/cloth1", "1434;block.wool.fall": "1;step/cloth1", "1435;block.wool.hit": "1;step/cloth1", "1436;block.wool.place": "1;dig/cloth1", "1437;block.wool.step": "1;step/cloth1", "1277;enchant.thorns.hit": "1;enchant/thorns/hit1", "0;entity.allay.ambient_with_item": "0.3;mob/allay/idle_with_item1", "1;entity.allay.ambient_without_item": "0.25;mob/allay/idle_without_item1", "2;entity.allay.death": "0.6;mob/allay/death1", "3;entity.allay.hurt": "0.8;mob/allay/hurt1", "4;entity.allay.item_given": "0.1;mob/allay/item_given1", "5;entity.allay.item_taken": "0.1;mob/allay/item_taken1", "6;entity.allay.item_thrown": "0.25;mob/allay/item_thrown1", "63;entity.armor_stand.break": "1;entity/armorstand/break1", "64;entity.armor_stand.fall": "1;dig/wood1", "65;entity.armor_stand.hit": "1;entity/armorstand/hit1", "66;entity.armor_stand.place": "1;dig/stone1", "67;entity.arrow.hit": "1;random/bowhit1", "68;entity.arrow.hit_player": "1;random/successful_hit", "69;entity.arrow.shoot": "1;random/bow", "73;entity.axolotl.attack": "0.5;mob/axolotl/attack1", "74;entity.axolotl.death": "1;mob/axolotl/death1", "75;entity.axolotl.hurt": "1;mob/axolotl/hurt1", "76;entity.axolotl.idle_air": "1;mob/axolotl/idle_air1", "77;entity.axolotl.idle_water": "1;mob/axolotl/idle1", "78;entity.axolotl.splash": "0.9;mob/dolphin/splash1", "79;entity.axolotl.swim": "1;entity/fish/swim5", "120;entity.bat.ambient": "1;mob/bat/idle1", "121;entity.bat.death": "1;mob/bat/death", "122;entity.bat.hurt": "1;mob/bat/hurt1", "123;entity.bat.loop": "1;mob/bat/loop", "124;entity.bat.takeoff": "1;mob/bat/takeoff", "129;entity.bee.death": "1;mob/bee/death1", "130;entity.bee.hurt": "1;mob/bee/hurt1", "132;entity.bee.loop": "0.6;mob/bee/loop1", "131;entity.bee.loop_aggressive": "0.8;mob/bee/aggressive1", "134;entity.bee.pollinate": "0.8;mob/bee/pollinate1", "133;entity.bee.sting": "1;mob/bee/sting", "147;entity.blaze.ambient": "1;mob/blaze/breathe1", "148;entity.blaze.burn": "1;fire/fire", "149;entity.blaze.death": "1;mob/blaze/death", "150;entity.blaze.hurt": "1;mob/blaze/hit1", "151;entity.blaze.shoot": "1;mob/ghast/fireball4", "152;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "153;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "198;entity.camel.ambient": "0.45;mob/camel/ambient1", "199;entity.camel.dash": "1;mob/camel/dash1", "200;entity.camel.dash_ready": "0.25;mob/camel/dash_ready1", "201;entity.camel.death": "1;mob/camel/death1", "202;entity.camel.eat": "0.2;mob/camel/eat1", "203;entity.camel.hurt": "1;mob/camel/hurt1", "204;entity.camel.saddle": "1;entity.horse.saddle", "205;entity.camel.sit": "0.3;mob/camel/sit1", "206;entity.camel.stand": "0.3;mob/camel/stand1", "207;entity.camel.step": "0.5;mob/camel/step1", "208;entity.camel.step_sand": "0.45;mob/camel/step_sand1", "217;entity.cat.ambient": "0.6;mob/cat/meow1", "222;entity.cat.beg_for_food": "0.7;mob/cat/beg1", "219;entity.cat.death": "0.75;mob/cat/hitt1", "220;entity.cat.eat": "1;mob/cat/eat1", "221;entity.cat.hiss": "0.4;mob/cat/hiss1", "223;entity.cat.hurt": "0.65;mob/cat/hitt1", "224;entity.cat.purr": "0.7;mob/cat/purr1", "225;entity.cat.purreow": "0.5;mob/cat/purreow1", "218;entity.cat.stray_ambient": "0.35;mob/cat/stray/idle1", "270;entity.chicken.ambient": "1;mob/chicken/say1", "271;entity.chicken.death": "1;mob/chicken/hurt1", "272;entity.chicken.egg": "1;mob/chicken/plop", "273;entity.chicken.hurt": "1;mob/chicken/hurt1", "274;entity.chicken.step": "1;mob/chicken/step1", "288;entity.cod.death": "1;entity/fish/hurt1", "289;entity.cod.flop": "0.3;entity/fish/flop1", "290;entity.cod.hurt": "1;entity/fish/hurt1", "311;entity.cow.ambient": "1;mob/cow/say1", "312;entity.cow.death": "1;mob/cow/hurt1", "313;entity.cow.hurt": "1;mob/cow/hurt1", "314;entity.cow.milk": "1;entity/cow/milk1", "315;entity.cow.step": "1;mob/cow/step1", "316;entity.creeper.death": "1;mob/creeper/death", "317;entity.creeper.hurt": "1;mob/creeper/say1", "318;entity.creeper.primed": "1;random/fuse", "353;entity.dolphin.ambient": "1;mob/dolphin/blowhole1", "354;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "355;entity.dolphin.attack": "1;mob/dolphin/attack1", "356;entity.dolphin.death": "1;mob/dolphin/death1", "357;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "358;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "359;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "360;entity.dolphin.play": "1;mob/dolphin/play1", "361;entity.dolphin.splash": "1;mob/dolphin/splash1", "362;entity.dolphin.swim": "1;entity/fish/swim5", "363;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "364;entity.donkey.angry": "1;mob/horse/donkey/angry1", "365;entity.donkey.chest": "1;mob/chicken/plop", "366;entity.donkey.death": "1;mob/horse/donkey/death", "367;entity.donkey.eat": "1;entity/horse/eat1", "368;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "411;entity.dragon_fireball.explode": "1;random/explode1", "386;entity.drowned.ambient": "0.9;mob/drowned/idle1", "387;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "388;entity.drowned.death": "0.9;mob/drowned/death1", "389;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "390;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "391;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "392;entity.drowned.shoot": "1;item/trident/throw1", "393;entity.drowned.step": "1;mob/drowned/step1", "394;entity.drowned.swim": "1;liquid/swim1", "396;entity.egg.throw": "1;random/bow", "397;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "398;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "399;entity.elder_guardian.curse": "1;mob/guardian/curse", "400;entity.elder_guardian.death": "1;mob/guardian/elder_death", "401;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "402;entity.elder_guardian.flop": "1;mob/guardian/flop1", "403;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "404;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "409;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "410;entity.ender_dragon.death": "1;mob/enderdragon/end", "412;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "413;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "414;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "415;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "416;entity.ender_eye.death": "1.3;entity/endereye/dead1", "417;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "428;entity.ender_pearl.throw": "1;random/bow", "418;entity.enderman.ambient": "1;mob/endermen/idle1", "419;entity.enderman.death": "1;mob/endermen/death", "420;entity.enderman.hurt": "1;mob/endermen/hit1", "421;entity.enderman.scream": "1;mob/endermen/scream1", "422;entity.enderman.stare": "1;mob/endermen/stare", "423;entity.enderman.teleport": "1;mob/endermen/portal", "424;entity.endermite.ambient": "1;mob/silverfish/say1", "425;entity.endermite.death": "1;mob/silverfish/kill", "426;entity.endermite.hurt": "1;mob/silverfish/hit1", "427;entity.endermite.step": "1;mob/silverfish/step1", "432;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "433;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "434;entity.evoker.celebrate": "1;mob/evocation_illager/celebrate", "435;entity.evoker.death": "1;mob/evocation_illager/death1", "437;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "438;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "439;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "440;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "436;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "441;entity.experience_bottle.throw": "1;random/bow", "442;entity.experience_orb.pickup": "1;random/orb", "446;entity.firework_rocket.blast": "1;fireworks/blast1", "447;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "448;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "449;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "450;entity.firework_rocket.launch": "1;fireworks/launch1", "451;entity.firework_rocket.shoot": "1;random/bow", "452;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "453;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "456;entity.fish.swim": "1;entity/fish/swim1", "457;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "458;entity.fishing_bobber.splash": "1;random/splash", "459;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "466;entity.fox.aggro": "0.65;mob/fox/aggro1", "467;entity.fox.ambient": "0.8;mob/fox/idle1", "468;entity.fox.bite": "0.6;mob/fox/bite1", "469;entity.fox.death": "0.9;mob/fox/death1", "470;entity.fox.eat": "0.65;mob/fox/eat1", "471;entity.fox.hurt": "0.75;mob/fox/hurt1", "472;entity.fox.screech": "0.45;mob/fox/screech1", "473;entity.fox.sleep": "0.8;mob/fox/sleep1", "474;entity.fox.sniff": "0.6;mob/fox/sniff1", "475;entity.fox.spit": "0.7;mob/fox/spit1", "476;entity.fox.teleport": "1;mob/endermen/portal", "498;entity.frog.ambient": "0.8;mob/frog/idle1", "499;entity.frog.death": "1;mob/frog/death1", "500;entity.frog.eat": "0.6;mob/frog/eat1", "501;entity.frog.hurt": "1;mob/frog/hurt1", "502;entity.frog.lay_spawn": "0.25;mob/frog/lay_spawn1", "503;entity.frog.long_jump": "0.12;mob/frog/long_jump1", "504;entity.frog.step": "1;mob/frog/step1", "505;entity.frog.tongue": "0.5;mob/frog/tongue1", "512;entity.generic.big_fall": "1;damage/fallbig", "513;entity.generic.burn": "1;random/fizz", "514;entity.generic.death": "1;damage/hit1", "515;entity.generic.drink": "1;random/drink", "516;entity.generic.eat": "1;random/eat1", "517;entity.generic.explode": "1;random/explode1", "518;entity.generic.extinguish_fire": "1;random/fizz", "519;entity.generic.hurt": "1;damage/hit1", "520;entity.generic.small_fall": "1;damage/fallsmall", "521;entity.generic.splash": "1;liquid/splash", "522;entity.generic.swim": "1;liquid/swim1", "523;entity.ghast.ambient": "1;mob/ghast/moan1", "524;entity.ghast.death": "1;mob/ghast/death", "525;entity.ghast.hurt": "1;mob/ghast/scream1", "526;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "527;entity.ghast.shoot": "1;mob/ghast/fireball4", "528;entity.ghast.warn": "1;mob/ghast/charge", "540;entity.glow_item_frame.add_item": "1;entity/itemframe/add_item1", "541;entity.glow_item_frame.break": "1;entity/itemframe/break1", "542;entity.glow_item_frame.place": "1;entity/itemframe/place1", "543;entity.glow_item_frame.remove_item": "1;entity/itemframe/remove_item1", "544;entity.glow_item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "545;entity.glow_squid.ambient": "1;entity/glow_squid/ambient1", "546;entity.glow_squid.death": "1;entity/glow_squid/death1", "547;entity.glow_squid.hurt": "1;entity/glow_squid/hurt1", "548;entity.glow_squid.squirt": "1;entity/glow_squid/squirt1", "549;entity.goat.ambient": "0.82;mob/goat/idle1", "550;entity.goat.death": "0.65;mob/goat/death1", "551;entity.goat.eat": "1;mob/goat/eat1", "557;entity.goat.horn_break": "0.9;mob/goat/horn_break1", "552;entity.goat.hurt": "0.65;mob/goat/hurt1", "553;entity.goat.long_jump": "0.8;mob/goat/jump1", "554;entity.goat.milk": "1;mob/mooshroom/milk1", "555;entity.goat.prepare_ram": "0.8;mob/goat/pre_ram1", "556;entity.goat.ram_impact": "0.8;mob/goat/impact1", "559;entity.goat.screaming.ambient": "0.82;mob/goat/idle1", "560;entity.goat.screaming.death": "0.65;mob/goat/screaming_death1", "561;entity.goat.screaming.eat": "1;mob/goat/eat1", "562;entity.goat.screaming.hurt": "0.65;mob/goat/screaming_hurt1", "563;entity.goat.screaming.long_jump": "0.8;mob/goat/jump1", "564;entity.goat.screaming.milk": "1;mob/goat/screaming_milk1", "565;entity.goat.screaming.prepare_ram": "0.8;mob/goat/screaming_pre_ram1", "566;entity.goat.screaming.ram_impact": "0.8;mob/goat/impact1", "568;entity.goat.step": "1;mob/goat/step1", "581;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "582;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "583;entity.guardian.attack": "1;mob/guardian/attack_loop", "584;entity.guardian.death": "1;mob/guardian/guardian_death", "585;entity.guardian.death_land": "1;mob/guardian/land_death", "586;entity.guardian.flop": "1;mob/guardian/flop1", "587;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "588;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "610;entity.hoglin.ambient": "0.65;mob/hoglin/idle1", "611;entity.hoglin.angry": "1;mob/hoglin/angry1", "612;entity.hoglin.attack": "0.8;mob/hoglin/attack1", "613;entity.hoglin.converted_to_zombified": "0.8;mob/hoglin/converted1", "614;entity.hoglin.death": "0.9;mob/hoglin/death1", "615;entity.hoglin.hurt": "0.8;mob/hoglin/hurt1", "616;entity.hoglin.retreat": "0.8;mob/hoglin/idle11", "617;entity.hoglin.step": "1;mob/hoglin/step1", "627;entity.horse.ambient": "1;mob/horse/idle1", "628;entity.horse.angry": "1;mob/horse/angry1", "629;entity.horse.armor": "1;mob/horse/armor", "630;entity.horse.breathe": "1;mob/horse/breathe1", "631;entity.horse.death": "1;mob/horse/death", "632;entity.horse.eat": "1;entity/horse/eat1", "633;entity.horse.gallop": "1;mob/horse/gallop1", "634;entity.horse.hurt": "1;mob/horse/hit1", "635;entity.horse.jump": "1;mob/horse/jump", "636;entity.horse.land": "1;mob/horse/land", "637;entity.horse.saddle": "1;mob/horse/leather", "638;entity.horse.step": "1;mob/horse/soft1", "639;entity.horse.step_wood": "1;mob/horse/wood1", "640;entity.hostile.big_fall": "1;damage/fallbig", "641;entity.hostile.death": "1;damage/hit1", "642;entity.hostile.hurt": "1;damage/hit1", "643;entity.hostile.small_fall": "1;damage/fallsmall", "644;entity.hostile.splash": "1;liquid/splash", "645;entity.hostile.swim": "1;liquid/swim1", "646;entity.husk.ambient": "1;mob/husk/idle1", "647;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "648;entity.husk.death": "1;mob/husk/death1", "649;entity.husk.hurt": "1;mob/husk/hurt1", "650;entity.husk.step": "1;mob/husk/step1", "651;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "652;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "653;entity.illusioner.death": "1;mob/illusion_illager/death1", "654;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "655;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "656;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "657;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "661;entity.iron_golem.attack": "1;mob/irongolem/throw", "662;entity.iron_golem.damage": "0.8;mob/irongolem/damage1", "663;entity.iron_golem.death": "1;mob/irongolem/death", "664;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "665;entity.iron_golem.repair": "1;mob/irongolem/repair", "666;entity.iron_golem.step": "1;mob/irongolem/walk1", "674;entity.item.break": "1;random/break", "675;entity.item.pickup": "1;random/pop", "669;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "670;entity.item_frame.break": "1;entity/itemframe/break1", "671;entity.item_frame.place": "1;entity/itemframe/place1", "672;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "673;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "691;entity.leash_knot.break": "1;entity/leashknot/break1", "692;entity.leash_knot.place": "1;entity/leashknot/place1", "694;entity.lightning_bolt.impact": "1;random/explode1", "695;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "696;entity.lingering_potion.throw": "1;random/bow", "697;entity.llama.ambient": "1;mob/llama/idle1", "698;entity.llama.angry": "1;mob/llama/angry1", "699;entity.llama.chest": "1;mob/chicken/plop", "700;entity.llama.death": "1;mob/llama/death1", "701;entity.llama.eat": "1;mob/llama/eat1", "702;entity.llama.hurt": "1;mob/llama/hurt1", "703;entity.llama.spit": "1;mob/llama/spit1", "704;entity.llama.step": "1;mob/llama/step1", "705;entity.llama.swag": "1;mob/llama/swag", "713;entity.magma_cube.death": "1;mob/slime/big1", "706;entity.magma_cube.death_small": "1;mob/slime/small1", "714;entity.magma_cube.hurt": "1;mob/slime/big1", "715;entity.magma_cube.hurt_small": "1;mob/slime/small1", "716;entity.magma_cube.jump": "1;mob/magmacube/jump1", "717;entity.magma_cube.squish": "1;mob/magmacube/big1", "718;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "734;entity.minecart.inside": "1;minecart/inside", "733;entity.minecart.inside.underwater": "1;minecart/inside_underwater1", "735;entity.minecart.riding": "1;minecart/base", "736;entity.mooshroom.convert": "0.75;mob/mooshroom/convert1", "737;entity.mooshroom.eat": "1;mob/mooshroom/eat1", "738;entity.mooshroom.milk": "1;mob/mooshroom/milk1", "740;entity.mooshroom.shear": "1;mob/sheep/shear", "739;entity.mooshroom.suspicious_milk": "1;mob/mooshroom/milk1", "771;entity.mule.ambient": "1;mob/horse/donkey/idle1", "772;entity.mule.angry": "1;mob/horse/donkey/angry1", "773;entity.mule.chest": "1;mob/chicken/plop", "774;entity.mule.death": "1;mob/horse/donkey/death", "775;entity.mule.eat": "1;entity/horse/eat1", "776;entity.mule.hurt": "1;mob/horse/donkey/hit1", "915;entity.ocelot.ambient": "0.3;mob/cat/ocelot/idle1", "916;entity.ocelot.death": "0.45;mob/cat/ocelot/death1", "914;entity.ocelot.hurt": "0.45;mob/cat/hitt1", "917;entity.painting.break": "1;entity/painting/break1", "918;entity.painting.place": "1;entity/painting/place1", "926;entity.panda.aggressive_ambient": "1;mob/panda/aggressive/aggressive1", "921;entity.panda.ambient": "1;mob/panda/idle1", "929;entity.panda.bite": "1;mob/panda/bite1", "925;entity.panda.cant_breed": "1;mob/panda/cant_breed1", "922;entity.panda.death": "0.82;mob/panda/death1", "923;entity.panda.eat": "1;mob/panda/eat1", "928;entity.panda.hurt": "0.82;mob/panda/hurt1", "919;entity.panda.pre_sneeze": "1;mob/panda/pre_sneeze", "920;entity.panda.sneeze": "1;mob/panda/sneeze1", "924;entity.panda.step": "1;mob/panda/step1", "927;entity.panda.worried_ambient": "1;mob/panda/pant2", "930;entity.parrot.ambient": "0.7;mob/parrot/idle1", "931;entity.parrot.death": "1;mob/parrot/death1", "932;entity.parrot.eat": "1;mob/parrot/eat1", "933;entity.parrot.fly": "1;mob/parrot/fly1", "934;entity.parrot.hurt": "1;mob/parrot/hurt1", "935;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "936;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "937;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "938;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "939;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "940;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "941;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "942;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "943;entity.parrot.imitate.guardian": "0.4;entity.guardian.ambient", "944;entity.parrot.imitate.hoglin": "0.6;entity.hoglin.ambient", "945;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "946;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "947;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "948;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "949;entity.parrot.imitate.piglin": "0.6;entity.piglin.ambient", "950;entity.parrot.imitate.piglin_brute": "0.6;entity.piglin_brute.ambient", "951;entity.parrot.imitate.pillager": "0.4;entity.pillager.ambient", "952;entity.parrot.imitate.ravager": "0.2;entity.ravager.ambient", "953;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "954;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "955;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "956;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "957;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "958;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "959;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "960;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "961;entity.parrot.imitate.warden": "0.8;entity.warden.tendril_clicks", "962;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "963;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "964;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "965;entity.parrot.imitate.zoglin": "0.6;entity.zoglin.ambient", "966;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "967;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "968;entity.parrot.step": "1;mob/parrot/step1", "969;entity.phantom.ambient": "0.8;mob/phantom/idle1", "970;entity.phantom.bite": "1;mob/phantom/bite1", "971;entity.phantom.death": "1;mob/phantom/death1", "972;entity.phantom.flap": "0.9;mob/phantom/flap1", "973;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "974;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "975;entity.pig.ambient": "1;mob/pig/say1", "976;entity.pig.death": "1;mob/pig/death", "977;entity.pig.hurt": "1;mob/pig/say1", "978;entity.pig.saddle": "1;mob/horse/leather", "979;entity.pig.step": "1;mob/pig/step1", "980;entity.piglin.admiring_item": "0.8;mob/piglin/admire1", "981;entity.piglin.ambient": "0.66;mob/piglin/idle1", "982;entity.piglin.angry": "0.7;mob/piglin/angry1", "983;entity.piglin.celebrate": "0.8;mob/piglin/celebrate1", "989;entity.piglin.converted_to_zombified": "1;mob/piglin/converted1", "984;entity.piglin.death": "0.7;mob/piglin/death1", "986;entity.piglin.hurt": "0.7;mob/piglin/hurt1", "985;entity.piglin.jealous": "0.8;mob/piglin/jealous1", "987;entity.piglin.retreat": "0.65;mob/piglin/retreat1", "988;entity.piglin.step": "0.75;mob/piglin/step1", "990;entity.piglin_brute.ambient": "0.9;mob/piglin_brute/idle1", "991;entity.piglin_brute.angry": "0.9;mob/piglin_brute/angry1", "995;entity.piglin_brute.converted_to_zombified": "1;mob/piglin/converted1", "992;entity.piglin_brute.death": "0.8;mob/piglin_brute/death1", "993;entity.piglin_brute.hurt": "0.64;mob/piglin_brute/hurt1", "994;entity.piglin_brute.step": "0.75;mob/piglin_brute/step1", "996;entity.pillager.ambient": "1;mob/pillager/idle1", "997;entity.pillager.celebrate": "1;mob/pillager/celebrate1", "998;entity.pillager.death": "1;mob/pillager/death1", "999;entity.pillager.hurt": "1;mob/pillager/hurt1", "1002;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "1003;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "1004;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "1005;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "1006;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "1007;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "1008;entity.player.big_fall": "1;damage/fallbig", "1009;entity.player.breath": "1;random/breath", "1010;entity.player.burp": "1;random/burp", "1011;entity.player.death": "1;damage/hit1", "1012;entity.player.hurt": "1;damage/hit1", "1013;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "1014;entity.player.hurt_freeze": "1;entity/player/hurt/freeze_hurt1", "1015;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "1016;entity.player.hurt_sweet_berry_bush": "1;entity/player/hurt/berrybush_hurt1", "1017;entity.player.levelup": "1;random/levelup", "1018;entity.player.small_fall": "1;damage/fallsmall", "1019;entity.player.splash": "1;liquid/splash", "1020;entity.player.splash.high_speed": "1;liquid/heavy_splash", "1021;entity.player.swim": "1;liquid/swim5", "1022;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "1023;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "1024;entity.polar_bear.death": "1;mob/polarbear/death1", "1025;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "1026;entity.polar_bear.step": "1;mob/polarbear/step1", "1027;entity.polar_bear.warning": "1;mob/polarbear/warning1", "1042;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "1043;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "1044;entity.puffer_fish.death": "1;entity/pufferfish/death1", "1045;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "1046;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "1047;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "1049;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "1050;entity.rabbit.attack": "1;entity/rabbit/attack1", "1051;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "1052;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "1053;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "1055;entity.ravager.ambient": "1;mob/ravager/idle1", "1056;entity.ravager.attack": "1;mob/ravager/bite1", "1057;entity.ravager.celebrate": "1;mob/ravager/celebrate1", "1058;entity.ravager.death": "1;mob/ravager/death1", "1059;entity.ravager.hurt": "1;mob/ravager/hurt1", "1062;entity.ravager.roar": "1;mob/ravager/roar1", "1060;entity.ravager.step": "1;mob/ravager/step1", "1061;entity.ravager.stunned": "1;mob/ravager/stun1", "1084;entity.salmon.death": "1;entity/fish/hurt1", "1085;entity.salmon.flop": "0.3;entity/fish/flop1", "1086;entity.salmon.hurt": "1;entity/fish/hurt1", "1128;entity.sheep.ambient": "1;mob/sheep/say1", "1129;entity.sheep.death": "1;mob/sheep/say1", "1130;entity.sheep.hurt": "1;mob/sheep/say1", "1131;entity.sheep.shear": "1;mob/sheep/shear", "1132;entity.sheep.step": "1;mob/sheep/step1", "1141;entity.shulker.ambient": "1;entity/shulker/ambient1", "1146;entity.shulker.close": "1;entity/shulker/close1", "1147;entity.shulker.death": "1;entity/shulker/death1", "1148;entity.shulker.hurt": "1;entity/shulker/hurt1", "1149;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "1150;entity.shulker.open": "1;entity/shulker/open1", "1151;entity.shulker.shoot": "1;entity/shulker/shoot1", "1152;entity.shulker.teleport": "1;mob/endermen/portal", "1144;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "1145;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "1153;entity.silverfish.ambient": "1;mob/silverfish/say1", "1154;entity.silverfish.death": "1;mob/silverfish/kill", "1155;entity.silverfish.hurt": "1;mob/silverfish/hit1", "1156;entity.silverfish.step": "1;mob/silverfish/step1", "1157;entity.skeleton.ambient": "1;mob/skeleton/say1", "1158;entity.skeleton.converted_to_stray": "1;mob/stray/convert1", "1159;entity.skeleton.death": "1;mob/skeleton/death", "1168;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "1169;entity.skeleton.shoot": "1;random/bow", "1170;entity.skeleton.step": "1;mob/skeleton/step1", "1160;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "1164;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "1161;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "1165;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "1162;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "1166;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "1167;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "1163;entity.skeleton_horse.swim": "0.4;liquid/swim9", "1171;entity.slime.attack": "1;mob/slime/attack1", "1172;entity.slime.death": "1;mob/slime/big1", "1213;entity.slime.death_small": "1;mob/slime/small1", "1173;entity.slime.hurt": "1;mob/slime/big1", "1214;entity.slime.hurt_small": "1;mob/slime/small1", "1174;entity.slime.jump": "1;mob/slime/big1", "1215;entity.slime.jump_small": "1;mob/slime/small1", "1175;entity.slime.squish": "1;mob/slime/big1", "1216;entity.slime.squish_small": "1;mob/slime/small1", "1223;entity.sniffer.death": "1;mob/sniffer/death1", "1228;entity.sniffer.digging": "1;mob/sniffer/longdig1", "1229;entity.sniffer.digging_stop": "1;mob/sniffer/digging_stop1", "1224;entity.sniffer.drop_seed": "0.8;random/pop", "1220;entity.sniffer.eat": "0.7;mob/sniffer/eat1", "1230;entity.sniffer.happy": "1;mob/sniffer/happy1", "1222;entity.sniffer.hurt": "1;mob/sniffer/hurt1", "1221;entity.sniffer.idle": "1;mob/sniffer/idle1", "1225;entity.sniffer.scenting": "1;mob/sniffer/scenting1", "1227;entity.sniffer.searching": "1;mob/sniffer/searching1", "1226;entity.sniffer.sniffing": "1;mob/sniffer/sniffing1", "1219;entity.sniffer.step": "1;mob/sniffer/step1", "1238;entity.snow_golem.death": "1;entity/snowman/death1", "1239;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "1241;entity.snow_golem.shear": "1;mob/sheep/shear", "1240;entity.snow_golem.shoot": "1;random/bow", "1234;entity.snowball.throw": "1;random/bow", "1245;entity.spider.ambient": "1;mob/spider/say1", "1246;entity.spider.death": "1;mob/spider/death", "1247;entity.spider.hurt": "1;mob/spider/say1", "1248;entity.spider.step": "1;mob/spider/step1", "1249;entity.splash_potion.break": "1;random/glass1", "1250;entity.splash_potion.throw": "1;random/bow", "1253;entity.squid.ambient": "1;entity/squid/ambient1", "1254;entity.squid.death": "1;entity/squid/death1", "1255;entity.squid.hurt": "1;entity/squid/hurt1", "1256;entity.squid.squirt": "1;entity/squid/squirt1", "1266;entity.stray.ambient": "1;mob/stray/idle1", "1267;entity.stray.death": "1;mob/stray/death1", "1268;entity.stray.hurt": "1;mob/stray/hurt1", "1269;entity.stray.step": "1;mob/stray/step1", "1204;entity.strider.ambient": "1;mob/strider/idle1", "1207;entity.strider.death": "1;mob/strider/death1", "1211;entity.strider.eat": "1;mob/strider/eat1", "1205;entity.strider.happy": "1;mob/strider/happy1", "1208;entity.strider.hurt": "1;mob/strider/hurt1", "1206;entity.strider.retreat": "0.8;mob/strider/retreat1", "1212;entity.strider.saddle": "1;mob/horse/leather", "1209;entity.strider.step": "0.25;mob/strider/step1", "1210;entity.strider.step_lava": "0.2;mob/strider/step_lava1", "1273;entity.tadpole.death": "1;mob/tadpole/death1", "1274;entity.tadpole.flop": "1;entity.tropical_fish.flop", "1275;entity.tadpole.grow_up": "0.75;mob/frog/idle1", "1276;entity.tadpole.hurt": "1;mob/tadpole/hurt1", "1278;entity.tnt.primed": "1;random/fuse", "1293;entity.tropical_fish.death": "1;entity/fish/hurt1", "1294;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "1295;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "1301;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "1302;entity.turtle.death": "1;mob/turtle/death1", "1303;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "1304;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "1305;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "1306;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "1307;entity.turtle.hurt": "1;mob/turtle/hurt1", "1308;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "1309;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "1310;entity.turtle.shamble": "1;mob/turtle/walk1", "1311;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "1312;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "1322;entity.vex.ambient": "1;mob/vex/idle1", "1323;entity.vex.charge": "1;mob/vex/charge1", "1324;entity.vex.death": "1;mob/vex/death1", "1325;entity.vex.hurt": "1;mob/vex/hurt1", "1326;entity.villager.ambient": "1;mob/villager/idle1", "1327;entity.villager.celebrate": "1;mob/villager/yes1", "1328;entity.villager.death": "1;mob/villager/death", "1329;entity.villager.hurt": "1;mob/villager/hit1", "1330;entity.villager.no": "1;mob/villager/no1", "1331;entity.villager.trade": "1;mob/villager/haggle1", "1333;entity.villager.work_armorer": "1;block/blastfurnace/blastfurnace1", "1334;entity.villager.work_butcher": "1;block/smoker/smoker1", "1335;entity.villager.work_cartographer": "1;ui/cartography_table/drawmap1", "1336;entity.villager.work_cleric": "1;block/brewing_stand/brew1", "1337;entity.villager.work_farmer": "1;block/composter/fill_success1", "1338;entity.villager.work_fisherman": "1;block/barrel/open1", "1339;entity.villager.work_fletcher": "1;block/fletching_table/fletching_table1", "1340;entity.villager.work_leatherworker": "0.9;block/cauldron/dye1", "1341;entity.villager.work_librarian": "2;item/book/open_flip1", "1342;entity.villager.work_mason": "1;ui/stonecutter/cut1", "1343;entity.villager.work_shepherd": "0.5;ui/loom/take_result1", "1344;entity.villager.work_toolsmith": "1;block/smithing_table/smithing_table1", "1345;entity.villager.work_weaponsmith": "0.5;block/grindstone/grindstone1", "1332;entity.villager.yes": "1;mob/villager/yes1", "1346;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "1347;entity.vindicator.celebrate": "1;mob/vindication_illager/celebrate1", "1348;entity.vindicator.death": "1;mob/vindication_illager/death1", "1349;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "1356;entity.wandering_trader.ambient": "1;mob/wandering_trader/idle1", "1357;entity.wandering_trader.death": "1;mob/wandering_trader/death", "1358;entity.wandering_trader.disappeared": "0.8;mob/wandering_trader/disappeared1", "1359;entity.wandering_trader.drink_milk": "1;mob/wandering_trader/drink_milk1", "1360;entity.wandering_trader.drink_potion": "0.7;mob/wandering_trader/drink_potion", "1361;entity.wandering_trader.hurt": "1;mob/wandering_trader/hurt1", "1362;entity.wandering_trader.no": "1;mob/wandering_trader/no1", "1363;entity.wandering_trader.reappeared": "0.8;mob/wandering_trader/reappeared1", "1364;entity.wandering_trader.trade": "1;mob/wandering_trader/haggle1", "1365;entity.wandering_trader.yes": "1;mob/wandering_trader/yes1", "1366;entity.warden.agitated": "1;mob/warden/agitated_1", "1367;entity.warden.ambient": "1;mob/warden/ambient_1", "1368;entity.warden.angry": "1;mob/warden/angry_1", "1369;entity.warden.attack_impact": "1;mob/warden/attack_impact_1", "1370;entity.warden.death": "1;mob/warden/death_1", "1371;entity.warden.dig": "1;mob/warden/dig", "1372;entity.warden.emerge": "1;mob/warden/emerge", "1373;entity.warden.heartbeat": "1;mob/warden/heartbeat_1", "1374;entity.warden.hurt": "1;mob/warden/hurt_1", "1375;entity.warden.listening": "1;mob/warden/listening_1", "1376;entity.warden.listening_angry": "1;mob/warden/listening_angry_1", "1377;entity.warden.nearby_close": "1;mob/warden/nearby_close_1", "1378;entity.warden.nearby_closer": "1;mob/warden/nearby_closer_1", "1379;entity.warden.nearby_closest": "1;mob/warden/nearby_closest_1", "1380;entity.warden.roar": "1;mob/warden/roar_1", "1381;entity.warden.sniff": "0.75;mob/warden/sniff_1", "1382;entity.warden.sonic_boom": "1;mob/warden/sonic_boom1", "1383;entity.warden.sonic_charge": "1;mob/warden/sonic_charge1", "1384;entity.warden.step": "0.3;mob/warden/step_1", "1385;entity.warden.tendril_clicks": "1;mob/warden/tendril_clicks_1", "1395;entity.witch.ambient": "1;entity/witch/ambient1", "1396;entity.witch.celebrate": "1;entity/witch/ambient1", "1397;entity.witch.death": "1;entity/witch/death1", "1398;entity.witch.drink": "1;entity/witch/drink1", "1399;entity.witch.hurt": "1;entity/witch/hurt1", "1400;entity.witch.throw": "1;entity/witch/throw1", "1401;entity.wither.ambient": "1;mob/wither/idle1", "1402;entity.wither.break_block": "1;mob/zombie/woodbreak", "1403;entity.wither.death": "1;mob/wither/death", "1404;entity.wither.hurt": "1;mob/wither/hurt1", "1405;entity.wither.shoot": "1;mob/wither/shoot", "1410;entity.wither.spawn": "1;mob/wither/spawn", "1406;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "1407;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "1408;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "1409;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "1411;entity.wolf.ambient": "1;mob/wolf/bark1", "1412;entity.wolf.death": "1;mob/wolf/death", "1413;entity.wolf.growl": "1;mob/wolf/growl1", "1414;entity.wolf.howl": "1;mob/wolf/howl1", "1415;entity.wolf.hurt": "1;mob/wolf/hurt1", "1416;entity.wolf.pant": "1;mob/wolf/panting", "1417;entity.wolf.shake": "1;mob/wolf/shake", "1418;entity.wolf.step": "1;mob/wolf/step1", "1419;entity.wolf.whine": "1;mob/wolf/whine", "1438;entity.zoglin.ambient": "0.9;mob/zoglin/idle1", "1439;entity.zoglin.angry": "0.8;mob/zoglin/angry1", "1440;entity.zoglin.attack": "0.8;mob/zoglin/attack1", "1441;entity.zoglin.death": "0.93;mob/zoglin/death1", "1442;entity.zoglin.hurt": "0.83;mob/zoglin/hurt1", "1443;entity.zoglin.step": "1;mob/zoglin/step1", "1444;entity.zombie.ambient": "1;mob/zombie/say1", "1446;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "1445;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "1447;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "1448;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "1449;entity.zombie.death": "1;mob/zombie/death", "1450;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "1454;entity.zombie.hurt": "1;mob/zombie/hurt1", "1455;entity.zombie.infect": "1;mob/zombie/infect", "1460;entity.zombie.step": "1;mob/zombie/step1", "1451;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "1452;entity.zombie_horse.death": "1;mob/horse/zombie/death", "1453;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "1461;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "1462;entity.zombie_villager.converted": "1;mob/zombie/unfect", "1463;entity.zombie_villager.cure": "1;mob/zombie/remedy", "1464;entity.zombie_villager.death": "1;mob/zombie_villager/death", "1465;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "1466;entity.zombie_villager.step": "1;mob/zombie/step1", "1456;entity.zombified_piglin.ambient": "1;mob/zombified_piglin/zpig1", "1457;entity.zombified_piglin.angry": "1;mob/zombified_piglin/zpigangry1", "1458;entity.zombified_piglin.death": "1;mob/zombified_piglin/zpigdeath", "1459;entity.zombified_piglin.hurt": "1;mob/zombified_piglin/zpighurt1", "1054;event.raid.horn": "0.01;event/raid/raidhorn_01", "54;item.armor.equip_chain": "1;item/armor/equip_chain1", "55;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "56;item.armor.equip_elytra": "1;item/armor/equip_leather1", "57;item.armor.equip_generic": "1;item/armor/equip_generic1", "58;item.armor.equip_gold": "1;item/armor/equip_gold1", "59;item.armor.equip_iron": "1;item/armor/equip_iron1", "60;item.armor.equip_leather": "1;item/armor/equip_leather1", "61;item.armor.equip_netherite": "0.8;item/armor/equip_netherite1", "62;item.armor.equip_turtle": "1;mob/turtle/armor", "71;item.axe.scrape": "1;item/axe/scrape1", "70;item.axe.strip": "0.9;item/axe/strip1", "72;item.axe.wax_off": "1;item/axe/wax_off1", "159;item.bone_meal.use": "1;item/bonemeal/bonemeal1", "160;item.book.page_turn": "2;item/book/open_flip1", "161;item.book.put": "1;item/book/close_put1", "163;item.bottle.empty": "1;item/bottle/empty1", "164;item.bottle.fill": "1;item/bottle/fill1", "165;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "167;item.brush.brushing.generic": "0.4;item/brush/brushing_generic1", "169;item.brush.brushing.gravel": "0.6;item/brush/brushing_gravel1", "171;item.brush.brushing.gravel.complete": "1;item/brush/brushing_gravel_complete1", "168;item.brush.brushing.sand": "0.6;item/brush/brushing_sand1", "170;item.brush.brushing.sand.complete": "1;item/brush/brush_sand_complete1", "177;item.bucket.empty": "1;item/bucket/empty1", "178;item.bucket.empty_axolotl": "1;item/bucket/empty_fish1", "179;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "180;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "181;item.bucket.empty_powder_snow": "1;item/bucket/empty_powder_snow1", "182;item.bucket.empty_tadpole": "0.5;item/bucket/empty_fish1", "183;item.bucket.fill": "1;item/bucket/fill1", "184;item.bucket.fill_axolotl": "1;item/bucket/fill_axolotl1", "185;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "186;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "187;item.bucket.fill_powder_snow": "1;item/bucket/fill_powder_snow1", "188;item.bucket.fill_tadpole": "0.5;item/bucket/fill_fish1", "189;item.bundle.drop_contents": "1;item/bundle/drop_contents1", "190;item.bundle.insert": "1;item/bundle/insert1", "191;item.bundle.remove_one": "1;item/bundle/remove_one1", "286;item.chorus_fruit.teleport": "1;mob/endermen/portal", "320;item.crop.plant": "0.45;item/plant/crop1", "321;item.crossbow.hit": "1;random/bowhit1", "322;item.crossbow.loading_end": "1;item/crossbow/loading_end", "323;item.crossbow.loading_middle": "0.65;item/crossbow/loading_middle1", "324;item.crossbow.loading_start": "0.3;item/crossbow/loading_start", "325;item.crossbow.quick_charge_1": "0.65;item/crossbow/quick_charge/quick1_1", "326;item.crossbow.quick_charge_2": "0.65;item/crossbow/quick_charge/quick2_1", "327;item.crossbow.quick_charge_3": "0.65;item/crossbow/quick_charge/quick3_1", "328;item.crossbow.shoot": "0.8;item/crossbow/shoot1", "395;item.dye.use": "1;item/dye/dye", "405;item.elytra.flying": "0.6;item/elytra/elytra_loop", "445;item.firecharge.use": "1;mob/ghast/fireball4", "460;item.flintandsteel.use": "1;fire/ignite", "539;item.glow_ink_sac.use": "1;item/ink_sac/ink_sac1", "609;item.hoe.till": "1;item/hoe/till1", "626;item.honey_bottle.drink": "1;item/bottle/drink_honey1", "624;item.honeycomb.wax_on": "1;item/honeycomb/wax_on1", "658;item.ink_sac.use": "1;item/ink_sac/ink_sac1", "712;item.lodestone_compass.lock": "1;block/lodestone/lock1", "830;item.nether_wart.plant": "0.9;item/plant/netherwart1", "1133;item.shield.block": "1;item/shield/block1", "1134;item.shield.break": "1;random/break", "1140;item.shovel.flatten": "1;item/shovel/flatten1", "1252;item.spyglass.stop_using": "0.5;item/spyglass/stop", "1251;item.spyglass.use": "0.5;item/spyglass/use", "1279;item.totem.use": "1;item/totem/use_totem", "1280;item.trident.hit": "1;item/trident/pierce1", "1281;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "1282;item.trident.return": "0.8;item/trident/return1", "1283;item.trident.riptide_1": "1;item/trident/riptide1", "1284;item.trident.riptide_2": "1;item/trident/riptide2", "1285;item.trident.riptide_3": "1;item/trident/riptide3", "1286;item.trident.throw": "1;item/trident/throw1", "1287;item.trident.thunder": "1;item/trident/thunder1", "777;music.creative": "1;music.game", "778;music.credits": "1;music/game/end/credits", "795;music.dragon": "1;music/game/end/boss", "796;music.end": "1;music/game/end/end", "797;music.game": "0.4;music/game/a_familiar_room", "798;music.menu": "0.4;music/game/a_familiar_room", "799;music.nether.basalt_deltas": "1;music/game/nether/nether1", "800;music.nether.crimson_forest": "0.5;music/game/nether/crimson_forest/chrysopoeia", "811;music.nether.nether_wastes": "1;music/game/nether/nether1", "814;music.nether.soul_sand_valley": "1;music/game/nether/nether1", "819;music.overworld.badlands": "0.4;music/game/crescent_dunes", "822;music.overworld.bamboo_jungle": "0.4;music/game/bromeliad", "810;music.overworld.cherry_grove": "0.4;music/game/bromeliad", "801;music.overworld.deep_dark": "1;music/game/ancestry", "818;music.overworld.desert": "0.4;music/game/crescent_dunes", "802;music.overworld.dripstone_caves": "1;music/game/an_ordinary_day", "817;music.overworld.flower_forest": "0.4;music/game/bromeliad", "807;music.overworld.forest": "0.4;music/game/bromeliad", "812;music.overworld.frozen_peaks": "1;music/game/hal1", "803;music.overworld.grove": "1;music/game/calm1", "804;music.overworld.jagged_peaks": "0.4;music/game/floating_dream", "820;music.overworld.jungle": "0.4;music/game/bromeliad", "805;music.overworld.lush_caves": "0.4;music/game/left_to_bloom", "809;music.overworld.meadow": "1;music/game/hal1", "808;music.overworld.old_growth_taiga": "1;music/game/calm1", "813;music.overworld.snowy_slopes": "0.4;music/game/an_ordinary_day", "821;music.overworld.sparse_jungle": "0.4;music/game/bromeliad", "815;music.overworld.stony_peaks": "1;music/game/hal1", "806;music.overworld.swamp": "0.4;music/game/swamp/aerie", "823;music.under_water": "0.4;music/game/water/axolotl", "780;music_disc.11": "1;records/11", "781;music_disc.13": "1;records/13", "779;music_disc.5": "1;records/5", "782;music_disc.blocks": "1;records/blocks", "783;music_disc.cat": "1;records/cat", "784;music_disc.chirp": "1;records/chirp", "785;music_disc.far": "1;records/far", "786;music_disc.mall": "1;records/mall", "787;music_disc.mellohi": "1;records/mellohi", "793;music_disc.otherside": "1;records/otherside", "788;music_disc.pigstep": "1;records/pigstep", "794;music_disc.relic": "1;records/relic", "789;music_disc.stal": "1;records/stal", "790;music_disc.strad": "1;records/strad", "791;music_disc.wait": "1;records/wait", "792;music_disc.ward": "1;records/ward", "1198;particle.soul_escape": "0.25;enchant/soulspeed/soulspeed1", "1313;ui.button.click": "1;random/click_stereo", "1316;ui.cartography_table.take_result": "1;ui/cartography_table/drawmap1", "1314;ui.loom.select_pattern": "1;ui/loom/select_pattern1", "1315;ui.loom.take_result": "0.5;ui/loom/take_result1", "1318;ui.stonecutter.select_recipe": "1;random/click", "1317;ui.stonecutter.take_result": "1;ui/stonecutter/cut1", "1319;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "1320;ui.toast.in": "0.4;ui/toast/in", "1321;ui.toast.out": "0.4;ui/toast/out", "1388;weather.rain": "1;ambient/weather/rain1", "1389;weather.rain.above": "1;ambient/weather/rain1" }, "1.19.2": { "8;ambient.basalt_deltas.additions": "0.35;ambient/nether/basalt_deltas/debris1", "9;ambient.basalt_deltas.loop": "0.5;ambient/nether/basalt_deltas/ambience", "10;ambient.basalt_deltas.mood": "1;ambient/nether/nether_wastes/mood1", "7;ambient.cave": "1;ambient/cave/cave1", "11;ambient.crimson_forest.additions": "0.4;ambient/nether/crimson_forest/particles1", "12;ambient.crimson_forest.loop": "0.74;ambient/nether/crimson_forest/ambience", "13;ambient.crimson_forest.mood": "1;ambient/nether/crimson_forest/mood1", "14;ambient.nether_wastes.additions": "0.3;ambient/nether/nether_wastes/addition1", "15;ambient.nether_wastes.loop": "0.77;ambient/nether/nether_wastes/ambience", "16;ambient.nether_wastes.mood": "1;ambient/nether/nether_wastes/mood1", "17;ambient.soul_sand_valley.additions": "0.2;ambient/nether/soulsand_valley/sand1", "18;ambient.soul_sand_valley.loop": "0.85;ambient/nether/soulsand_valley/ambience", "19;ambient.soul_sand_valley.mood": "1;ambient/nether/soulsand_valley/mood1", "23;ambient.underwater.enter": "0.8;ambient/underwater/enter1", "24;ambient.underwater.exit": "0.5;ambient/underwater/exit1", "25;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "26;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "27;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "28;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "20;ambient.warped_forest.additions": "0.3;ambient/nether/crimson_forest/addition1", "21;ambient.warped_forest.loop": "0.71;ambient/nether/warped_forest/ambience", "22;ambient.warped_forest.mood": "1;ambient/nether/warped_forest/creak1", "29;block.amethyst_block.break": "1;block/amethyst/break1", "30;block.amethyst_block.chime": "0.2;block/amethyst/shimmer", "31;block.amethyst_block.fall": "1;block/amethyst/step1", "32;block.amethyst_block.hit": "1;block/amethyst/step1", "33;block.amethyst_block.place": "1;block/amethyst/place1", "34;block.amethyst_block.step": "1;block/amethyst/step1", "35;block.amethyst_cluster.break": "0.8;block/amethyst_cluster/break1", "36;block.amethyst_cluster.fall": "1;block/amethyst/step1", "37;block.amethyst_cluster.hit": "1;block/amethyst/step1", "38;block.amethyst_cluster.place": "0.9;block/amethyst_cluster/place1", "39;block.amethyst_cluster.step": "1;block/amethyst/step1", "40;block.ancient_debris.break": "1;block/ancient_debris/break1", "44;block.ancient_debris.fall": "1;block/basalt/step1", "43;block.ancient_debris.hit": "1;block/basalt/step1", "42;block.ancient_debris.place": "1;block/ancient_debris/break1", "41;block.ancient_debris.step": "1;block/basalt/step1", "45;block.anvil.break": "1;dig/stone1", "46;block.anvil.destroy": "1;random/anvil_break", "47;block.anvil.fall": "1;step/stone1", "48;block.anvil.hit": "1;step/stone1", "49;block.anvil.land": "1;random/anvil_land", "50;block.anvil.place": "1;random/anvil_land", "51;block.anvil.step": "1;step/stone1", "52;block.anvil.use": "1;random/anvil_use", "79;block.azalea.break": "1;block/azalea/break1", "80;block.azalea.fall": "1;block/azalea/step1", "81;block.azalea.hit": "1;block/azalea/step1", "82;block.azalea.place": "1;block/azalea/break1", "83;block.azalea.step": "1;block/azalea/step1", "84;block.azalea_leaves.break": "0.85;block/azalea_leaves/break1", "85;block.azalea_leaves.fall": "1;block/azalea_leaves/step1", "86;block.azalea_leaves.hit": "0.8;block/azalea_leaves/step1", "87;block.azalea_leaves.place": "0.85;block/azalea_leaves/break1", "88;block.azalea_leaves.step": "0.85;block/azalea_leaves/step1", "89;block.bamboo.break": "0.8;block/bamboo/place1", "90;block.bamboo.fall": "1;block/bamboo/step1", "91;block.bamboo.hit": "1;block/bamboo/step1", "92;block.bamboo.place": "0.8;block/bamboo/place1", "93;block.bamboo.step": "1;block/bamboo/step1", "94;block.bamboo_sapling.break": "0.9;block/bamboo/sapling_place1", "95;block.bamboo_sapling.hit": "0.8;block/bamboo/sapling_hit1", "96;block.bamboo_sapling.place": "0.85;block/bamboo/sapling_place1", "97;block.barrel.close": "1;block/barrel/close", "98;block.barrel.open": "1;block/barrel/open1", "99;block.basalt.break": "1;block/basalt/break1", "103;block.basalt.fall": "1;block/basalt/step1", "102;block.basalt.hit": "1;block/basalt/step1", "101;block.basalt.place": "1;block/basalt/break1", "100;block.basalt.step": "1;block/basalt/step1", "109;block.beacon.activate": "1;block/beacon/activate", "110;block.beacon.ambient": "0.9;block/beacon/ambient", "111;block.beacon.deactivate": "1;block/beacon/deactivate", "112;block.beacon.power_select": "1;block/beacon/power1", "119;block.beehive.drip": "0.3;block/beehive/drip1", "120;block.beehive.enter": "1;block/beehive/enter", "121;block.beehive.exit": "1;block/beehive/exit", "122;block.beehive.shear": "0.8;block/beehive/shear", "123;block.beehive.work": "0.6;block/beehive/work1", "125;block.bell.resonate": "1;block/bell/resonate", "124;block.bell.use": "12;block/bell/bell_use01", "126;block.big_dripleaf.break": "1;block/big_dripleaf/break1", "127;block.big_dripleaf.fall": "1;block/big_dripleaf/step1", "128;block.big_dripleaf.hit": "1;block/big_dripleaf/step1", "129;block.big_dripleaf.place": "1;block/big_dripleaf/break1", "130;block.big_dripleaf.step": "1;block/big_dripleaf/step1", "307;block.big_dripleaf.tilt_down": "1;block/big_dripleaf/tilt_down1", "308;block.big_dripleaf.tilt_up": "1;block/big_dripleaf/tilt_up1", "146;block.blastfurnace.fire_crackle": "1;block/blastfurnace/blastfurnace1", "138;block.bone_block.break": "0.9;block/bone_block/break1", "139;block.bone_block.fall": "1;block/bone_block/step1", "140;block.bone_block.hit": "1;block/bone_block/step1", "141;block.bone_block.place": "0.9;block/bone_block/break1", "142;block.bone_block.step": "1;block/bone_block/step1", "150;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "151;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "152;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "153;block.bubble_column.upwards_inside": "0.7;block/bubble_column/upwards_inside", "154;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "155;block.bubble_column.whirlpool_inside": "0.7;block/bubble_column/whirlpool_inside", "171;block.cake.add_candle": "1;block/cake/add_candle1", "172;block.calcite.break": "0.9;block/calcite/break1", "176;block.calcite.fall": "1;block/calcite/step1", "175;block.calcite.hit": "1;block/calcite/step1", "174;block.calcite.place": "0.94;block/calcite/place1", "173;block.calcite.step": "1;block/calcite/step1", "177;block.campfire.crackle": "1;block/campfire/crackle1", "178;block.candle.ambient": "1;block/candle/ambient1", "179;block.candle.break": "1;block/candle/break1", "180;block.candle.extinguish": "1;block/candle/extinguish1", "181;block.candle.fall": "1;block/candle/step1", "182;block.candle.hit": "1;block/candle/step1", "183;block.candle.place": "1;block/candle/break1", "184;block.candle.step": "1;block/candle/step1", "194;block.cave_vines.break": "1;block/cave_vines/break1", "195;block.cave_vines.fall": "1;block/vine/climb1", "196;block.cave_vines.hit": "1;block/vine/climb1", "199;block.cave_vines.pick_berries": "1;block.sweet_berry_bush.pick_berries", "197;block.cave_vines.place": "1;block/cave_vines/break1", "198;block.cave_vines.step": "1;block/vine/climb1", "200;block.chain.break": "0.5;block/chain/break1", "201;block.chain.fall": "1;block/chain/step1", "202;block.chain.hit": "0.8;block/chain/step1", "203;block.chain.place": "0.5;block/chain/break1", "204;block.chain.step": "1;block/chain/step1", "205;block.chest.close": "1;block/chest/close", "206;block.chest.locked": "1;block/wooden_door/close", "207;block.chest.open": "1;block/chest/open", "213;block.chorus_flower.death": "1;block/chorus_flower/death1", "214;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "220;block.comparator.click": "1;random/click", "221;block.composter.empty": "1;block/composter/empty1", "222;block.composter.fill": "0.3;block/composter/fill1", "223;block.composter.fill_success": "1;block/composter/fill_success1", "224;block.composter.ready": "1;block/composter/ready1", "225;block.conduit.activate": "0.9;block/conduit/activate", "226;block.conduit.ambient": "1;block/conduit/ambient", "227;block.conduit.ambient.short": "1;block/conduit/short1", "228;block.conduit.attack.target": "1;block/conduit/attack1", "229;block.conduit.deactivate": "0.7;block/conduit/deactivate", "230;block.copper.break": "1;block/copper/break1", "234;block.copper.fall": "1;block/copper/step1", "233;block.copper.hit": "1;block/copper/step1", "232;block.copper.place": "1;block/copper/break1", "231;block.copper.step": "1;block/copper/step1", "235;block.coral_block.break": "1;dig/coral1", "236;block.coral_block.fall": "1;step/coral1", "237;block.coral_block.hit": "1;step/coral1", "238;block.coral_block.place": "1;dig/coral1", "239;block.coral_block.step": "1;step/coral1", "248;block.crop.break": "0.9;block/bamboo/sapling_place1", "263;block.deepslate.break": "1;block/deepslate/break1", "264;block.deepslate.fall": "1;block/deepslate/step1", "265;block.deepslate.hit": "1;block/deepslate/step1", "266;block.deepslate.place": "1;block/deepslate/place1", "267;block.deepslate.step": "1;block/deepslate/step1", "258;block.deepslate_bricks.break": "0.85;block/deepslate_bricks/place1", "259;block.deepslate_bricks.fall": "1;block/deepslate_bricks/step1", "260;block.deepslate_bricks.hit": "1;block/deepslate_bricks/step1", "261;block.deepslate_bricks.place": "0.85;block/deepslate_bricks/place1", "262;block.deepslate_bricks.step": "1;block/deepslate_bricks/step1", "268;block.deepslate_tiles.break": "0.92;block/deepslate_bricks/place1", "269;block.deepslate_tiles.fall": "1;block/deepslate_bricks/step1", "270;block.deepslate_tiles.hit": "1;block/deepslate_bricks/step1", "271;block.deepslate_tiles.place": "0.85;block/deepslate_bricks/place1", "272;block.deepslate_tiles.step": "1;block/deepslate_bricks/step1", "273;block.dispenser.dispense": "1;random/click", "274;block.dispenser.fail": "1;random/click", "275;block.dispenser.launch": "1;random/bow", "292;block.dripstone_block.break": "1;block/dripstone/break1", "296;block.dripstone_block.fall": "1;block/dripstone/step1", "295;block.dripstone_block.hit": "1;block/dripstone/step1", "294;block.dripstone_block.place": "1;block/dripstone/break1", "293;block.dripstone_block.step": "1;block/dripstone/step1", "329;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "352;block.end_gateway.spawn": "1;random/explode1", "354;block.end_portal.spawn": "1;block/end_portal/endportal", "353;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "330;block.ender_chest.close": "1;block/enderchest/close", "331;block.ender_chest.open": "1;block/enderchest/open", "366;block.fence_gate.close": "1;block/fence_gate/close1", "367;block.fence_gate.open": "1;block/fence_gate/open1", "377;block.fire.ambient": "1;fire/fire", "378;block.fire.extinguish": "1;random/fizz", "384;block.flowering_azalea.break": "1;block/azalea/break1", "385;block.flowering_azalea.fall": "1;block/azalea/step1", "386;block.flowering_azalea.hit": "1;block/azalea/step1", "387;block.flowering_azalea.place": "1;block/azalea/break1", "388;block.flowering_azalea.step": "1;block/azalea/step1", "400;block.froglight.break": "1;block/froglight/break1", "401;block.froglight.fall": "1;block/froglight/step1", "402;block.froglight.hit": "0.83;block/froglight/step1", "403;block.froglight.place": "1;block/froglight/break1", "404;block.froglight.step": "1;block/froglight/step1", "406;block.frogspawn.break": "0.1;block/frogspawn/break1", "407;block.frogspawn.fall": "0.3;block/frogspawn/step1", "408;block.frogspawn.hatch": "0.6;block/frogspawn/hatch1", "409;block.frogspawn.hit": "0.3;block/frogspawn/step1", "410;block.frogspawn.place": "0.2;block/frogspawn/break1", "405;block.frogspawn.step": "0.3;block/frogspawn/step1", "736;block.fungus.break": "1;block/fungus/break1", "738;block.fungus.place": "1;block/fungus/break1", "737;block.fungus.step": "0.9;item/plant/netherwart1", "424;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "442;block.gilded_blackstone.break": "1;block/nether_ore/break1", "443;block.gilded_blackstone.fall": "1;block/nether_ore/step1", "444;block.gilded_blackstone.hit": "1;block/nether_ore/step1", "445;block.gilded_blackstone.place": "1;block/nether_ore/break1", "446;block.gilded_blackstone.step": "1;block/nether_ore/step1", "447;block.glass.break": "1;random/glass1", "448;block.glass.fall": "1;step/stone1", "449;block.glass.hit": "1;step/stone1", "450;block.glass.place": "1;dig/stone1", "451;block.glass.step": "1;step/stone1", "482;block.grass.break": "1;dig/grass1", "483;block.grass.fall": "1;step/grass1", "484;block.grass.hit": "1;step/grass1", "485;block.grass.place": "1;dig/grass1", "486;block.grass.step": "1;step/grass1", "487;block.gravel.break": "1;dig/gravel1", "488;block.gravel.fall": "1;step/gravel1", "489;block.gravel.hit": "1;step/gravel1", "490;block.gravel.place": "1;dig/gravel1", "491;block.gravel.step": "1;step/gravel1", "492;block.grindstone.use": "0.5;block/grindstone/grindstone1", "493;block.growing_plant.crop": "1;mob/sheep/shear", "502;block.hanging_roots.break": "1;block/hanging_roots/break1", "503;block.hanging_roots.fall": "1;block/hanging_roots/step1", "504;block.hanging_roots.hit": "1;block/hanging_roots/step1", "505;block.hanging_roots.place": "1;block/hanging_roots/break1", "506;block.hanging_roots.step": "1;block/hanging_roots/step1", "516;block.honey_block.break": "1;block/honeyblock/break1", "517;block.honey_block.fall": "1;block/honeyblock/step1", "518;block.honey_block.hit": "1;block/honeyblock/step1", "519;block.honey_block.place": "1;block/honeyblock/break1", "520;block.honey_block.slide": "0.8;block/honeyblock/slide1", "521;block.honey_block.step": "1;block/honeyblock/step1", "557;block.iron_door.close": "1;block/iron_door/close1", "558;block.iron_door.open": "1;block/iron_door/open1", "565;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "566;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "574;block.ladder.break": "1;dig/wood1", "575;block.ladder.fall": "1;step/ladder1", "576;block.ladder.hit": "1;step/ladder1", "577;block.ladder.place": "1;dig/wood1", "578;block.ladder.step": "1;step/ladder1", "579;block.lantern.break": "1;block/lantern/break1", "580;block.lantern.fall": "1;block/lantern/break1", "581;block.lantern.hit": "1;block/lantern/place1", "582;block.lantern.place": "1;block/lantern/place1", "583;block.lantern.step": "1;block/lantern/break1", "584;block.large_amethyst_bud.break": "0.7;block/amethyst_cluster/break1", "585;block.large_amethyst_bud.place": "0.75;block/amethyst_cluster/place1", "586;block.lava.ambient": "1;liquid/lava", "587;block.lava.extinguish": "1;random/fizz", "588;block.lava.pop": "1;liquid/lavapop", "591;block.lever.click": "1;random/click", "1203;block.lily_pad.place": "1;block/waterlily/place1", "605;block.lodestone.break": "1;dig/stone1", "609;block.lodestone.fall": "1;step/stone1", "608;block.lodestone.hit": "1;step/stone1", "607;block.lodestone.place": "1;block/lodestone/place1", "606;block.lodestone.step": "1;step/stone1", "617;block.mangrove_roots.break": "0.25;block/mangrove_roots/break1", "618;block.mangrove_roots.fall": "0.25;block/mangrove_roots/step1", "619;block.mangrove_roots.hit": "0.25;block/mangrove_roots/step1", "620;block.mangrove_roots.place": "0.25;block/mangrove_roots/break1", "621;block.mangrove_roots.step": "0.25;block/mangrove_roots/step1", "622;block.medium_amethyst_bud.break": "0.55;block/amethyst_cluster/break1", "623;block.medium_amethyst_bud.place": "0.5;block/amethyst_cluster/place1", "624;block.metal.break": "1;dig/stone1", "625;block.metal.fall": "1;step/stone1", "626;block.metal.hit": "1;step/stone1", "627;block.metal.place": "1;dig/stone1", "630;block.metal.step": "1;step/stone1", "628;block.metal_pressure_plate.click_off": "1;random/click", "629;block.metal_pressure_plate.click_on": "1;random/click", "644;block.moss.break": "0.95;block/moss/break1", "645;block.moss.fall": "1;block/moss/step1", "646;block.moss.hit": "1;block/moss/step1", "647;block.moss.place": "0.93;block/moss/break1", "648;block.moss.step": "1;block/moss/step1", "639;block.moss_carpet.break": "0.9;block/moss/break1", "640;block.moss_carpet.fall": "0.9;block/moss/step1", "641;block.moss_carpet.hit": "0.9;block/moss/step1", "642;block.moss_carpet.place": "0.9;block/moss/break1", "643;block.moss_carpet.step": "0.9;block/moss/step1", "649;block.mud.break": "0.5;block/mud/break1", "650;block.mud.fall": "0.5;block/mud/step1", "651;block.mud.hit": "0.5;block/mud/step1", "652;block.mud.place": "0.5;block/mud/break1", "653;block.mud.step": "0.5;block/mud/step1", "654;block.mud_bricks.break": "0.5;block/mud_bricks/break1", "655;block.mud_bricks.fall": "0.5;block/mud_bricks/step1", "656;block.mud_bricks.hit": "0.5;block/mud_bricks/step1", "657;block.mud_bricks.place": "0.5;block/mud_bricks/break1", "658;block.mud_bricks.step": "0.5;block/mud_bricks/step1", "659;block.muddy_mangrove_roots.break": "0.25;block/muddy_mangrove_roots/break1", "660;block.muddy_mangrove_roots.fall": "0.25;block/muddy_mangrove_roots/step1", "661;block.muddy_mangrove_roots.hit": "0.25;block/muddy_mangrove_roots/step1", "662;block.muddy_mangrove_roots.place": "0.25;block/muddy_mangrove_roots/break1", "663;block.muddy_mangrove_roots.step": "0.25;block/muddy_mangrove_roots/step1", "709;block.nether_bricks.break": "0.8;block/nether_bricks/break1", "713;block.nether_bricks.fall": "1;block/nether_bricks/step1", "712;block.nether_bricks.hit": "1;block/nether_bricks/step1", "711;block.nether_bricks.place": "0.8;block/nether_bricks/break1", "710;block.nether_bricks.step": "1;block/nether_bricks/step1", "926;block.nether_gold_ore.break": "1;block/nether_ore/break1", "927;block.nether_gold_ore.fall": "1;block/nether_ore/step1", "928;block.nether_gold_ore.hit": "1;block/nether_ore/step1", "929;block.nether_gold_ore.place": "1;block/nether_ore/break1", "930;block.nether_gold_ore.step": "1;block/nether_ore/step1", "931;block.nether_ore.break": "1;block/nether_ore/break1", "932;block.nether_ore.fall": "1;block/nether_ore/step1", "933;block.nether_ore.hit": "1;block/nether_ore/step1", "934;block.nether_ore.place": "1;block/nether_ore/break1", "935;block.nether_ore.step": "1;block/nether_ore/step1", "731;block.nether_sprouts.break": "0.7;block/nether_sprouts/break1", "735;block.nether_sprouts.fall": "1;block/nether_sprouts/step1", "734;block.nether_sprouts.hit": "1;block/nether_sprouts/step1", "733;block.nether_sprouts.place": "0.7;block/nether_sprouts/break1", "732;block.nether_sprouts.step": "0.5;block/nether_sprouts/step1", "714;block.nether_wart.break": "0.9;item/plant/netherwart1", "751;block.netherite_block.break": "0.95;block/netherite/break1", "755;block.netherite_block.fall": "1;block/netherite/step1", "754;block.netherite_block.hit": "1;block/netherite/step1", "753;block.netherite_block.place": "0.95;block/netherite/break1", "752;block.netherite_block.step": "1;block/netherite/step1", "756;block.netherrack.break": "1;block/netherrack/break1", "760;block.netherrack.fall": "1;block/netherrack/step1", "759;block.netherrack.hit": "0.55;block/netherrack/step1", "758;block.netherrack.place": "1;block/netherrack/break1", "757;block.netherrack.step": "1;block/netherrack/step1", "776;block.note_block.banjo": "1;note/banjo", "761;block.note_block.basedrum": "1;note/bd", "762;block.note_block.bass": "1;note/bassattack", "763;block.note_block.bell": "1;note/bell", "775;block.note_block.bit": "1;note/bit", "764;block.note_block.chime": "1;note/icechime", "773;block.note_block.cow_bell": "1;note/cow_bell", "774;block.note_block.didgeridoo": "1;note/didgeridoo", "765;block.note_block.flute": "1;note/flute", "766;block.note_block.guitar": "1;note/guitar", "767;block.note_block.harp": "1;note/harp2", "768;block.note_block.hat": "1;note/hat", "772;block.note_block.iron_xylophone": "1;note/iron_xylophone", "769;block.note_block.pling": "1;note/pling", "770;block.note_block.snare": "1;note/snare", "771;block.note_block.xylophone": "1;note/xylobone", "726;block.nylium.break": "0.85;block/nylium/break1", "730;block.nylium.fall": "1;block/nylium/step1", "729;block.nylium.hit": "1;block/nylium/step1", "728;block.nylium.place": "0.85;block/nylium/break1", "727;block.nylium.step": "1;block/nylium/step1", "716;block.packed_mud.break": "0.3;block/packed_mud/break1", "717;block.packed_mud.fall": "0.3;block/packed_mud/step1", "718;block.packed_mud.hit": "0.3;block/packed_mud/step1", "719;block.packed_mud.place": "0.3;block/packed_mud/break1", "720;block.packed_mud.step": "0.3;block/packed_mud/step1", "863;block.piston.contract": "1;tile/piston/in", "864;block.piston.extend": "1;tile/piston/out", "297;block.pointed_dripstone.break": "1;block/dripstone/break1", "303;block.pointed_dripstone.drip_lava": "1;block/pointed_dripstone/drip_lava1", "305;block.pointed_dripstone.drip_lava_into_cauldron": "1;block/pointed_dripstone/drip_lava_cauldron1", "304;block.pointed_dripstone.drip_water": "1;block/pointed_dripstone/drip_water1", "306;block.pointed_dripstone.drip_water_into_cauldron": "1;block/pointed_dripstone/drip_water_cauldron1", "301;block.pointed_dripstone.fall": "1;block/dripstone/step1", "300;block.pointed_dripstone.hit": "1;block/dripstone/step1", "302;block.pointed_dripstone.land": "1;block/pointed_dripstone/land1", "299;block.pointed_dripstone.place": "1;block/dripstone/break1", "298;block.pointed_dripstone.step": "1;block/dripstone/step1", "891;block.polished_deepslate.break": "1;block/deepslate/break1", "892;block.polished_deepslate.fall": "1;block/deepslate/step1", "893;block.polished_deepslate.hit": "1;block/deepslate/step1", "894;block.polished_deepslate.place": "1;block/deepslate/place1", "895;block.polished_deepslate.step": "1;block/deepslate/step1", "896;block.portal.ambient": "1;portal/portal", "897;block.portal.travel": "1;portal/travel", "898;block.portal.trigger": "1;portal/trigger", "899;block.powder_snow.break": "1;block/powder_snow/break1", "900;block.powder_snow.fall": "1;block/powder_snow/step1", "901;block.powder_snow.hit": "0.83;block/powder_snow/step1", "902;block.powder_snow.place": "1;block/powder_snow/break1", "903;block.powder_snow.step": "1;block/powder_snow/step1", "911;block.pumpkin.carve": "1;block/pumpkin/carve1", "936;block.redstone_torch.burnout": "1;random/fizz", "937;block.respawn_anchor.ambient": "1;block/respawn_anchor/ambient1", "938;block.respawn_anchor.charge": "1;block/respawn_anchor/charge1", "939;block.respawn_anchor.deplete": "1;block/respawn_anchor/deplete1", "940;block.respawn_anchor.set_spawn": "1;block/respawn_anchor/set_spawn1", "941;block.rooted_dirt.break": "1;block/rooted_dirt/break1", "942;block.rooted_dirt.fall": "1;block/rooted_dirt/step1", "943;block.rooted_dirt.hit": "0.8;block/rooted_dirt/step1", "944;block.rooted_dirt.place": "1;block/rooted_dirt/break1", "945;block.rooted_dirt.step": "1;block/rooted_dirt/step1", "419;block.roots.break": "1;block/roots/break1", "421;block.roots.place": "1;block/roots/break1", "950;block.sand.break": "1;dig/sand1", "951;block.sand.fall": "1;step/sand1", "952;block.sand.hit": "1;step/sand1", "953;block.sand.place": "1;dig/sand1", "954;block.sand.step": "1;step/sand1", "955;block.scaffolding.break": "0.8;block/scaffold/place1", "956;block.scaffolding.fall": "1;step/scaffold1", "957;block.scaffolding.hit": "1;step/scaffold1", "958;block.scaffolding.place": "0.9;block/scaffold/place1", "959;block.scaffolding.step": "1;step/scaffold1", "962;block.sculk.break": "1;block/sculk/break1", "961;block.sculk.charge": "1;block/sculk/charge1", "963;block.sculk.fall": "1;block/sculk/step1", "964;block.sculk.hit": "1;block/sculk/step1", "965;block.sculk.place": "1;block/sculk/place1", "960;block.sculk.spread": "1;block/sculk/spread1", "966;block.sculk.step": "1;block/sculk/step1", "967;block.sculk_catalyst.bloom": "0.25;enchant/soulspeed/soulspeed1", "968;block.sculk_catalyst.break": "1;block/sculk_catalyst/break1", "969;block.sculk_catalyst.fall": "1;block/sculk_catalyst/step1", "970;block.sculk_catalyst.hit": "1;block/sculk_catalyst/step1", "971;block.sculk_catalyst.place": "1;block/sculk_catalyst/place1", "972;block.sculk_catalyst.step": "1;block/sculk_catalyst/step1", "975;block.sculk_sensor.break": "0.9;block/sculk_sensor/break1", "973;block.sculk_sensor.clicking": "0.73;block/sculk_sensor/sculk_clicking1", "974;block.sculk_sensor.clicking_stop": "0.62;block/sculk_sensor/sculk_clicking_stop1", "976;block.sculk_sensor.fall": "1;block/sculk/step1", "977;block.sculk_sensor.hit": "1;block/sculk/step1", "978;block.sculk_sensor.place": "0.8;block/sculk_sensor/place1", "979;block.sculk_sensor.step": "1;block/sculk/step1", "980;block.sculk_shrieker.break": "0.9;block/sculk_shrieker/break1", "981;block.sculk_shrieker.fall": "1;block/sculk/step1", "982;block.sculk_shrieker.hit": "1;block/sculk/step1", "983;block.sculk_shrieker.place": "0.9;block/sculk_shrieker/place1", "984;block.sculk_shrieker.shriek": "0.85;block/sculk_shrieker/shriek1", "985;block.sculk_shrieker.step": "1;block/sculk/step1", "986;block.sculk_vein.break": "0.8;block/sculk_vein/break1", "987;block.sculk_vein.fall": "1;block/sculk/step1", "988;block.sculk_vein.hit": "1;block/sculk/step1", "989;block.sculk_vein.place": "0.8;block/sculk_vein/break1", "990;block.sculk_vein.step": "1;block/sculk/step1", "998;block.shroomlight.break": "1;block/shroomlight/break1", "1002;block.shroomlight.fall": "1;block/shroomlight/step1", "1001;block.shroomlight.hit": "1;block/shroomlight/step1", "1000;block.shroomlight.place": "1;block/shroomlight/break1", "999;block.shroomlight.step": "1;block/shroomlight/step1", "1005;block.shulker_box.close": "1;block/shulker_box/close", "1006;block.shulker_box.open": "1;block/shulker_box/open", "1039;block.slime_block.break": "1;mob/slime/big1", "1040;block.slime_block.fall": "1;mob/slime/small1", "1041;block.slime_block.hit": "1;mob/slime/small1", "1042;block.slime_block.place": "1;mob/slime/big1", "1043;block.slime_block.step": "1;mob/slime/small1", "1044;block.small_amethyst_bud.break": "0.4;block/amethyst_cluster/break1", "1045;block.small_amethyst_bud.place": "0.4;block/amethyst_cluster/place1", "1046;block.small_dripleaf.break": "0.9;block/big_dripleaf/break1", "1047;block.small_dripleaf.fall": "0.9;block/big_dripleaf/step1", "1048;block.small_dripleaf.hit": "0.9;block/big_dripleaf/step1", "1049;block.small_dripleaf.place": "0.9;block/big_dripleaf/break1", "1050;block.small_dripleaf.step": "0.9;block/big_dripleaf/step1", "1080;block.smithing_table.use": "1;block/smithing_table/smithing_table1", "1081;block.smoker.smoke": "1;block/smoker/smoker1", "1083;block.snow.break": "1;dig/snow1", "1084;block.snow.fall": "1;step/snow1", "1090;block.snow.hit": "1;step/snow1", "1091;block.snow.place": "1;dig/snow1", "1092;block.snow.step": "1;step/snow1", "1051;block.soul_sand.break": "1;block/soul_sand/break1", "1055;block.soul_sand.fall": "1;block/soul_sand/step1", "1054;block.soul_sand.hit": "0.55;block/soul_sand/step1", "1053;block.soul_sand.place": "1;block/soul_sand/break1", "1052;block.soul_sand.step": "1;block/soul_sand/step1", "1056;block.soul_soil.break": "0.8;block/soul_soil/break1", "1060;block.soul_soil.fall": "1;block/soul_soil/step1", "1059;block.soul_soil.hit": "0.66;block/soul_soil/step1", "1058;block.soul_soil.place": "0.8;block/soul_soil/break1", "1057;block.soul_soil.step": "1;block/soul_soil/step1", "1062;block.spore_blossom.break": "1;block/spore_blossom/break1", "1063;block.spore_blossom.fall": "1;block/spore_blossom/step1", "1064;block.spore_blossom.hit": "1;block/spore_blossom/step1", "1065;block.spore_blossom.place": "1;block/spore_blossom/break1", "1066;block.spore_blossom.step": "1;block/spore_blossom/step1", "721;block.stem.break": "1;block/stem/break1", "725;block.stem.fall": "1;block/stem/step1", "724;block.stem.hit": "0.8;block/stem/step1", "723;block.stem.place": "0.8;block/stem/break1", "722;block.stem.step": "1;block/stem/step1", "1105;block.stone.break": "1;dig/stone1", "1108;block.stone.fall": "1;step/stone1", "1109;block.stone.hit": "1;step/stone1", "1110;block.stone.place": "1;dig/stone1", "1113;block.stone.step": "1;step/stone1", "1106;block.stone_button.click_off": "1;random/click", "1107;block.stone_button.click_on": "1;random/click", "1111;block.stone_pressure_plate.click_off": "1;random/click", "1112;block.stone_pressure_plate.click_on": "1;random/click", "1118;block.sweet_berry_bush.break": "0.8;block/sweet_berry_bush/break1", "1120;block.sweet_berry_bush.pick_berries": "1;item/sweet_berries/pick_from_bush1", "1119;block.sweet_berry_bush.place": "0.8;block/sweet_berry_bush/place1", "1136;block.tripwire.attach": "1;random/click", "1137;block.tripwire.click_off": "1;random/click", "1138;block.tripwire.click_on": "1;random/click", "1139;block.tripwire.detach": "1;random/bowhit1", "1144;block.tuff.break": "1;block/tuff/break1", "1148;block.tuff.fall": "1;block/tuff/step1", "1147;block.tuff.hit": "1;block/tuff/step1", "1146;block.tuff.place": "1;block/tuff/break1", "1145;block.tuff.step": "1;block/tuff/step1", "1198;block.vine.break": "0.9;block/vine/break1", "1199;block.vine.fall": "1;block/vine/climb1", "1200;block.vine.hit": "1;step/grass1", "1201;block.vine.place": "0.9;block/vine/break1", "1202;block.vine.step": "1;block/vine/climb1", "746;block.wart_block.break": "0.8;block/netherwart/break1", "750;block.wart_block.fall": "1;block/netherwart/step1", "749;block.wart_block.hit": "0.7;block/netherwart/step1", "748;block.wart_block.place": "0.8;block/netherwart/break1", "747;block.wart_block.step": "1;block/netherwart/step1", "1234;block.water.ambient": "1;liquid/water", "741;block.weeping_vines.break": "1;block/roots/break1", "745;block.weeping_vines.fall": "1;block/roots/break1", "744;block.weeping_vines.hit": "1;block/roots/break1", "743;block.weeping_vines.place": "1;block/roots/break1", "742;block.weeping_vines.step": "1;block/roots/step1", "1237;block.wet_grass.break": "0.8;dig/wet_grass1", "1238;block.wet_grass.fall": "1;step/wet_grass1", "1239;block.wet_grass.hit": "1;step/wet_grass1", "1240;block.wet_grass.place": "0.8;dig/wet_grass1", "1241;block.wet_grass.step": "1;step/wet_grass1", "1271;block.wood.break": "1;dig/wood1", "1274;block.wood.fall": "1;step/wood1", "1275;block.wood.hit": "1;step/wood1", "1276;block.wood.place": "1;dig/wood1", "1279;block.wood.step": "1;step/wood1", "1272;block.wooden_button.click_off": "1;random/wood_click", "1273;block.wooden_button.click_on": "1;random/wood_click", "1267;block.wooden_door.close": "1;block/wooden_door/close2", "1268;block.wooden_door.open": "1;block/wooden_door/open3", "1277;block.wooden_pressure_plate.click_off": "1;random/click", "1278;block.wooden_pressure_plate.click_on": "1;random/click", "1269;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "1270;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "1280;block.wool.break": "1;dig/cloth1", "1281;block.wool.fall": "1;step/cloth1", "1282;block.wool.hit": "1;step/cloth1", "1283;block.wool.place": "1;dig/cloth1", "1284;block.wool.step": "1;step/cloth1", "1125;enchant.thorns.hit": "1;enchant/thorns/hit1", "0;entity.allay.ambient_with_item": "0.3;mob/allay/idle_with_item1", "1;entity.allay.ambient_without_item": "0.25;mob/allay/idle_without_item1", "2;entity.allay.death": "0.6;mob/allay/death1", "3;entity.allay.hurt": "0.8;mob/allay/hurt1", "4;entity.allay.item_given": "0.1;mob/allay/item_given1", "5;entity.allay.item_taken": "0.1;mob/allay/item_taken1", "6;entity.allay.item_thrown": "0.25;mob/allay/item_thrown1", "62;entity.armor_stand.break": "1;entity/armorstand/break1", "63;entity.armor_stand.fall": "1;dig/wood1", "64;entity.armor_stand.hit": "1;entity/armorstand/hit1", "65;entity.armor_stand.place": "1;dig/stone1", "66;entity.arrow.hit": "1;random/bowhit1", "67;entity.arrow.hit_player": "1;random/successful_hit", "68;entity.arrow.shoot": "1;random/bow", "72;entity.axolotl.attack": "0.5;mob/axolotl/attack1", "73;entity.axolotl.death": "1;mob/axolotl/death1", "74;entity.axolotl.hurt": "1;mob/axolotl/hurt1", "75;entity.axolotl.idle_air": "1;mob/axolotl/idle_air1", "76;entity.axolotl.idle_water": "1;mob/axolotl/idle1", "77;entity.axolotl.splash": "0.9;mob/dolphin/splash1", "78;entity.axolotl.swim": "1;entity/fish/swim5", "104;entity.bat.ambient": "1;mob/bat/idle1", "105;entity.bat.death": "1;mob/bat/death", "106;entity.bat.hurt": "1;mob/bat/hurt1", "107;entity.bat.loop": "1;mob/bat/loop", "108;entity.bat.takeoff": "1;mob/bat/takeoff", "113;entity.bee.death": "1;mob/bee/death1", "114;entity.bee.hurt": "1;mob/bee/hurt1", "116;entity.bee.loop": "0.6;mob/bee/loop1", "115;entity.bee.loop_aggressive": "0.8;mob/bee/aggressive1", "118;entity.bee.pollinate": "0.8;mob/bee/pollinate1", "117;entity.bee.sting": "1;mob/bee/sting", "131;entity.blaze.ambient": "1;mob/blaze/breathe1", "132;entity.blaze.burn": "1;fire/fire", "133;entity.blaze.death": "1;mob/blaze/death", "134;entity.blaze.hurt": "1;mob/blaze/hit1", "135;entity.blaze.shoot": "1;mob/ghast/fireball4", "136;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "137;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "185;entity.cat.ambient": "0.6;mob/cat/meow1", "190;entity.cat.beg_for_food": "0.7;mob/cat/beg1", "187;entity.cat.death": "0.75;mob/cat/hitt1", "188;entity.cat.eat": "1;mob/cat/eat1", "189;entity.cat.hiss": "0.4;mob/cat/hiss1", "191;entity.cat.hurt": "0.65;mob/cat/hitt1", "192;entity.cat.purr": "0.7;mob/cat/purr1", "193;entity.cat.purreow": "0.5;mob/cat/purreow1", "186;entity.cat.stray_ambient": "0.35;mob/cat/stray/idle1", "208;entity.chicken.ambient": "1;mob/chicken/say1", "209;entity.chicken.death": "1;mob/chicken/hurt1", "210;entity.chicken.egg": "1;mob/chicken/plop", "211;entity.chicken.hurt": "1;mob/chicken/hurt1", "212;entity.chicken.step": "1;mob/chicken/step1", "217;entity.cod.death": "1;entity/fish/hurt1", "218;entity.cod.flop": "0.3;entity/fish/flop1", "219;entity.cod.hurt": "1;entity/fish/hurt1", "240;entity.cow.ambient": "1;mob/cow/say1", "241;entity.cow.death": "1;mob/cow/hurt1", "242;entity.cow.hurt": "1;mob/cow/hurt1", "243;entity.cow.milk": "1;entity/cow/milk1", "244;entity.cow.step": "1;mob/cow/step1", "245;entity.creeper.death": "1;mob/creeper/death", "246;entity.creeper.hurt": "1;mob/creeper/say1", "247;entity.creeper.primed": "1;random/fuse", "276;entity.dolphin.ambient": "1;mob/dolphin/blowhole1", "277;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "278;entity.dolphin.attack": "1;mob/dolphin/attack1", "279;entity.dolphin.death": "1;mob/dolphin/death1", "280;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "281;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "282;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "283;entity.dolphin.play": "1;mob/dolphin/play1", "284;entity.dolphin.splash": "1;mob/dolphin/splash1", "285;entity.dolphin.swim": "1;entity/fish/swim5", "286;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "287;entity.donkey.angry": "1;mob/horse/donkey/angry1", "288;entity.donkey.chest": "1;mob/chicken/plop", "289;entity.donkey.death": "1;mob/horse/donkey/death", "290;entity.donkey.eat": "1;entity/horse/eat1", "291;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "334;entity.dragon_fireball.explode": "1;random/explode1", "309;entity.drowned.ambient": "0.9;mob/drowned/idle1", "310;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "311;entity.drowned.death": "0.9;mob/drowned/death1", "312;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "313;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "314;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "315;entity.drowned.shoot": "1;item/trident/throw1", "316;entity.drowned.step": "1;mob/drowned/step1", "317;entity.drowned.swim": "1;liquid/swim1", "319;entity.egg.throw": "1;random/bow", "320;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "321;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "322;entity.elder_guardian.curse": "1;mob/guardian/curse", "323;entity.elder_guardian.death": "1;mob/guardian/elder_death", "324;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "325;entity.elder_guardian.flop": "1;mob/guardian/flop1", "326;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "327;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "332;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "333;entity.ender_dragon.death": "1;mob/enderdragon/end", "335;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "336;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "337;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "338;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "339;entity.ender_eye.death": "1.3;entity/endereye/dead1", "340;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "351;entity.ender_pearl.throw": "1;random/bow", "341;entity.enderman.ambient": "1;mob/endermen/idle1", "342;entity.enderman.death": "1;mob/endermen/death", "343;entity.enderman.hurt": "1;mob/endermen/hit1", "344;entity.enderman.scream": "1;mob/endermen/scream1", "345;entity.enderman.stare": "1;mob/endermen/stare", "346;entity.enderman.teleport": "1;mob/endermen/portal", "347;entity.endermite.ambient": "1;mob/silverfish/say1", "348;entity.endermite.death": "1;mob/silverfish/kill", "349;entity.endermite.hurt": "1;mob/silverfish/hit1", "350;entity.endermite.step": "1;mob/silverfish/step1", "355;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "356;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "357;entity.evoker.celebrate": "1;mob/evocation_illager/celebrate", "358;entity.evoker.death": "1;mob/evocation_illager/death1", "360;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "361;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "362;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "363;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "359;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "364;entity.experience_bottle.throw": "1;random/bow", "365;entity.experience_orb.pickup": "1;random/orb", "369;entity.firework_rocket.blast": "1;fireworks/blast1", "370;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "371;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "372;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "373;entity.firework_rocket.launch": "1;fireworks/launch1", "374;entity.firework_rocket.shoot": "1;random/bow", "375;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "376;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "379;entity.fish.swim": "1;entity/fish/swim1", "380;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "381;entity.fishing_bobber.splash": "1;random/splash", "382;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "389;entity.fox.aggro": "0.65;mob/fox/aggro1", "390;entity.fox.ambient": "0.8;mob/fox/idle1", "391;entity.fox.bite": "0.6;mob/fox/bite1", "392;entity.fox.death": "0.9;mob/fox/death1", "393;entity.fox.eat": "0.65;mob/fox/eat1", "394;entity.fox.hurt": "0.75;mob/fox/hurt1", "395;entity.fox.screech": "0.45;mob/fox/screech1", "396;entity.fox.sleep": "0.8;mob/fox/sleep1", "397;entity.fox.sniff": "0.6;mob/fox/sniff1", "398;entity.fox.spit": "0.7;mob/fox/spit1", "399;entity.fox.teleport": "1;mob/endermen/portal", "411;entity.frog.ambient": "0.8;mob/frog/idle1", "412;entity.frog.death": "1;mob/frog/death1", "413;entity.frog.eat": "0.6;mob/frog/eat1", "414;entity.frog.hurt": "1;mob/frog/hurt1", "415;entity.frog.lay_spawn": "0.25;mob/frog/lay_spawn1", "416;entity.frog.long_jump": "0.12;mob/frog/long_jump1", "417;entity.frog.step": "1;mob/frog/step1", "418;entity.frog.tongue": "0.5;mob/frog/tongue1", "425;entity.generic.big_fall": "1;damage/fallbig", "426;entity.generic.burn": "1;random/fizz", "427;entity.generic.death": "1;damage/hit1", "428;entity.generic.drink": "1;random/drink", "429;entity.generic.eat": "1;random/eat1", "430;entity.generic.explode": "1;random/explode1", "431;entity.generic.extinguish_fire": "1;random/fizz", "432;entity.generic.hurt": "1;damage/hit1", "433;entity.generic.small_fall": "1;damage/fallsmall", "434;entity.generic.splash": "1;liquid/splash", "435;entity.generic.swim": "1;liquid/swim1", "436;entity.ghast.ambient": "1;mob/ghast/moan1", "437;entity.ghast.death": "1;mob/ghast/death", "438;entity.ghast.hurt": "1;mob/ghast/scream1", "439;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "440;entity.ghast.shoot": "1;mob/ghast/fireball4", "441;entity.ghast.warn": "1;mob/ghast/charge", "453;entity.glow_item_frame.add_item": "1;entity/itemframe/add_item1", "454;entity.glow_item_frame.break": "1;entity/itemframe/break1", "455;entity.glow_item_frame.place": "1;entity/itemframe/place1", "456;entity.glow_item_frame.remove_item": "1;entity/itemframe/remove_item1", "457;entity.glow_item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "458;entity.glow_squid.ambient": "1;entity/glow_squid/ambient1", "459;entity.glow_squid.death": "1;entity/glow_squid/death1", "460;entity.glow_squid.hurt": "1;entity/glow_squid/hurt1", "461;entity.glow_squid.squirt": "1;entity/glow_squid/squirt1", "462;entity.goat.ambient": "0.82;mob/goat/idle1", "463;entity.goat.death": "0.65;mob/goat/death1", "464;entity.goat.eat": "1;mob/goat/eat1", "470;entity.goat.horn_break": "0.9;mob/goat/horn_break1", "465;entity.goat.hurt": "0.65;mob/goat/hurt1", "466;entity.goat.long_jump": "0.8;mob/goat/jump1", "467;entity.goat.milk": "1;mob/mooshroom/milk1", "468;entity.goat.prepare_ram": "0.8;mob/goat/pre_ram1", "469;entity.goat.ram_impact": "0.8;mob/goat/impact1", "472;entity.goat.screaming.ambient": "0.82;mob/goat/idle1", "473;entity.goat.screaming.death": "0.65;mob/goat/screaming_death1", "474;entity.goat.screaming.eat": "1;mob/goat/eat1", "475;entity.goat.screaming.hurt": "0.65;mob/goat/screaming_hurt1", "476;entity.goat.screaming.long_jump": "0.8;mob/goat/jump1", "477;entity.goat.screaming.milk": "1;mob/goat/screaming_milk1", "478;entity.goat.screaming.prepare_ram": "0.8;mob/goat/screaming_pre_ram1", "479;entity.goat.screaming.ram_impact": "0.8;mob/goat/impact1", "481;entity.goat.step": "1;mob/goat/step1", "494;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "495;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "496;entity.guardian.attack": "1;mob/guardian/attack_loop", "497;entity.guardian.death": "1;mob/guardian/guardian_death", "498;entity.guardian.death_land": "1;mob/guardian/land_death", "499;entity.guardian.flop": "1;mob/guardian/flop1", "500;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "501;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "508;entity.hoglin.ambient": "0.65;mob/hoglin/idle1", "509;entity.hoglin.angry": "1;mob/hoglin/angry1", "510;entity.hoglin.attack": "0.8;mob/hoglin/attack1", "511;entity.hoglin.converted_to_zombified": "0.8;mob/hoglin/converted1", "512;entity.hoglin.death": "0.9;mob/hoglin/death1", "513;entity.hoglin.hurt": "0.8;mob/hoglin/hurt1", "514;entity.hoglin.retreat": "0.8;mob/hoglin/idle11", "515;entity.hoglin.step": "1;mob/hoglin/step1", "525;entity.horse.ambient": "1;mob/horse/idle1", "526;entity.horse.angry": "1;mob/horse/angry1", "527;entity.horse.armor": "1;mob/horse/armor", "528;entity.horse.breathe": "1;mob/horse/breathe1", "529;entity.horse.death": "1;mob/horse/death", "530;entity.horse.eat": "1;entity/horse/eat1", "531;entity.horse.gallop": "1;mob/horse/gallop1", "532;entity.horse.hurt": "1;mob/horse/hit1", "533;entity.horse.jump": "1;mob/horse/jump", "534;entity.horse.land": "1;mob/horse/land", "535;entity.horse.saddle": "1;mob/horse/leather", "536;entity.horse.step": "1;mob/horse/soft1", "537;entity.horse.step_wood": "1;mob/horse/wood1", "538;entity.hostile.big_fall": "1;damage/fallbig", "539;entity.hostile.death": "1;damage/hit1", "540;entity.hostile.hurt": "1;damage/hit1", "541;entity.hostile.small_fall": "1;damage/fallsmall", "542;entity.hostile.splash": "1;liquid/splash", "543;entity.hostile.swim": "1;liquid/swim1", "544;entity.husk.ambient": "1;mob/husk/idle1", "545;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "546;entity.husk.death": "1;mob/husk/death1", "547;entity.husk.hurt": "1;mob/husk/hurt1", "548;entity.husk.step": "1;mob/husk/step1", "549;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "550;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "551;entity.illusioner.death": "1;mob/illusion_illager/death1", "552;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "553;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "554;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "555;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "559;entity.iron_golem.attack": "1;mob/irongolem/throw", "560;entity.iron_golem.damage": "0.8;mob/irongolem/damage1", "561;entity.iron_golem.death": "1;mob/irongolem/death", "562;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "563;entity.iron_golem.repair": "1;mob/irongolem/repair", "564;entity.iron_golem.step": "1;mob/irongolem/walk1", "572;entity.item.break": "1;random/break", "573;entity.item.pickup": "1;random/pop", "567;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "568;entity.item_frame.break": "1;entity/itemframe/break1", "569;entity.item_frame.place": "1;entity/itemframe/place1", "570;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "571;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "589;entity.leash_knot.break": "1;entity/leashknot/break1", "590;entity.leash_knot.place": "1;entity/leashknot/place1", "592;entity.lightning_bolt.impact": "1;random/explode1", "593;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "594;entity.lingering_potion.throw": "1;random/bow", "595;entity.llama.ambient": "1;mob/llama/idle1", "596;entity.llama.angry": "1;mob/llama/angry1", "597;entity.llama.chest": "1;mob/chicken/plop", "598;entity.llama.death": "1;mob/llama/death1", "599;entity.llama.eat": "1;mob/llama/eat1", "600;entity.llama.hurt": "1;mob/llama/hurt1", "601;entity.llama.spit": "1;mob/llama/spit1", "602;entity.llama.step": "1;mob/llama/step1", "603;entity.llama.swag": "1;mob/llama/swag", "611;entity.magma_cube.death": "1;mob/slime/big1", "604;entity.magma_cube.death_small": "1;mob/slime/small1", "612;entity.magma_cube.hurt": "1;mob/slime/big1", "613;entity.magma_cube.hurt_small": "1;mob/slime/small1", "614;entity.magma_cube.jump": "1;mob/magmacube/jump1", "615;entity.magma_cube.squish": "1;mob/magmacube/big1", "616;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "632;entity.minecart.inside": "1;minecart/inside", "631;entity.minecart.inside.underwater": "1;minecart/inside_underwater1", "633;entity.minecart.riding": "1;minecart/base", "634;entity.mooshroom.convert": "0.75;mob/mooshroom/convert1", "635;entity.mooshroom.eat": "1;mob/mooshroom/eat1", "636;entity.mooshroom.milk": "1;mob/mooshroom/milk1", "638;entity.mooshroom.shear": "1;mob/sheep/shear", "637;entity.mooshroom.suspicious_milk": "1;mob/mooshroom/milk1", "664;entity.mule.ambient": "1;mob/horse/donkey/idle1", "665;entity.mule.angry": "1;mob/horse/donkey/angry1", "666;entity.mule.chest": "1;mob/chicken/plop", "667;entity.mule.death": "1;mob/horse/donkey/death", "668;entity.mule.eat": "1;entity/horse/eat1", "669;entity.mule.hurt": "1;mob/horse/donkey/hit1", "778;entity.ocelot.ambient": "0.3;mob/cat/ocelot/idle1", "779;entity.ocelot.death": "0.45;mob/cat/ocelot/death1", "777;entity.ocelot.hurt": "0.45;mob/cat/hitt1", "780;entity.painting.break": "1;entity/painting/break1", "781;entity.painting.place": "1;entity/painting/place1", "789;entity.panda.aggressive_ambient": "1;mob/panda/aggressive/aggressive1", "784;entity.panda.ambient": "1;mob/panda/idle1", "792;entity.panda.bite": "1;mob/panda/bite1", "788;entity.panda.cant_breed": "1;mob/panda/cant_breed1", "785;entity.panda.death": "0.82;mob/panda/death1", "786;entity.panda.eat": "1;mob/panda/eat1", "791;entity.panda.hurt": "0.82;mob/panda/hurt1", "782;entity.panda.pre_sneeze": "1;mob/panda/pre_sneeze", "783;entity.panda.sneeze": "1;mob/panda/sneeze1", "787;entity.panda.step": "1;mob/panda/step1", "790;entity.panda.worried_ambient": "1;mob/panda/pant2", "793;entity.parrot.ambient": "0.7;mob/parrot/idle1", "794;entity.parrot.death": "1;mob/parrot/death1", "795;entity.parrot.eat": "1;mob/parrot/eat1", "796;entity.parrot.fly": "1;mob/parrot/fly1", "797;entity.parrot.hurt": "1;mob/parrot/hurt1", "798;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "799;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "800;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "801;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "802;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "803;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "804;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "805;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "806;entity.parrot.imitate.guardian": "0.4;entity.guardian.ambient", "807;entity.parrot.imitate.hoglin": "0.6;entity.hoglin.ambient", "808;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "809;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "810;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "811;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "812;entity.parrot.imitate.piglin": "0.6;entity.piglin.ambient", "813;entity.parrot.imitate.piglin_brute": "0.6;entity.piglin_brute.ambient", "814;entity.parrot.imitate.pillager": "0.4;entity.pillager.ambient", "815;entity.parrot.imitate.ravager": "0.2;entity.ravager.ambient", "816;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "817;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "818;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "819;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "820;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "821;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "822;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "823;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "824;entity.parrot.imitate.warden": "0.8;entity.warden.tendril_clicks", "825;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "826;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "827;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "828;entity.parrot.imitate.zoglin": "0.6;entity.zoglin.ambient", "829;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "830;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "831;entity.parrot.step": "1;mob/parrot/step1", "832;entity.phantom.ambient": "0.8;mob/phantom/idle1", "833;entity.phantom.bite": "1;mob/phantom/bite1", "834;entity.phantom.death": "1;mob/phantom/death1", "835;entity.phantom.flap": "0.9;mob/phantom/flap1", "836;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "837;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "838;entity.pig.ambient": "1;mob/pig/say1", "839;entity.pig.death": "1;mob/pig/death", "840;entity.pig.hurt": "1;mob/pig/say1", "841;entity.pig.saddle": "1;mob/horse/leather", "842;entity.pig.step": "1;mob/pig/step1", "843;entity.piglin.admiring_item": "0.8;mob/piglin/admire1", "844;entity.piglin.ambient": "0.66;mob/piglin/idle1", "845;entity.piglin.angry": "0.7;mob/piglin/angry1", "846;entity.piglin.celebrate": "0.8;mob/piglin/celebrate1", "852;entity.piglin.converted_to_zombified": "1;mob/piglin/converted1", "847;entity.piglin.death": "0.7;mob/piglin/death1", "849;entity.piglin.hurt": "0.7;mob/piglin/hurt1", "848;entity.piglin.jealous": "0.8;mob/piglin/jealous1", "850;entity.piglin.retreat": "0.65;mob/piglin/retreat1", "851;entity.piglin.step": "0.75;mob/piglin/step1", "853;entity.piglin_brute.ambient": "0.9;mob/piglin_brute/idle1", "854;entity.piglin_brute.angry": "0.9;mob/piglin_brute/angry1", "858;entity.piglin_brute.converted_to_zombified": "1;mob/piglin/converted1", "855;entity.piglin_brute.death": "0.8;mob/piglin_brute/death1", "856;entity.piglin_brute.hurt": "0.64;mob/piglin_brute/hurt1", "857;entity.piglin_brute.step": "0.75;mob/piglin_brute/step1", "859;entity.pillager.ambient": "1;mob/pillager/idle1", "860;entity.pillager.celebrate": "1;mob/pillager/celebrate1", "861;entity.pillager.death": "1;mob/pillager/death1", "862;entity.pillager.hurt": "1;mob/pillager/hurt1", "865;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "866;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "867;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "868;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "869;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "870;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "871;entity.player.big_fall": "1;damage/fallbig", "872;entity.player.breath": "1;random/breath", "873;entity.player.burp": "1;random/burp", "874;entity.player.death": "1;damage/hit1", "875;entity.player.hurt": "1;damage/hit1", "876;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "877;entity.player.hurt_freeze": "1;entity/player/hurt/freeze_hurt1", "878;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "879;entity.player.hurt_sweet_berry_bush": "1;entity/player/hurt/berrybush_hurt1", "880;entity.player.levelup": "1;random/levelup", "881;entity.player.small_fall": "1;damage/fallsmall", "882;entity.player.splash": "1;liquid/splash", "883;entity.player.splash.high_speed": "1;liquid/heavy_splash", "884;entity.player.swim": "1;liquid/swim5", "885;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "886;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "887;entity.polar_bear.death": "1;mob/polarbear/death1", "888;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "889;entity.polar_bear.step": "1;mob/polarbear/step1", "890;entity.polar_bear.warning": "1;mob/polarbear/warning1", "905;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "906;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "907;entity.puffer_fish.death": "1;entity/pufferfish/death1", "908;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "909;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "910;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "912;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "913;entity.rabbit.attack": "1;entity/rabbit/attack1", "914;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "915;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "916;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "918;entity.ravager.ambient": "1;mob/ravager/idle1", "919;entity.ravager.attack": "1;mob/ravager/bite1", "920;entity.ravager.celebrate": "1;mob/ravager/celebrate1", "921;entity.ravager.death": "1;mob/ravager/death1", "922;entity.ravager.hurt": "1;mob/ravager/hurt1", "925;entity.ravager.roar": "1;mob/ravager/roar1", "923;entity.ravager.step": "1;mob/ravager/step1", "924;entity.ravager.stunned": "1;mob/ravager/stun1", "947;entity.salmon.death": "1;entity/fish/hurt1", "948;entity.salmon.flop": "0.3;entity/fish/flop1", "949;entity.salmon.hurt": "1;entity/fish/hurt1", "991;entity.sheep.ambient": "1;mob/sheep/say1", "992;entity.sheep.death": "1;mob/sheep/say1", "993;entity.sheep.hurt": "1;mob/sheep/say1", "994;entity.sheep.shear": "1;mob/sheep/shear", "995;entity.sheep.step": "1;mob/sheep/step1", "1004;entity.shulker.ambient": "1;entity/shulker/ambient1", "1009;entity.shulker.close": "1;entity/shulker/close1", "1010;entity.shulker.death": "1;entity/shulker/death1", "1011;entity.shulker.hurt": "1;entity/shulker/hurt1", "1012;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "1013;entity.shulker.open": "1;entity/shulker/open1", "1014;entity.shulker.shoot": "1;entity/shulker/shoot1", "1015;entity.shulker.teleport": "1;mob/endermen/portal", "1007;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "1008;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "1016;entity.silverfish.ambient": "1;mob/silverfish/say1", "1017;entity.silverfish.death": "1;mob/silverfish/kill", "1018;entity.silverfish.hurt": "1;mob/silverfish/hit1", "1019;entity.silverfish.step": "1;mob/silverfish/step1", "1020;entity.skeleton.ambient": "1;mob/skeleton/say1", "1021;entity.skeleton.converted_to_stray": "1;mob/stray/convert1", "1022;entity.skeleton.death": "1;mob/skeleton/death", "1031;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "1032;entity.skeleton.shoot": "1;random/bow", "1033;entity.skeleton.step": "1;mob/skeleton/step1", "1023;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "1027;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "1024;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "1028;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "1025;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "1029;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "1030;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "1026;entity.skeleton_horse.swim": "0.4;liquid/swim9", "1034;entity.slime.attack": "1;mob/slime/attack1", "1035;entity.slime.death": "1;mob/slime/big1", "1076;entity.slime.death_small": "1;mob/slime/small1", "1036;entity.slime.hurt": "1;mob/slime/big1", "1077;entity.slime.hurt_small": "1;mob/slime/small1", "1037;entity.slime.jump": "1;mob/slime/big1", "1078;entity.slime.jump_small": "1;mob/slime/small1", "1038;entity.slime.squish": "1;mob/slime/big1", "1079;entity.slime.squish_small": "1;mob/slime/small1", "1086;entity.snow_golem.death": "1;entity/snowman/death1", "1087;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "1089;entity.snow_golem.shear": "1;mob/sheep/shear", "1088;entity.snow_golem.shoot": "1;random/bow", "1082;entity.snowball.throw": "1;random/bow", "1093;entity.spider.ambient": "1;mob/spider/say1", "1094;entity.spider.death": "1;mob/spider/death", "1095;entity.spider.hurt": "1;mob/spider/say1", "1096;entity.spider.step": "1;mob/spider/step1", "1097;entity.splash_potion.break": "1;random/glass1", "1098;entity.splash_potion.throw": "1;random/bow", "1101;entity.squid.ambient": "1;entity/squid/ambient1", "1102;entity.squid.death": "1;entity/squid/death1", "1103;entity.squid.hurt": "1;entity/squid/hurt1", "1104;entity.squid.squirt": "1;entity/squid/squirt1", "1114;entity.stray.ambient": "1;mob/stray/idle1", "1115;entity.stray.death": "1;mob/stray/death1", "1116;entity.stray.hurt": "1;mob/stray/hurt1", "1117;entity.stray.step": "1;mob/stray/step1", "1067;entity.strider.ambient": "1;mob/strider/idle1", "1070;entity.strider.death": "1;mob/strider/death1", "1074;entity.strider.eat": "1;mob/strider/eat1", "1068;entity.strider.happy": "1;mob/strider/happy1", "1071;entity.strider.hurt": "1;mob/strider/hurt1", "1069;entity.strider.retreat": "0.8;mob/strider/retreat1", "1075;entity.strider.saddle": "1;mob/horse/leather", "1072;entity.strider.step": "0.25;mob/strider/step1", "1073;entity.strider.step_lava": "0.2;mob/strider/step_lava1", "1121;entity.tadpole.death": "1;mob/tadpole/death1", "1122;entity.tadpole.flop": "1;entity.tropical_fish.flop", "1123;entity.tadpole.grow_up": "0.75;mob/frog/idle1", "1124;entity.tadpole.hurt": "1;mob/tadpole/hurt1", "1126;entity.tnt.primed": "1;random/fuse", "1141;entity.tropical_fish.death": "1;entity/fish/hurt1", "1142;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "1143;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "1149;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "1150;entity.turtle.death": "1;mob/turtle/death1", "1151;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "1152;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "1153;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "1154;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "1155;entity.turtle.hurt": "1;mob/turtle/hurt1", "1156;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "1157;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "1158;entity.turtle.shamble": "1;mob/turtle/walk1", "1159;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "1160;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "1170;entity.vex.ambient": "1;mob/vex/idle1", "1171;entity.vex.charge": "1;mob/vex/charge1", "1172;entity.vex.death": "1;mob/vex/death1", "1173;entity.vex.hurt": "1;mob/vex/hurt1", "1174;entity.villager.ambient": "1;mob/villager/idle1", "1175;entity.villager.celebrate": "1;mob/villager/yes1", "1176;entity.villager.death": "1;mob/villager/death", "1177;entity.villager.hurt": "1;mob/villager/hit1", "1178;entity.villager.no": "1;mob/villager/no1", "1179;entity.villager.trade": "1;mob/villager/haggle1", "1181;entity.villager.work_armorer": "1;block/blastfurnace/blastfurnace1", "1182;entity.villager.work_butcher": "1;block/smoker/smoker1", "1183;entity.villager.work_cartographer": "1;ui/cartography_table/drawmap1", "1184;entity.villager.work_cleric": "1;block/brewing_stand/brew1", "1185;entity.villager.work_farmer": "1;block/composter/fill_success1", "1186;entity.villager.work_fisherman": "1;block/barrel/open1", "1187;entity.villager.work_fletcher": "1;block/fletching_table/fletching_table1", "1188;entity.villager.work_leatherworker": "0.9;block/cauldron/dye1", "1189;entity.villager.work_librarian": "2;item/book/open_flip1", "1190;entity.villager.work_mason": "1;ui/stonecutter/cut1", "1191;entity.villager.work_shepherd": "0.5;ui/loom/take_result1", "1192;entity.villager.work_toolsmith": "1;block/smithing_table/smithing_table1", "1193;entity.villager.work_weaponsmith": "0.5;block/grindstone/grindstone1", "1180;entity.villager.yes": "1;mob/villager/yes1", "1194;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "1195;entity.vindicator.celebrate": "1;mob/vindication_illager/celebrate1", "1196;entity.vindicator.death": "1;mob/vindication_illager/death1", "1197;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "1204;entity.wandering_trader.ambient": "1;mob/wandering_trader/idle1", "1205;entity.wandering_trader.death": "1;mob/wandering_trader/death", "1206;entity.wandering_trader.disappeared": "0.8;mob/wandering_trader/disappeared1", "1207;entity.wandering_trader.drink_milk": "1;mob/wandering_trader/drink_milk1", "1208;entity.wandering_trader.drink_potion": "0.7;mob/wandering_trader/drink_potion", "1209;entity.wandering_trader.hurt": "1;mob/wandering_trader/hurt1", "1210;entity.wandering_trader.no": "1;mob/wandering_trader/no1", "1211;entity.wandering_trader.reappeared": "0.8;mob/wandering_trader/reappeared1", "1212;entity.wandering_trader.trade": "1;mob/wandering_trader/haggle1", "1213;entity.wandering_trader.yes": "1;mob/wandering_trader/yes1", "1214;entity.warden.agitated": "1;mob/warden/agitated_1", "1215;entity.warden.ambient": "1;mob/warden/ambient_1", "1216;entity.warden.angry": "1;mob/warden/angry_1", "1217;entity.warden.attack_impact": "1;mob/warden/attack_impact_1", "1218;entity.warden.death": "1;mob/warden/death_1", "1219;entity.warden.dig": "1;mob/warden/dig", "1220;entity.warden.emerge": "1;mob/warden/emerge", "1221;entity.warden.heartbeat": "1;mob/warden/heartbeat_1", "1222;entity.warden.hurt": "1;mob/warden/hurt_1", "1223;entity.warden.listening": "1;mob/warden/listening_1", "1224;entity.warden.listening_angry": "1;mob/warden/listening_angry_1", "1225;entity.warden.nearby_close": "1;mob/warden/nearby_close_1", "1226;entity.warden.nearby_closer": "1;mob/warden/nearby_closer_1", "1227;entity.warden.nearby_closest": "1;mob/warden/nearby_closest_1", "1228;entity.warden.roar": "1;mob/warden/roar_1", "1229;entity.warden.sniff": "0.75;mob/warden/sniff_1", "1230;entity.warden.sonic_boom": "1;mob/warden/sonic_boom1", "1231;entity.warden.sonic_charge": "1;mob/warden/sonic_charge1", "1232;entity.warden.step": "0.3;mob/warden/step_1", "1233;entity.warden.tendril_clicks": "1;mob/warden/tendril_clicks_1", "1242;entity.witch.ambient": "1;entity/witch/ambient1", "1243;entity.witch.celebrate": "1;entity/witch/ambient1", "1244;entity.witch.death": "1;entity/witch/death1", "1245;entity.witch.drink": "1;entity/witch/drink1", "1246;entity.witch.hurt": "1;entity/witch/hurt1", "1247;entity.witch.throw": "1;entity/witch/throw1", "1248;entity.wither.ambient": "1;mob/wither/idle1", "1249;entity.wither.break_block": "1;mob/zombie/woodbreak", "1250;entity.wither.death": "1;mob/wither/death", "1251;entity.wither.hurt": "1;mob/wither/hurt1", "1252;entity.wither.shoot": "1;mob/wither/shoot", "1257;entity.wither.spawn": "1;mob/wither/spawn", "1253;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "1254;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "1255;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "1256;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "1258;entity.wolf.ambient": "1;mob/wolf/bark1", "1259;entity.wolf.death": "1;mob/wolf/death", "1260;entity.wolf.growl": "1;mob/wolf/growl1", "1261;entity.wolf.howl": "1;mob/wolf/howl1", "1262;entity.wolf.hurt": "1;mob/wolf/hurt1", "1263;entity.wolf.pant": "1;mob/wolf/panting", "1264;entity.wolf.shake": "1;mob/wolf/shake", "1265;entity.wolf.step": "1;mob/wolf/step1", "1266;entity.wolf.whine": "1;mob/wolf/whine", "1285;entity.zoglin.ambient": "0.9;mob/zoglin/idle1", "1286;entity.zoglin.angry": "0.8;mob/zoglin/angry1", "1287;entity.zoglin.attack": "0.8;mob/zoglin/attack1", "1288;entity.zoglin.death": "0.93;mob/zoglin/death1", "1289;entity.zoglin.hurt": "0.83;mob/zoglin/hurt1", "1290;entity.zoglin.step": "1;mob/zoglin/step1", "1291;entity.zombie.ambient": "1;mob/zombie/say1", "1293;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "1292;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "1294;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "1295;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "1296;entity.zombie.death": "1;mob/zombie/death", "1297;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "1301;entity.zombie.hurt": "1;mob/zombie/hurt1", "1302;entity.zombie.infect": "1;mob/zombie/infect", "1307;entity.zombie.step": "1;mob/zombie/step1", "1298;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "1299;entity.zombie_horse.death": "1;mob/horse/zombie/death", "1300;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "1308;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "1309;entity.zombie_villager.converted": "1;mob/zombie/unfect", "1310;entity.zombie_villager.cure": "1;mob/zombie/remedy", "1311;entity.zombie_villager.death": "1;mob/zombie_villager/death", "1312;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "1313;entity.zombie_villager.step": "1;mob/zombie/step1", "1303;entity.zombified_piglin.ambient": "1;mob/zombified_piglin/zpig1", "1304;entity.zombified_piglin.angry": "1;mob/zombified_piglin/zpigangry1", "1305;entity.zombified_piglin.death": "1;mob/zombified_piglin/zpigdeath", "1306;entity.zombified_piglin.hurt": "1;mob/zombified_piglin/zpighurt1", "917;event.raid.horn": "0.01;event/raid/raidhorn_01", "53;item.armor.equip_chain": "1;item/armor/equip_chain1", "54;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "55;item.armor.equip_elytra": "1;item/armor/equip_leather1", "56;item.armor.equip_generic": "1;item/armor/equip_generic1", "57;item.armor.equip_gold": "1;item/armor/equip_gold1", "58;item.armor.equip_iron": "1;item/armor/equip_iron1", "59;item.armor.equip_leather": "1;item/armor/equip_leather1", "60;item.armor.equip_netherite": "0.8;item/armor/equip_netherite1", "61;item.armor.equip_turtle": "1;mob/turtle/armor", "70;item.axe.scrape": "1;item/axe/scrape1", "69;item.axe.strip": "0.9;item/axe/strip1", "71;item.axe.wax_off": "1;item/axe/wax_off1", "143;item.bone_meal.use": "1;item/bonemeal/bonemeal1", "144;item.book.page_turn": "2;item/book/open_flip1", "145;item.book.put": "1;item/book/close_put1", "147;item.bottle.empty": "1;item/bottle/empty1", "148;item.bottle.fill": "1;item/bottle/fill1", "149;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "156;item.bucket.empty": "1;item/bucket/empty1", "157;item.bucket.empty_axolotl": "1;item/bucket/empty_fish1", "158;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "159;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "160;item.bucket.empty_powder_snow": "1;item/bucket/empty_powder_snow1", "161;item.bucket.empty_tadpole": "0.5;item/bucket/empty_fish1", "162;item.bucket.fill": "1;item/bucket/fill1", "163;item.bucket.fill_axolotl": "1;item/bucket/fill_axolotl1", "164;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "165;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "166;item.bucket.fill_powder_snow": "1;item/bucket/fill_powder_snow1", "167;item.bucket.fill_tadpole": "0.5;item/bucket/fill_fish1", "168;item.bundle.drop_contents": "1;item/bundle/drop_contents1", "169;item.bundle.insert": "1;item/bundle/insert1", "170;item.bundle.remove_one": "1;item/bundle/remove_one1", "215;item.chorus_fruit.teleport": "1;mob/endermen/portal", "249;item.crop.plant": "0.45;item/plant/crop1", "250;item.crossbow.hit": "1;random/bowhit1", "251;item.crossbow.loading_end": "1;item/crossbow/loading_end", "252;item.crossbow.loading_middle": "0.65;item/crossbow/loading_middle1", "253;item.crossbow.loading_start": "0.3;item/crossbow/loading_start", "254;item.crossbow.quick_charge_1": "0.65;item/crossbow/quick_charge/quick1_1", "255;item.crossbow.quick_charge_2": "0.65;item/crossbow/quick_charge/quick2_1", "256;item.crossbow.quick_charge_3": "0.65;item/crossbow/quick_charge/quick3_1", "257;item.crossbow.shoot": "0.8;item/crossbow/shoot1", "318;item.dye.use": "1;item/dye/dye", "328;item.elytra.flying": "0.6;item/elytra/elytra_loop", "368;item.firecharge.use": "1;mob/ghast/fireball4", "383;item.flintandsteel.use": "1;fire/ignite", "452;item.glow_ink_sac.use": "1;item/ink_sac/ink_sac1", "507;item.hoe.till": "1;item/hoe/till1", "524;item.honey_bottle.drink": "1;item/bottle/drink_honey1", "522;item.honeycomb.wax_on": "1;item/honeycomb/wax_on1", "556;item.ink_sac.use": "1;item/ink_sac/ink_sac1", "610;item.lodestone_compass.lock": "1;block/lodestone/lock1", "715;item.nether_wart.plant": "0.9;item/plant/netherwart1", "996;item.shield.block": "1;item/shield/block1", "997;item.shield.break": "1;random/break", "1003;item.shovel.flatten": "1;item/shovel/flatten1", "1100;item.spyglass.stop_using": "0.5;item/spyglass/stop", "1099;item.spyglass.use": "0.5;item/spyglass/use", "1127;item.totem.use": "1;item/totem/use_totem", "1128;item.trident.hit": "1;item/trident/pierce1", "1129;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "1130;item.trident.return": "0.8;item/trident/return1", "1131;item.trident.riptide_1": "1;item/trident/riptide1", "1132;item.trident.riptide_2": "1;item/trident/riptide2", "1133;item.trident.riptide_3": "1;item/trident/riptide3", "1134;item.trident.throw": "1;item/trident/throw1", "1135;item.trident.thunder": "1;item/trident/thunder1", "670;music.creative": "1;music.game", "671;music.credits": "1;music/game/end/credits", "687;music.dragon": "1;music/game/end/boss", "688;music.end": "1;music/game/end/end", "689;music.game": "1;music/game/calm1", "690;music.menu": "1;music/game/swamp/aerie", "691;music.nether.basalt_deltas": "1;music/game/nether/nether1", "692;music.nether.crimson_forest": "0.5;music/game/nether/crimson_forest/chrysopoeia", "702;music.nether.nether_wastes": "1;music/game/nether/nether1", "705;music.nether.soul_sand_valley": "1;music/game/nether/nether1", "693;music.overworld.deep_dark": "1;music/game/ancestry", "694;music.overworld.dripstone_caves": "1;music/game/an_ordinary_day", "703;music.overworld.frozen_peaks": "1;music/game/hal1", "695;music.overworld.grove": "1;music/game/calm1", "696;music.overworld.jagged_peaks": "0.4;music/game/floating_dream", "699;music.overworld.jungle_and_forest": "1;music/game/calm1", "697;music.overworld.lush_caves": "0.4;music/game/left_to_bloom", "701;music.overworld.meadow": "1;music/game/hal1", "700;music.overworld.old_growth_taiga": "1;music/game/calm1", "704;music.overworld.snowy_slopes": "0.4;music/game/an_ordinary_day", "706;music.overworld.stony_peaks": "1;music/game/hal1", "698;music.overworld.swamp": "1;music/game/swamp/aerie", "708;music.under_water": "0.4;music/game/water/axolotl", "673;music_disc.11": "1;records/11", "674;music_disc.13": "1;records/13", "672;music_disc.5": "1;records/5", "675;music_disc.blocks": "1;records/blocks", "676;music_disc.cat": "1;records/cat", "677;music_disc.chirp": "1;records/chirp", "678;music_disc.far": "1;records/far", "679;music_disc.mall": "1;records/mall", "680;music_disc.mellohi": "1;records/mellohi", "686;music_disc.otherside": "1;records/otherside", "681;music_disc.pigstep": "1;records/pigstep", "682;music_disc.stal": "1;records/stal", "683;music_disc.strad": "1;records/strad", "684;music_disc.wait": "1;records/wait", "685;music_disc.ward": "1;records/ward", "1061;particle.soul_escape": "0.25;enchant/soulspeed/soulspeed1", "1161;ui.button.click": "1;random/click_stereo", "1164;ui.cartography_table.take_result": "1;ui/cartography_table/drawmap1", "1162;ui.loom.select_pattern": "1;ui/loom/select_pattern1", "1163;ui.loom.take_result": "0.5;ui/loom/take_result1", "1166;ui.stonecutter.select_recipe": "1;random/click", "1165;ui.stonecutter.take_result": "1;ui/stonecutter/cut1", "1167;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "1168;ui.toast.in": "0.4;ui/toast/in", "1169;ui.toast.out": "0.4;ui/toast/out", "1235;weather.rain": "1;ambient/weather/rain1", "1236;weather.rain.above": "1;ambient/weather/rain1" }, "1.18.2": { "1;ambient.basalt_deltas.additions": "0.35;ambient/nether/basalt_deltas/debris1", "2;ambient.basalt_deltas.loop": "0.5;ambient/nether/basalt_deltas/ambience", "3;ambient.basalt_deltas.mood": "1;ambient/nether/nether_wastes/mood1", "0;ambient.cave": "1;ambient/cave/cave1", "4;ambient.crimson_forest.additions": "0.4;ambient/nether/crimson_forest/particles1", "5;ambient.crimson_forest.loop": "0.74;ambient/nether/crimson_forest/ambience", "6;ambient.crimson_forest.mood": "1;ambient/nether/crimson_forest/mood1", "7;ambient.nether_wastes.additions": "0.3;ambient/nether/nether_wastes/addition1", "8;ambient.nether_wastes.loop": "0.77;ambient/nether/nether_wastes/ambience", "9;ambient.nether_wastes.mood": "1;ambient/nether/nether_wastes/mood1", "10;ambient.soul_sand_valley.additions": "0.2;ambient/nether/soulsand_valley/sand1", "11;ambient.soul_sand_valley.loop": "0.85;ambient/nether/soulsand_valley/ambience", "12;ambient.soul_sand_valley.mood": "1;ambient/nether/soulsand_valley/mood1", "16;ambient.underwater.enter": "0.8;ambient/underwater/enter1", "17;ambient.underwater.exit": "0.5;ambient/underwater/exit1", "18;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "19;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "20;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "21;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "13;ambient.warped_forest.additions": "0.3;ambient/nether/crimson_forest/addition1", "14;ambient.warped_forest.loop": "0.71;ambient/nether/warped_forest/ambience", "15;ambient.warped_forest.mood": "1;ambient/nether/warped_forest/creak1", "22;block.amethyst_block.break": "1;block/amethyst/break1", "23;block.amethyst_block.chime": "0.2;block/amethyst/shimmer", "24;block.amethyst_block.fall": "1;block/amethyst/step1", "25;block.amethyst_block.hit": "1;block/amethyst/step1", "26;block.amethyst_block.place": "1;block/amethyst/place1", "27;block.amethyst_block.step": "1;block/amethyst/step1", "28;block.amethyst_cluster.break": "0.8;block/amethyst_cluster/break1", "29;block.amethyst_cluster.fall": "1;block/amethyst/step1", "30;block.amethyst_cluster.hit": "1;block/amethyst/step1", "31;block.amethyst_cluster.place": "0.9;block/amethyst_cluster/place1", "32;block.amethyst_cluster.step": "1;block/amethyst/step1", "33;block.ancient_debris.break": "1;block/ancient_debris/break1", "37;block.ancient_debris.fall": "1;block/basalt/step1", "36;block.ancient_debris.hit": "1;block/basalt/step1", "35;block.ancient_debris.place": "1;block/ancient_debris/break1", "34;block.ancient_debris.step": "1;block/basalt/step1", "38;block.anvil.break": "1;dig/stone1", "39;block.anvil.destroy": "1;random/anvil_break", "40;block.anvil.fall": "1;step/stone1", "41;block.anvil.hit": "1;step/stone1", "42;block.anvil.land": "1;random/anvil_land", "43;block.anvil.place": "1;random/anvil_land", "44;block.anvil.step": "1;step/stone1", "45;block.anvil.use": "1;random/anvil_use", "72;block.azalea.break": "1;block/azalea/break1", "73;block.azalea.fall": "1;block/azalea/step1", "74;block.azalea.hit": "1;block/azalea/step1", "75;block.azalea.place": "1;block/azalea/break1", "76;block.azalea.step": "1;block/azalea/step1", "77;block.azalea_leaves.break": "0.85;block/azalea_leaves/break1", "78;block.azalea_leaves.fall": "1;block/azalea_leaves/step1", "79;block.azalea_leaves.hit": "0.8;block/azalea_leaves/step1", "80;block.azalea_leaves.place": "0.85;block/azalea_leaves/break1", "81;block.azalea_leaves.step": "0.85;block/azalea_leaves/step1", "82;block.bamboo.break": "0.8;block/bamboo/place1", "83;block.bamboo.fall": "1;block/bamboo/step1", "84;block.bamboo.hit": "1;block/bamboo/step1", "85;block.bamboo.place": "0.8;block/bamboo/place1", "86;block.bamboo.step": "1;block/bamboo/step1", "87;block.bamboo_sapling.break": "0.9;block/bamboo/sapling_place1", "88;block.bamboo_sapling.hit": "0.8;block/bamboo/sapling_hit1", "89;block.bamboo_sapling.place": "0.85;block/bamboo/sapling_place1", "90;block.barrel.close": "1;block/barrel/close", "91;block.barrel.open": "1;block/barrel/open1", "92;block.basalt.break": "1;block/basalt/break1", "96;block.basalt.fall": "1;block/basalt/step1", "95;block.basalt.hit": "1;block/basalt/step1", "94;block.basalt.place": "1;block/basalt/break1", "93;block.basalt.step": "1;block/basalt/step1", "102;block.beacon.activate": "1;block/beacon/activate", "103;block.beacon.ambient": "0.9;block/beacon/ambient", "104;block.beacon.deactivate": "1;block/beacon/deactivate", "105;block.beacon.power_select": "1;block/beacon/power1", "112;block.beehive.drip": "0.3;block/beehive/drip1", "113;block.beehive.enter": "1;block/beehive/enter", "114;block.beehive.exit": "1;block/beehive/exit", "115;block.beehive.shear": "0.8;block/beehive/shear", "116;block.beehive.work": "0.6;block/beehive/work1", "118;block.bell.resonate": "1;block/bell/resonate", "117;block.bell.use": "12;block/bell/bell_use01", "119;block.big_dripleaf.break": "1;block/big_dripleaf/break1", "120;block.big_dripleaf.fall": "1;block/big_dripleaf/step1", "121;block.big_dripleaf.hit": "1;block/big_dripleaf/step1", "122;block.big_dripleaf.place": "1;block/big_dripleaf/break1", "123;block.big_dripleaf.step": "1;block/big_dripleaf/step1", "298;block.big_dripleaf.tilt_down": "1;block/big_dripleaf/tilt_down1", "299;block.big_dripleaf.tilt_up": "1;block/big_dripleaf/tilt_up1", "139;block.blastfurnace.fire_crackle": "1;block/blastfurnace/blastfurnace1", "131;block.bone_block.break": "0.9;block/bone_block/break1", "132;block.bone_block.fall": "1;block/bone_block/step1", "133;block.bone_block.hit": "1;block/bone_block/step1", "134;block.bone_block.place": "0.9;block/bone_block/break1", "135;block.bone_block.step": "1;block/bone_block/step1", "143;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "144;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "145;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "146;block.bubble_column.upwards_inside": "0.7;block/bubble_column/upwards_inside", "147;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "148;block.bubble_column.whirlpool_inside": "0.7;block/bubble_column/whirlpool_inside", "162;block.cake.add_candle": "1;block/cake/add_candle1", "163;block.calcite.break": "0.9;block/calcite/break1", "167;block.calcite.fall": "1;block/calcite/step1", "166;block.calcite.hit": "1;block/calcite/step1", "165;block.calcite.place": "0.94;block/calcite/place1", "164;block.calcite.step": "1;block/calcite/step1", "168;block.campfire.crackle": "1;block/campfire/crackle1", "169;block.candle.ambient": "1;block/candle/ambient1", "170;block.candle.break": "1;block/candle/break1", "171;block.candle.extinguish": "1;block/candle/extinguish1", "172;block.candle.fall": "1;block/candle/step1", "173;block.candle.hit": "1;block/candle/step1", "174;block.candle.place": "1;block/candle/break1", "175;block.candle.step": "1;block/candle/step1", "185;block.cave_vines.break": "1;block/cave_vines/break1", "186;block.cave_vines.fall": "1;block/vine/climb1", "187;block.cave_vines.hit": "1;block/vine/climb1", "190;block.cave_vines.pick_berries": "1;block.sweet_berry_bush.pick_berries", "188;block.cave_vines.place": "1;block/cave_vines/break1", "189;block.cave_vines.step": "1;block/vine/climb1", "191;block.chain.break": "0.5;block/chain/break1", "192;block.chain.fall": "1;block/chain/step1", "193;block.chain.hit": "0.8;block/chain/step1", "194;block.chain.place": "0.5;block/chain/break1", "195;block.chain.step": "1;block/chain/step1", "196;block.chest.close": "1;block/chest/close", "197;block.chest.locked": "1;block/wooden_door/close", "198;block.chest.open": "1;block/chest/open", "204;block.chorus_flower.death": "1;block/chorus_flower/death1", "205;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "211;block.comparator.click": "1;random/click", "212;block.composter.empty": "1;block/composter/empty1", "213;block.composter.fill": "0.3;block/composter/fill1", "214;block.composter.fill_success": "1;block/composter/fill_success1", "215;block.composter.ready": "1;block/composter/ready1", "216;block.conduit.activate": "0.9;block/conduit/activate", "217;block.conduit.ambient": "1;block/conduit/ambient", "218;block.conduit.ambient.short": "1;block/conduit/short1", "219;block.conduit.attack.target": "1;block/conduit/attack1", "220;block.conduit.deactivate": "0.7;block/conduit/deactivate", "221;block.copper.break": "1;block/copper/break1", "225;block.copper.fall": "1;block/copper/step1", "224;block.copper.hit": "1;block/copper/step1", "223;block.copper.place": "1;block/copper/break1", "222;block.copper.step": "1;block/copper/step1", "226;block.coral_block.break": "1;dig/coral1", "227;block.coral_block.fall": "1;step/coral1", "228;block.coral_block.hit": "1;step/coral1", "229;block.coral_block.place": "1;dig/coral1", "230;block.coral_block.step": "1;step/coral1", "239;block.crop.break": "0.9;block/bamboo/sapling_place1", "254;block.deepslate.break": "1;block/deepslate/break1", "255;block.deepslate.fall": "1;block/deepslate/step1", "256;block.deepslate.hit": "1;block/deepslate/step1", "257;block.deepslate.place": "1;block/deepslate/place1", "258;block.deepslate.step": "1;block/deepslate/step1", "249;block.deepslate_bricks.break": "0.85;block/deepslate_bricks/place1", "250;block.deepslate_bricks.fall": "1;block/deepslate_bricks/step1", "251;block.deepslate_bricks.hit": "1;block/deepslate_bricks/step1", "252;block.deepslate_bricks.place": "0.85;block/deepslate_bricks/place1", "253;block.deepslate_bricks.step": "1;block/deepslate_bricks/step1", "259;block.deepslate_tiles.break": "0.92;block/deepslate_bricks/place1", "260;block.deepslate_tiles.fall": "1;block/deepslate_bricks/step1", "261;block.deepslate_tiles.hit": "1;block/deepslate_bricks/step1", "262;block.deepslate_tiles.place": "0.85;block/deepslate_bricks/place1", "263;block.deepslate_tiles.step": "1;block/deepslate_bricks/step1", "264;block.dispenser.dispense": "1;random/click", "265;block.dispenser.fail": "1;random/click", "266;block.dispenser.launch": "1;random/bow", "283;block.dripstone_block.break": "1;block/dripstone/break1", "287;block.dripstone_block.fall": "1;block/dripstone/step1", "286;block.dripstone_block.hit": "1;block/dripstone/step1", "285;block.dripstone_block.place": "1;block/dripstone/break1", "284;block.dripstone_block.step": "1;block/dripstone/step1", "320;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "343;block.end_gateway.spawn": "1;random/explode1", "345;block.end_portal.spawn": "1;block/end_portal/endportal", "344;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "321;block.ender_chest.close": "1;block/enderchest/close", "322;block.ender_chest.open": "1;block/enderchest/open", "357;block.fence_gate.close": "1;block/fence_gate/close1", "358;block.fence_gate.open": "1;block/fence_gate/open1", "368;block.fire.ambient": "1;fire/fire", "369;block.fire.extinguish": "1;random/fizz", "375;block.flowering_azalea.break": "1;block/azalea/break1", "376;block.flowering_azalea.fall": "1;block/azalea/step1", "377;block.flowering_azalea.hit": "1;block/azalea/step1", "378;block.flowering_azalea.place": "1;block/azalea/break1", "379;block.flowering_azalea.step": "1;block/azalea/step1", "674;block.fungus.break": "1;block/fungus/break1", "676;block.fungus.place": "1;block/fungus/break1", "675;block.fungus.step": "0.9;item/plant/netherwart1", "396;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "414;block.gilded_blackstone.break": "1;block/nether_ore/break1", "415;block.gilded_blackstone.fall": "1;block/nether_ore/step1", "416;block.gilded_blackstone.hit": "1;block/nether_ore/step1", "417;block.gilded_blackstone.place": "1;block/nether_ore/break1", "418;block.gilded_blackstone.step": "1;block/nether_ore/step1", "419;block.glass.break": "1;random/glass1", "420;block.glass.fall": "1;step/stone1", "421;block.glass.hit": "1;step/stone1", "422;block.glass.place": "1;dig/stone1", "423;block.glass.step": "1;step/stone1", "451;block.grass.break": "1;dig/grass1", "452;block.grass.fall": "1;step/grass1", "453;block.grass.hit": "1;step/grass1", "454;block.grass.place": "1;dig/grass1", "455;block.grass.step": "1;step/grass1", "456;block.gravel.break": "1;dig/gravel1", "457;block.gravel.fall": "1;step/gravel1", "458;block.gravel.hit": "1;step/gravel1", "459;block.gravel.place": "1;dig/gravel1", "460;block.gravel.step": "1;step/gravel1", "461;block.grindstone.use": "0.5;block/grindstone/grindstone1", "462;block.growing_plant.crop": "1;mob/sheep/shear", "471;block.hanging_roots.break": "1;block/hanging_roots/break1", "472;block.hanging_roots.fall": "1;block/hanging_roots/step1", "473;block.hanging_roots.hit": "1;block/hanging_roots/step1", "474;block.hanging_roots.place": "1;block/hanging_roots/break1", "475;block.hanging_roots.step": "1;block/hanging_roots/step1", "485;block.honey_block.break": "1;block/honeyblock/break1", "486;block.honey_block.fall": "1;block/honeyblock/step1", "487;block.honey_block.hit": "1;block/honeyblock/step1", "488;block.honey_block.place": "1;block/honeyblock/break1", "489;block.honey_block.slide": "0.8;block/honeyblock/slide1", "490;block.honey_block.step": "1;block/honeyblock/step1", "525;block.iron_door.close": "1;block/iron_door/close1", "526;block.iron_door.open": "1;block/iron_door/open1", "533;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "534;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "542;block.ladder.break": "1;dig/wood1", "543;block.ladder.fall": "1;step/ladder1", "544;block.ladder.hit": "1;step/ladder1", "545;block.ladder.place": "1;dig/wood1", "546;block.ladder.step": "1;step/ladder1", "547;block.lantern.break": "1;block/lantern/break1", "548;block.lantern.fall": "1;block/lantern/break1", "549;block.lantern.hit": "1;block/lantern/place1", "550;block.lantern.place": "1;block/lantern/place1", "551;block.lantern.step": "1;block/lantern/break1", "552;block.large_amethyst_bud.break": "0.7;block/amethyst_cluster/break1", "553;block.large_amethyst_bud.place": "0.75;block/amethyst_cluster/place1", "554;block.lava.ambient": "1;liquid/lava", "555;block.lava.extinguish": "1;random/fizz", "556;block.lava.pop": "1;liquid/lavapop", "559;block.lever.click": "1;random/click", "1112;block.lily_pad.place": "1;block/waterlily/place1", "573;block.lodestone.break": "1;dig/stone1", "577;block.lodestone.fall": "1;step/stone1", "576;block.lodestone.hit": "1;step/stone1", "575;block.lodestone.place": "1;block/lodestone/place1", "574;block.lodestone.step": "1;step/stone1", "585;block.medium_amethyst_bud.break": "0.55;block/amethyst_cluster/break1", "586;block.medium_amethyst_bud.place": "0.5;block/amethyst_cluster/place1", "587;block.metal.break": "1;dig/stone1", "588;block.metal.fall": "1;step/stone1", "589;block.metal.hit": "1;step/stone1", "590;block.metal.place": "1;dig/stone1", "593;block.metal.step": "1;step/stone1", "591;block.metal_pressure_plate.click_off": "1;random/click", "592;block.metal_pressure_plate.click_on": "1;random/click", "607;block.moss.break": "0.95;block/moss/break1", "608;block.moss.fall": "1;block/moss/step1", "609;block.moss.hit": "1;block/moss/step1", "610;block.moss.place": "0.93;block/moss/break1", "611;block.moss.step": "1;block/moss/step1", "602;block.moss_carpet.break": "0.9;block/moss/break1", "603;block.moss_carpet.fall": "0.9;block/moss/step1", "604;block.moss_carpet.hit": "0.9;block/moss/step1", "605;block.moss_carpet.place": "0.9;block/moss/break1", "606;block.moss_carpet.step": "0.9;block/moss/step1", "652;block.nether_bricks.break": "0.8;block/nether_bricks/break1", "656;block.nether_bricks.fall": "1;block/nether_bricks/step1", "655;block.nether_bricks.hit": "1;block/nether_bricks/step1", "654;block.nether_bricks.place": "0.8;block/nether_bricks/break1", "653;block.nether_bricks.step": "1;block/nether_bricks/step1", "863;block.nether_gold_ore.break": "1;block/nether_ore/break1", "864;block.nether_gold_ore.fall": "1;block/nether_ore/step1", "865;block.nether_gold_ore.hit": "1;block/nether_ore/step1", "866;block.nether_gold_ore.place": "1;block/nether_ore/break1", "867;block.nether_gold_ore.step": "1;block/nether_ore/step1", "868;block.nether_ore.break": "1;block/nether_ore/break1", "869;block.nether_ore.fall": "1;block/nether_ore/step1", "870;block.nether_ore.hit": "1;block/nether_ore/step1", "871;block.nether_ore.place": "1;block/nether_ore/break1", "872;block.nether_ore.step": "1;block/nether_ore/step1", "669;block.nether_sprouts.break": "0.7;block/nether_sprouts/break1", "673;block.nether_sprouts.fall": "1;block/nether_sprouts/step1", "672;block.nether_sprouts.hit": "1;block/nether_sprouts/step1", "671;block.nether_sprouts.place": "0.7;block/nether_sprouts/break1", "670;block.nether_sprouts.step": "0.5;block/nether_sprouts/step1", "657;block.nether_wart.break": "0.9;item/plant/netherwart1", "689;block.netherite_block.break": "0.95;block/netherite/break1", "693;block.netherite_block.fall": "1;block/netherite/step1", "692;block.netherite_block.hit": "1;block/netherite/step1", "691;block.netherite_block.place": "0.95;block/netherite/break1", "690;block.netherite_block.step": "1;block/netherite/step1", "694;block.netherrack.break": "1;block/netherrack/break1", "698;block.netherrack.fall": "1;block/netherrack/step1", "697;block.netherrack.hit": "0.55;block/netherrack/step1", "696;block.netherrack.place": "1;block/netherrack/break1", "695;block.netherrack.step": "1;block/netherrack/step1", "714;block.note_block.banjo": "1;note/banjo", "699;block.note_block.basedrum": "1;note/bd", "700;block.note_block.bass": "1;note/bassattack", "701;block.note_block.bell": "1;note/bell", "713;block.note_block.bit": "1;note/bit", "702;block.note_block.chime": "1;note/icechime", "711;block.note_block.cow_bell": "1;note/cow_bell", "712;block.note_block.didgeridoo": "1;note/didgeridoo", "703;block.note_block.flute": "1;note/flute", "704;block.note_block.guitar": "1;note/guitar", "705;block.note_block.harp": "1;note/harp2", "706;block.note_block.hat": "1;note/hat", "710;block.note_block.iron_xylophone": "1;note/iron_xylophone", "707;block.note_block.pling": "1;note/pling", "708;block.note_block.snare": "1;note/snare", "709;block.note_block.xylophone": "1;note/xylobone", "664;block.nylium.break": "0.85;block/nylium/break1", "668;block.nylium.fall": "1;block/nylium/step1", "667;block.nylium.hit": "1;block/nylium/step1", "666;block.nylium.place": "0.85;block/nylium/break1", "665;block.nylium.step": "1;block/nylium/step1", "800;block.piston.contract": "1;tile/piston/in", "801;block.piston.extend": "1;tile/piston/out", "288;block.pointed_dripstone.break": "1;block/dripstone/break1", "294;block.pointed_dripstone.drip_lava": "1;block/pointed_dripstone/drip_lava1", "296;block.pointed_dripstone.drip_lava_into_cauldron": "1;block/pointed_dripstone/drip_lava_cauldron1", "295;block.pointed_dripstone.drip_water": "1;block/pointed_dripstone/drip_water1", "297;block.pointed_dripstone.drip_water_into_cauldron": "1;block/pointed_dripstone/drip_water_cauldron1", "292;block.pointed_dripstone.fall": "1;block/dripstone/step1", "291;block.pointed_dripstone.hit": "1;block/dripstone/step1", "293;block.pointed_dripstone.land": "1;block/pointed_dripstone/land1", "290;block.pointed_dripstone.place": "1;block/dripstone/break1", "289;block.pointed_dripstone.step": "1;block/dripstone/step1", "828;block.polished_deepslate.break": "1;block/deepslate/break1", "829;block.polished_deepslate.fall": "1;block/deepslate/step1", "830;block.polished_deepslate.hit": "1;block/deepslate/step1", "831;block.polished_deepslate.place": "1;block/deepslate/place1", "832;block.polished_deepslate.step": "1;block/deepslate/step1", "833;block.portal.ambient": "1;portal/portal", "834;block.portal.travel": "1;portal/travel", "835;block.portal.trigger": "1;portal/trigger", "836;block.powder_snow.break": "1;block/powder_snow/break1", "837;block.powder_snow.fall": "1;block/powder_snow/step1", "838;block.powder_snow.hit": "0.83;block/powder_snow/step1", "839;block.powder_snow.place": "1;block/powder_snow/break1", "840;block.powder_snow.step": "1;block/powder_snow/step1", "848;block.pumpkin.carve": "1;block/pumpkin/carve1", "873;block.redstone_torch.burnout": "1;random/fizz", "874;block.respawn_anchor.ambient": "1;block/respawn_anchor/ambient1", "875;block.respawn_anchor.charge": "1;block/respawn_anchor/charge1", "876;block.respawn_anchor.deplete": "1;block/respawn_anchor/deplete1", "877;block.respawn_anchor.set_spawn": "1;block/respawn_anchor/set_spawn1", "878;block.rooted_dirt.break": "1;block/rooted_dirt/break1", "879;block.rooted_dirt.fall": "1;block/rooted_dirt/step1", "880;block.rooted_dirt.hit": "0.8;block/rooted_dirt/step1", "881;block.rooted_dirt.place": "1;block/rooted_dirt/break1", "882;block.rooted_dirt.step": "1;block/rooted_dirt/step1", "391;block.roots.break": "1;block/roots/break1", "393;block.roots.place": "1;block/roots/break1", "887;block.sand.break": "1;dig/sand1", "888;block.sand.fall": "1;step/sand1", "889;block.sand.hit": "1;step/sand1", "890;block.sand.place": "1;dig/sand1", "891;block.sand.step": "1;step/sand1", "892;block.scaffolding.break": "0.8;block/scaffold/place1", "893;block.scaffolding.fall": "1;step/scaffold1", "894;block.scaffolding.hit": "1;step/scaffold1", "895;block.scaffolding.place": "0.9;block/scaffold/place1", "896;block.scaffolding.step": "1;step/scaffold1", "899;block.sculk_sensor.break": "0.9;block/sculk_sensor/break1", "897;block.sculk_sensor.clicking": "0.73;block/sculk_sensor/sculk_clicking1", "898;block.sculk_sensor.clicking_stop": "0.62;block/sculk_sensor/sculk_clicking_stop1", "900;block.sculk_sensor.fall": "1;block/sculk/step1", "901;block.sculk_sensor.hit": "1;block/sculk/step1", "902;block.sculk_sensor.place": "0.8;block/sculk_sensor/place1", "903;block.sculk_sensor.step": "1;block/sculk/step1", "911;block.shroomlight.break": "1;block/shroomlight/break1", "915;block.shroomlight.fall": "1;block/shroomlight/step1", "914;block.shroomlight.hit": "1;block/shroomlight/step1", "913;block.shroomlight.place": "1;block/shroomlight/break1", "912;block.shroomlight.step": "1;block/shroomlight/step1", "918;block.shulker_box.close": "1;block/shulker_box/close", "919;block.shulker_box.open": "1;block/shulker_box/open", "952;block.slime_block.break": "1;mob/slime/big1", "953;block.slime_block.fall": "1;mob/slime/small1", "954;block.slime_block.hit": "1;mob/slime/small1", "955;block.slime_block.place": "1;mob/slime/big1", "956;block.slime_block.step": "1;mob/slime/small1", "957;block.small_amethyst_bud.break": "0.4;block/amethyst_cluster/break1", "958;block.small_amethyst_bud.place": "0.4;block/amethyst_cluster/place1", "959;block.small_dripleaf.break": "0.9;block/big_dripleaf/break1", "960;block.small_dripleaf.fall": "0.9;block/big_dripleaf/step1", "961;block.small_dripleaf.hit": "0.9;block/big_dripleaf/step1", "962;block.small_dripleaf.place": "0.9;block/big_dripleaf/break1", "963;block.small_dripleaf.step": "0.9;block/big_dripleaf/step1", "993;block.smithing_table.use": "1;block/smithing_table/smithing_table1", "994;block.smoker.smoke": "1;block/smoker/smoker1", "996;block.snow.break": "1;dig/snow1", "997;block.snow.fall": "1;step/snow1", "1003;block.snow.hit": "1;step/snow1", "1004;block.snow.place": "1;dig/snow1", "1005;block.snow.step": "1;step/snow1", "964;block.soul_sand.break": "1;block/soul_sand/break1", "968;block.soul_sand.fall": "1;block/soul_sand/step1", "967;block.soul_sand.hit": "0.55;block/soul_sand/step1", "966;block.soul_sand.place": "1;block/soul_sand/break1", "965;block.soul_sand.step": "1;block/soul_sand/step1", "969;block.soul_soil.break": "0.8;block/soul_soil/break1", "973;block.soul_soil.fall": "1;block/soul_soil/step1", "972;block.soul_soil.hit": "0.66;block/soul_soil/step1", "971;block.soul_soil.place": "0.8;block/soul_soil/break1", "970;block.soul_soil.step": "1;block/soul_soil/step1", "975;block.spore_blossom.break": "1;block/spore_blossom/break1", "976;block.spore_blossom.fall": "1;block/spore_blossom/step1", "977;block.spore_blossom.hit": "1;block/spore_blossom/step1", "978;block.spore_blossom.place": "1;block/spore_blossom/break1", "979;block.spore_blossom.step": "1;block/spore_blossom/step1", "659;block.stem.break": "1;block/stem/break1", "663;block.stem.fall": "1;block/stem/step1", "662;block.stem.hit": "0.8;block/stem/step1", "661;block.stem.place": "0.8;block/stem/break1", "660;block.stem.step": "1;block/stem/step1", "1018;block.stone.break": "1;dig/stone1", "1021;block.stone.fall": "1;step/stone1", "1022;block.stone.hit": "1;step/stone1", "1023;block.stone.place": "1;dig/stone1", "1026;block.stone.step": "1;step/stone1", "1019;block.stone_button.click_off": "1;random/click", "1020;block.stone_button.click_on": "1;random/click", "1024;block.stone_pressure_plate.click_off": "1;random/click", "1025;block.stone_pressure_plate.click_on": "1;random/click", "1031;block.sweet_berry_bush.break": "0.8;block/sweet_berry_bush/break1", "1033;block.sweet_berry_bush.pick_berries": "1;item/sweet_berries/pick_from_bush1", "1032;block.sweet_berry_bush.place": "0.8;block/sweet_berry_bush/place1", "1045;block.tripwire.attach": "1;random/click", "1046;block.tripwire.click_off": "1;random/click", "1047;block.tripwire.click_on": "1;random/click", "1048;block.tripwire.detach": "1;random/bowhit1", "1053;block.tuff.break": "1;block/tuff/break1", "1057;block.tuff.fall": "1;block/tuff/step1", "1056;block.tuff.hit": "1;block/tuff/step1", "1055;block.tuff.place": "1;block/tuff/break1", "1054;block.tuff.step": "1;block/tuff/step1", "1107;block.vine.break": "0.9;block/vine/break1", "1108;block.vine.fall": "1;block/vine/climb1", "1109;block.vine.hit": "1;step/grass1", "1110;block.vine.place": "0.9;block/vine/break1", "1111;block.vine.step": "1;block/vine/climb1", "684;block.wart_block.break": "0.8;block/netherwart/break1", "688;block.wart_block.fall": "1;block/netherwart/step1", "687;block.wart_block.hit": "0.7;block/netherwart/step1", "686;block.wart_block.place": "0.8;block/netherwart/break1", "685;block.wart_block.step": "1;block/netherwart/step1", "1123;block.water.ambient": "1;liquid/water", "679;block.weeping_vines.break": "1;block/roots/break1", "683;block.weeping_vines.fall": "1;block/roots/break1", "682;block.weeping_vines.hit": "1;block/roots/break1", "681;block.weeping_vines.place": "1;block/roots/break1", "680;block.weeping_vines.step": "1;block/roots/step1", "1126;block.wet_grass.break": "0.8;dig/wet_grass1", "1127;block.wet_grass.fall": "1;step/wet_grass1", "1128;block.wet_grass.hit": "1;step/wet_grass1", "1129;block.wet_grass.place": "0.8;dig/wet_grass1", "1130;block.wet_grass.step": "1;step/wet_grass1", "1160;block.wood.break": "1;dig/wood1", "1163;block.wood.fall": "1;step/wood1", "1164;block.wood.hit": "1;step/wood1", "1165;block.wood.place": "1;dig/wood1", "1168;block.wood.step": "1;step/wood1", "1161;block.wooden_button.click_off": "1;random/wood_click", "1162;block.wooden_button.click_on": "1;random/wood_click", "1156;block.wooden_door.close": "1;block/wooden_door/close2", "1157;block.wooden_door.open": "1;block/wooden_door/open3", "1166;block.wooden_pressure_plate.click_off": "1;random/click", "1167;block.wooden_pressure_plate.click_on": "1;random/click", "1158;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "1159;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "1169;block.wool.break": "1;dig/cloth1", "1170;block.wool.fall": "1;step/cloth1", "1171;block.wool.hit": "1;step/cloth1", "1172;block.wool.place": "1;dig/cloth1", "1173;block.wool.step": "1;step/cloth1", "1034;enchant.thorns.hit": "1;enchant/thorns/hit1", "55;entity.armor_stand.break": "1;entity/armorstand/break1", "56;entity.armor_stand.fall": "1;dig/wood1", "57;entity.armor_stand.hit": "1;entity/armorstand/hit1", "58;entity.armor_stand.place": "1;dig/stone1", "59;entity.arrow.hit": "1;random/bowhit1", "60;entity.arrow.hit_player": "1;random/successful_hit", "61;entity.arrow.shoot": "1;random/bow", "65;entity.axolotl.attack": "0.5;mob/axolotl/attack1", "66;entity.axolotl.death": "1;mob/axolotl/death1", "67;entity.axolotl.hurt": "1;mob/axolotl/hurt1", "68;entity.axolotl.idle_air": "1;mob/axolotl/idle_air1", "69;entity.axolotl.idle_water": "1;mob/axolotl/idle1", "70;entity.axolotl.splash": "0.9;mob/dolphin/splash1", "71;entity.axolotl.swim": "1;entity/fish/swim5", "97;entity.bat.ambient": "1;mob/bat/idle1", "98;entity.bat.death": "1;mob/bat/death", "99;entity.bat.hurt": "1;mob/bat/hurt1", "100;entity.bat.loop": "1;mob/bat/loop", "101;entity.bat.takeoff": "1;mob/bat/takeoff", "106;entity.bee.death": "1;mob/bee/death1", "107;entity.bee.hurt": "1;mob/bee/hurt1", "109;entity.bee.loop": "0.6;mob/bee/loop1", "108;entity.bee.loop_aggressive": "0.8;mob/bee/aggressive1", "111;entity.bee.pollinate": "0.8;mob/bee/pollinate1", "110;entity.bee.sting": "1;mob/bee/sting", "124;entity.blaze.ambient": "1;mob/blaze/breathe1", "125;entity.blaze.burn": "1;fire/fire", "126;entity.blaze.death": "1;mob/blaze/death", "127;entity.blaze.hurt": "1;mob/blaze/hit1", "128;entity.blaze.shoot": "1;mob/ghast/fireball4", "129;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "130;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "176;entity.cat.ambient": "0.6;mob/cat/meow1", "181;entity.cat.beg_for_food": "0.7;mob/cat/beg1", "178;entity.cat.death": "0.75;mob/cat/hitt1", "179;entity.cat.eat": "1;mob/cat/eat1", "180;entity.cat.hiss": "0.4;mob/cat/hiss1", "182;entity.cat.hurt": "0.65;mob/cat/hitt1", "183;entity.cat.purr": "0.7;mob/cat/purr1", "184;entity.cat.purreow": "0.5;mob/cat/purreow1", "177;entity.cat.stray_ambient": "0.35;mob/cat/stray/idle1", "199;entity.chicken.ambient": "1;mob/chicken/say1", "200;entity.chicken.death": "1;mob/chicken/hurt1", "201;entity.chicken.egg": "1;mob/chicken/plop", "202;entity.chicken.hurt": "1;mob/chicken/hurt1", "203;entity.chicken.step": "1;mob/chicken/step1", "208;entity.cod.death": "1;entity/fish/hurt1", "209;entity.cod.flop": "0.3;entity/fish/flop1", "210;entity.cod.hurt": "1;entity/fish/hurt1", "231;entity.cow.ambient": "1;mob/cow/say1", "232;entity.cow.death": "1;mob/cow/hurt1", "233;entity.cow.hurt": "1;mob/cow/hurt1", "234;entity.cow.milk": "1;entity/cow/milk1", "235;entity.cow.step": "1;mob/cow/step1", "236;entity.creeper.death": "1;mob/creeper/death", "237;entity.creeper.hurt": "1;mob/creeper/say1", "238;entity.creeper.primed": "1;random/fuse", "267;entity.dolphin.ambient": "1;mob/dolphin/blowhole1", "268;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "269;entity.dolphin.attack": "1;mob/dolphin/attack1", "270;entity.dolphin.death": "1;mob/dolphin/death1", "271;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "272;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "273;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "274;entity.dolphin.play": "1;mob/dolphin/play1", "275;entity.dolphin.splash": "1;mob/dolphin/splash1", "276;entity.dolphin.swim": "1;entity/fish/swim5", "277;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "278;entity.donkey.angry": "1;mob/horse/donkey/angry1", "279;entity.donkey.chest": "1;mob/chicken/plop", "280;entity.donkey.death": "1;mob/horse/donkey/death", "281;entity.donkey.eat": "1;entity/horse/eat1", "282;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "325;entity.dragon_fireball.explode": "1;random/explode1", "300;entity.drowned.ambient": "0.9;mob/drowned/idle1", "301;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "302;entity.drowned.death": "0.9;mob/drowned/death1", "303;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "304;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "305;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "306;entity.drowned.shoot": "1;item/trident/throw1", "307;entity.drowned.step": "1;mob/drowned/step1", "308;entity.drowned.swim": "1;liquid/swim1", "310;entity.egg.throw": "1;random/bow", "311;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "312;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "313;entity.elder_guardian.curse": "1;mob/guardian/curse", "314;entity.elder_guardian.death": "1;mob/guardian/elder_death", "315;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "316;entity.elder_guardian.flop": "1;mob/guardian/flop1", "317;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "318;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "323;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "324;entity.ender_dragon.death": "1;mob/enderdragon/end", "326;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "327;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "328;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "329;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "330;entity.ender_eye.death": "1.3;entity/endereye/dead1", "331;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "342;entity.ender_pearl.throw": "1;random/bow", "332;entity.enderman.ambient": "1;mob/endermen/idle1", "333;entity.enderman.death": "1;mob/endermen/death", "334;entity.enderman.hurt": "1;mob/endermen/hit1", "335;entity.enderman.scream": "1;mob/endermen/scream1", "336;entity.enderman.stare": "1;mob/endermen/stare", "337;entity.enderman.teleport": "1;mob/endermen/portal", "338;entity.endermite.ambient": "1;mob/silverfish/say1", "339;entity.endermite.death": "1;mob/silverfish/kill", "340;entity.endermite.hurt": "1;mob/silverfish/hit1", "341;entity.endermite.step": "1;mob/silverfish/step1", "346;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "347;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "348;entity.evoker.celebrate": "1;mob/evocation_illager/celebrate", "349;entity.evoker.death": "1;mob/evocation_illager/death1", "351;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "352;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "353;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "354;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "350;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "355;entity.experience_bottle.throw": "1;random/bow", "356;entity.experience_orb.pickup": "1;random/orb", "360;entity.firework_rocket.blast": "1;fireworks/blast1", "361;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "362;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "363;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "364;entity.firework_rocket.launch": "1;fireworks/launch1", "365;entity.firework_rocket.shoot": "1;random/bow", "366;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "367;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "370;entity.fish.swim": "1;entity/fish/swim1", "371;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "372;entity.fishing_bobber.splash": "1;random/splash", "373;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "380;entity.fox.aggro": "0.65;mob/fox/aggro1", "381;entity.fox.ambient": "0.8;mob/fox/idle1", "382;entity.fox.bite": "0.6;mob/fox/bite1", "383;entity.fox.death": "0.9;mob/fox/death1", "384;entity.fox.eat": "0.65;mob/fox/eat1", "385;entity.fox.hurt": "0.75;mob/fox/hurt1", "386;entity.fox.screech": "0.45;mob/fox/screech1", "387;entity.fox.sleep": "0.8;mob/fox/sleep1", "388;entity.fox.sniff": "0.6;mob/fox/sniff1", "389;entity.fox.spit": "0.7;mob/fox/spit1", "390;entity.fox.teleport": "1;mob/endermen/portal", "397;entity.generic.big_fall": "1;damage/fallbig", "398;entity.generic.burn": "1;random/fizz", "399;entity.generic.death": "1;damage/hit1", "400;entity.generic.drink": "1;random/drink", "401;entity.generic.eat": "1;random/eat1", "402;entity.generic.explode": "1;random/explode1", "403;entity.generic.extinguish_fire": "1;random/fizz", "404;entity.generic.hurt": "1;damage/hit1", "405;entity.generic.small_fall": "1;damage/fallsmall", "406;entity.generic.splash": "1;liquid/splash", "407;entity.generic.swim": "1;liquid/swim1", "408;entity.ghast.ambient": "1;mob/ghast/moan1", "409;entity.ghast.death": "1;mob/ghast/death", "410;entity.ghast.hurt": "1;mob/ghast/scream1", "411;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "412;entity.ghast.shoot": "1;mob/ghast/fireball4", "413;entity.ghast.warn": "1;mob/ghast/charge", "425;entity.glow_item_frame.add_item": "1;entity/itemframe/add_item1", "426;entity.glow_item_frame.break": "1;entity/itemframe/break1", "427;entity.glow_item_frame.place": "1;entity/itemframe/place1", "428;entity.glow_item_frame.remove_item": "1;entity/itemframe/remove_item1", "429;entity.glow_item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "430;entity.glow_squid.ambient": "1;entity/glow_squid/ambient1", "431;entity.glow_squid.death": "1;entity/glow_squid/death1", "432;entity.glow_squid.hurt": "1;entity/glow_squid/hurt1", "433;entity.glow_squid.squirt": "1;entity/glow_squid/squirt1", "434;entity.goat.ambient": "0.82;mob/goat/idle1", "435;entity.goat.death": "0.65;mob/goat/death1", "436;entity.goat.eat": "1;mob/goat/eat1", "437;entity.goat.hurt": "0.65;mob/goat/hurt1", "438;entity.goat.long_jump": "0.8;mob/goat/jump1", "439;entity.goat.milk": "1;mob/mooshroom/milk1", "440;entity.goat.prepare_ram": "0.8;mob/goat/pre_ram1", "441;entity.goat.ram_impact": "0.8;mob/goat/impact1", "442;entity.goat.screaming.ambient": "0.82;mob/goat/idle1", "443;entity.goat.screaming.death": "0.65;mob/goat/screaming_death1", "444;entity.goat.screaming.eat": "1;mob/goat/eat1", "445;entity.goat.screaming.hurt": "0.65;mob/goat/screaming_hurt1", "446;entity.goat.screaming.long_jump": "0.8;mob/goat/jump1", "447;entity.goat.screaming.milk": "1;mob/goat/screaming_milk1", "448;entity.goat.screaming.prepare_ram": "0.8;mob/goat/screaming_pre_ram1", "449;entity.goat.screaming.ram_impact": "0.8;mob/goat/impact1", "450;entity.goat.step": "1;mob/goat/step1", "463;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "464;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "465;entity.guardian.attack": "1;mob/guardian/attack_loop", "466;entity.guardian.death": "1;mob/guardian/guardian_death", "467;entity.guardian.death_land": "1;mob/guardian/land_death", "468;entity.guardian.flop": "1;mob/guardian/flop1", "469;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "470;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "477;entity.hoglin.ambient": "0.65;mob/hoglin/idle1", "478;entity.hoglin.angry": "1;mob/hoglin/angry1", "479;entity.hoglin.attack": "0.8;mob/hoglin/attack1", "480;entity.hoglin.converted_to_zombified": "0.8;mob/hoglin/converted1", "481;entity.hoglin.death": "0.9;mob/hoglin/death1", "482;entity.hoglin.hurt": "0.8;mob/hoglin/hurt1", "483;entity.hoglin.retreat": "0.8;mob/hoglin/idle11", "484;entity.hoglin.step": "1;mob/hoglin/step1", "493;entity.horse.ambient": "1;mob/horse/idle1", "494;entity.horse.angry": "1;mob/horse/angry1", "495;entity.horse.armor": "1;mob/horse/armor", "496;entity.horse.breathe": "1;mob/horse/breathe1", "497;entity.horse.death": "1;mob/horse/death", "498;entity.horse.eat": "1;entity/horse/eat1", "499;entity.horse.gallop": "1;mob/horse/gallop1", "500;entity.horse.hurt": "1;mob/horse/hit1", "501;entity.horse.jump": "1;mob/horse/jump", "502;entity.horse.land": "1;mob/horse/land", "503;entity.horse.saddle": "1;mob/horse/leather", "504;entity.horse.step": "1;mob/horse/soft1", "505;entity.horse.step_wood": "1;mob/horse/wood1", "506;entity.hostile.big_fall": "1;damage/fallbig", "507;entity.hostile.death": "1;damage/hit1", "508;entity.hostile.hurt": "1;damage/hit1", "509;entity.hostile.small_fall": "1;damage/fallsmall", "510;entity.hostile.splash": "1;liquid/splash", "511;entity.hostile.swim": "1;liquid/swim1", "512;entity.husk.ambient": "1;mob/husk/idle1", "513;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "514;entity.husk.death": "1;mob/husk/death1", "515;entity.husk.hurt": "1;mob/husk/hurt1", "516;entity.husk.step": "1;mob/husk/step1", "517;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "518;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "519;entity.illusioner.death": "1;mob/illusion_illager/death1", "520;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "521;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "522;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "523;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "527;entity.iron_golem.attack": "1;mob/irongolem/throw", "528;entity.iron_golem.damage": "0.8;mob/irongolem/damage1", "529;entity.iron_golem.death": "1;mob/irongolem/death", "530;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "531;entity.iron_golem.repair": "1;mob/irongolem/repair", "532;entity.iron_golem.step": "1;mob/irongolem/walk1", "540;entity.item.break": "1;random/break", "541;entity.item.pickup": "1;random/pop", "535;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "536;entity.item_frame.break": "1;entity/itemframe/break1", "537;entity.item_frame.place": "1;entity/itemframe/place1", "538;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "539;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "557;entity.leash_knot.break": "1;entity/leashknot/break1", "558;entity.leash_knot.place": "1;entity/leashknot/place1", "560;entity.lightning_bolt.impact": "1;random/explode1", "561;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "562;entity.lingering_potion.throw": "1;random/bow", "563;entity.llama.ambient": "1;mob/llama/idle1", "564;entity.llama.angry": "1;mob/llama/angry1", "565;entity.llama.chest": "1;mob/chicken/plop", "566;entity.llama.death": "1;mob/llama/death1", "567;entity.llama.eat": "1;mob/llama/eat1", "568;entity.llama.hurt": "1;mob/llama/hurt1", "569;entity.llama.spit": "1;mob/llama/spit1", "570;entity.llama.step": "1;mob/llama/step1", "571;entity.llama.swag": "1;mob/llama/swag", "579;entity.magma_cube.death": "1;mob/slime/big1", "572;entity.magma_cube.death_small": "1;mob/slime/small1", "580;entity.magma_cube.hurt": "1;mob/slime/big1", "581;entity.magma_cube.hurt_small": "1;mob/slime/small1", "582;entity.magma_cube.jump": "1;mob/magmacube/jump1", "583;entity.magma_cube.squish": "1;mob/magmacube/big1", "584;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "595;entity.minecart.inside": "1;minecart/inside", "594;entity.minecart.inside.underwater": "1;minecart/inside_underwater1", "596;entity.minecart.riding": "1;minecart/base", "597;entity.mooshroom.convert": "0.75;mob/mooshroom/convert1", "598;entity.mooshroom.eat": "1;mob/mooshroom/eat1", "599;entity.mooshroom.milk": "1;mob/mooshroom/milk1", "601;entity.mooshroom.shear": "1;mob/sheep/shear", "600;entity.mooshroom.suspicious_milk": "1;mob/mooshroom/milk1", "612;entity.mule.ambient": "1;mob/horse/donkey/idle1", "613;entity.mule.angry": "1;mob/horse/donkey/angry1", "614;entity.mule.chest": "1;mob/chicken/plop", "615;entity.mule.death": "1;mob/horse/donkey/death", "616;entity.mule.eat": "1;entity/horse/eat1", "617;entity.mule.hurt": "1;mob/horse/donkey/hit1", "716;entity.ocelot.ambient": "0.3;mob/cat/ocelot/idle1", "717;entity.ocelot.death": "0.45;mob/cat/ocelot/death1", "715;entity.ocelot.hurt": "0.45;mob/cat/hitt1", "718;entity.painting.break": "1;entity/painting/break1", "719;entity.painting.place": "1;entity/painting/place1", "727;entity.panda.aggressive_ambient": "1;mob/panda/aggressive/aggressive1", "722;entity.panda.ambient": "1;mob/panda/idle1", "730;entity.panda.bite": "1;mob/panda/bite1", "726;entity.panda.cant_breed": "1;mob/panda/cant_breed1", "723;entity.panda.death": "0.82;mob/panda/death1", "724;entity.panda.eat": "1;mob/panda/eat1", "729;entity.panda.hurt": "0.82;mob/panda/hurt1", "720;entity.panda.pre_sneeze": "1;mob/panda/pre_sneeze", "721;entity.panda.sneeze": "1;mob/panda/sneeze1", "725;entity.panda.step": "1;mob/panda/step1", "728;entity.panda.worried_ambient": "1;mob/panda/pant2", "731;entity.parrot.ambient": "0.7;mob/parrot/idle1", "732;entity.parrot.death": "1;mob/parrot/death1", "733;entity.parrot.eat": "1;mob/parrot/eat1", "734;entity.parrot.fly": "1;mob/parrot/fly1", "735;entity.parrot.hurt": "1;mob/parrot/hurt1", "736;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "737;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "738;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "739;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "740;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "741;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "742;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "743;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "744;entity.parrot.imitate.guardian": "0.4;entity.guardian.ambient", "745;entity.parrot.imitate.hoglin": "0.6;entity.hoglin.ambient", "746;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "747;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "748;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "749;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "750;entity.parrot.imitate.piglin": "0.6;entity.piglin.ambient", "751;entity.parrot.imitate.piglin_brute": "0.6;entity.piglin_brute.ambient", "752;entity.parrot.imitate.pillager": "0.4;entity.pillager.ambient", "753;entity.parrot.imitate.ravager": "0.2;entity.ravager.ambient", "754;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "755;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "756;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "757;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "758;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "759;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "760;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "761;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "762;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "763;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "764;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "765;entity.parrot.imitate.zoglin": "0.6;entity.zoglin.ambient", "766;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "767;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "768;entity.parrot.step": "1;mob/parrot/step1", "769;entity.phantom.ambient": "0.8;mob/phantom/idle1", "770;entity.phantom.bite": "1;mob/phantom/bite1", "771;entity.phantom.death": "1;mob/phantom/death1", "772;entity.phantom.flap": "0.9;mob/phantom/flap1", "773;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "774;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "775;entity.pig.ambient": "1;mob/pig/say1", "776;entity.pig.death": "1;mob/pig/death", "777;entity.pig.hurt": "1;mob/pig/say1", "778;entity.pig.saddle": "1;mob/horse/leather", "779;entity.pig.step": "1;mob/pig/step1", "780;entity.piglin.admiring_item": "0.8;mob/piglin/admire1", "781;entity.piglin.ambient": "0.66;mob/piglin/idle1", "782;entity.piglin.angry": "0.7;mob/piglin/angry1", "783;entity.piglin.celebrate": "0.8;mob/piglin/celebrate1", "789;entity.piglin.converted_to_zombified": "1;mob/piglin/converted1", "784;entity.piglin.death": "0.7;mob/piglin/death1", "786;entity.piglin.hurt": "0.7;mob/piglin/hurt1", "785;entity.piglin.jealous": "0.8;mob/piglin/jealous1", "787;entity.piglin.retreat": "0.65;mob/piglin/retreat1", "788;entity.piglin.step": "0.75;mob/piglin/step1", "790;entity.piglin_brute.ambient": "0.9;mob/piglin_brute/idle1", "791;entity.piglin_brute.angry": "0.9;mob/piglin_brute/angry1", "795;entity.piglin_brute.converted_to_zombified": "1;mob/piglin/converted1", "792;entity.piglin_brute.death": "0.8;mob/piglin_brute/death1", "793;entity.piglin_brute.hurt": "0.64;mob/piglin_brute/hurt1", "794;entity.piglin_brute.step": "0.75;mob/piglin_brute/step1", "796;entity.pillager.ambient": "1;mob/pillager/idle1", "797;entity.pillager.celebrate": "1;mob/pillager/celebrate1", "798;entity.pillager.death": "1;mob/pillager/death1", "799;entity.pillager.hurt": "1;mob/pillager/hurt1", "802;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "803;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "804;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "805;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "806;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "807;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "808;entity.player.big_fall": "1;damage/fallbig", "809;entity.player.breath": "1;random/breath", "810;entity.player.burp": "1;random/burp", "811;entity.player.death": "1;damage/hit1", "812;entity.player.hurt": "1;damage/hit1", "813;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "814;entity.player.hurt_freeze": "1;entity/player/hurt/freeze_hurt1", "815;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "816;entity.player.hurt_sweet_berry_bush": "1;entity/player/hurt/berrybush_hurt1", "817;entity.player.levelup": "1;random/levelup", "818;entity.player.small_fall": "1;damage/fallsmall", "819;entity.player.splash": "1;liquid/splash", "820;entity.player.splash.high_speed": "1;liquid/heavy_splash", "821;entity.player.swim": "1;liquid/swim5", "822;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "823;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "824;entity.polar_bear.death": "1;mob/polarbear/death1", "825;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "826;entity.polar_bear.step": "1;mob/polarbear/step1", "827;entity.polar_bear.warning": "1;mob/polarbear/warning1", "842;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "843;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "844;entity.puffer_fish.death": "1;entity/pufferfish/death1", "845;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "846;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "847;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "849;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "850;entity.rabbit.attack": "1;entity/rabbit/attack1", "851;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "852;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "853;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "855;entity.ravager.ambient": "1;mob/ravager/idle1", "856;entity.ravager.attack": "1;mob/ravager/bite1", "857;entity.ravager.celebrate": "1;mob/ravager/celebrate1", "858;entity.ravager.death": "1;mob/ravager/death1", "859;entity.ravager.hurt": "1;mob/ravager/hurt1", "862;entity.ravager.roar": "1;mob/ravager/roar1", "860;entity.ravager.step": "1;mob/ravager/step1", "861;entity.ravager.stunned": "1;mob/ravager/stun1", "884;entity.salmon.death": "1;entity/fish/hurt1", "885;entity.salmon.flop": "0.3;entity/fish/flop1", "886;entity.salmon.hurt": "1;entity/fish/hurt1", "904;entity.sheep.ambient": "1;mob/sheep/say1", "905;entity.sheep.death": "1;mob/sheep/say1", "906;entity.sheep.hurt": "1;mob/sheep/say1", "907;entity.sheep.shear": "1;mob/sheep/shear", "908;entity.sheep.step": "1;mob/sheep/step1", "917;entity.shulker.ambient": "1;entity/shulker/ambient1", "922;entity.shulker.close": "1;entity/shulker/close1", "923;entity.shulker.death": "1;entity/shulker/death1", "924;entity.shulker.hurt": "1;entity/shulker/hurt1", "925;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "926;entity.shulker.open": "1;entity/shulker/open1", "927;entity.shulker.shoot": "1;entity/shulker/shoot1", "928;entity.shulker.teleport": "1;mob/endermen/portal", "920;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "921;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "929;entity.silverfish.ambient": "1;mob/silverfish/say1", "930;entity.silverfish.death": "1;mob/silverfish/kill", "931;entity.silverfish.hurt": "1;mob/silverfish/hit1", "932;entity.silverfish.step": "1;mob/silverfish/step1", "933;entity.skeleton.ambient": "1;mob/skeleton/say1", "934;entity.skeleton.converted_to_stray": "1;mob/stray/convert1", "935;entity.skeleton.death": "1;mob/skeleton/death", "944;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "945;entity.skeleton.shoot": "1;random/bow", "946;entity.skeleton.step": "1;mob/skeleton/step1", "936;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "940;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "937;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "941;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "938;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "942;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "943;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "939;entity.skeleton_horse.swim": "0.4;liquid/swim9", "947;entity.slime.attack": "1;mob/slime/attack1", "948;entity.slime.death": "1;mob/slime/big1", "989;entity.slime.death_small": "1;mob/slime/small1", "949;entity.slime.hurt": "1;mob/slime/big1", "990;entity.slime.hurt_small": "1;mob/slime/small1", "950;entity.slime.jump": "1;mob/slime/big1", "991;entity.slime.jump_small": "1;mob/slime/small1", "951;entity.slime.squish": "1;mob/slime/big1", "992;entity.slime.squish_small": "1;mob/slime/small1", "999;entity.snow_golem.death": "1;entity/snowman/death1", "1000;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "1002;entity.snow_golem.shear": "1;mob/sheep/shear", "1001;entity.snow_golem.shoot": "1;random/bow", "995;entity.snowball.throw": "1;random/bow", "1006;entity.spider.ambient": "1;mob/spider/say1", "1007;entity.spider.death": "1;mob/spider/death", "1008;entity.spider.hurt": "1;mob/spider/say1", "1009;entity.spider.step": "1;mob/spider/step1", "1010;entity.splash_potion.break": "1;random/glass1", "1011;entity.splash_potion.throw": "1;random/bow", "1014;entity.squid.ambient": "1;entity/squid/ambient1", "1015;entity.squid.death": "1;entity/squid/death1", "1016;entity.squid.hurt": "1;entity/squid/hurt1", "1017;entity.squid.squirt": "1;entity/squid/squirt1", "1027;entity.stray.ambient": "1;mob/stray/idle1", "1028;entity.stray.death": "1;mob/stray/death1", "1029;entity.stray.hurt": "1;mob/stray/hurt1", "1030;entity.stray.step": "1;mob/stray/step1", "980;entity.strider.ambient": "1;mob/strider/idle1", "983;entity.strider.death": "1;mob/strider/death1", "987;entity.strider.eat": "1;mob/strider/eat1", "981;entity.strider.happy": "1;mob/strider/happy1", "984;entity.strider.hurt": "1;mob/strider/hurt1", "982;entity.strider.retreat": "0.8;mob/strider/retreat1", "988;entity.strider.saddle": "1;mob/horse/leather", "985;entity.strider.step": "0.25;mob/strider/step1", "986;entity.strider.step_lava": "0.2;mob/strider/step_lava1", "1035;entity.tnt.primed": "1;random/fuse", "1050;entity.tropical_fish.death": "1;entity/fish/hurt1", "1051;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "1052;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "1058;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "1059;entity.turtle.death": "1;mob/turtle/death1", "1060;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "1061;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "1062;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "1063;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "1064;entity.turtle.hurt": "1;mob/turtle/hurt1", "1065;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "1066;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "1067;entity.turtle.shamble": "1;mob/turtle/walk1", "1068;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "1069;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "1079;entity.vex.ambient": "1;mob/vex/idle1", "1080;entity.vex.charge": "1;mob/vex/charge1", "1081;entity.vex.death": "1;mob/vex/death1", "1082;entity.vex.hurt": "1;mob/vex/hurt1", "1083;entity.villager.ambient": "1;mob/villager/idle1", "1084;entity.villager.celebrate": "1;mob/villager/yes1", "1085;entity.villager.death": "1;mob/villager/death", "1086;entity.villager.hurt": "1;mob/villager/hit1", "1087;entity.villager.no": "1;mob/villager/no1", "1088;entity.villager.trade": "1;mob/villager/haggle1", "1090;entity.villager.work_armorer": "1;block/blastfurnace/blastfurnace1", "1091;entity.villager.work_butcher": "1;block/smoker/smoker1", "1092;entity.villager.work_cartographer": "1;ui/cartography_table/drawmap1", "1093;entity.villager.work_cleric": "1;block/brewing_stand/brew1", "1094;entity.villager.work_farmer": "1;block/composter/fill_success1", "1095;entity.villager.work_fisherman": "1;block/barrel/open1", "1096;entity.villager.work_fletcher": "1;block/fletching_table/fletching_table1", "1097;entity.villager.work_leatherworker": "0.9;block/cauldron/dye1", "1098;entity.villager.work_librarian": "2;item/book/open_flip1", "1099;entity.villager.work_mason": "1;ui/stonecutter/cut1", "1100;entity.villager.work_shepherd": "0.5;ui/loom/take_result1", "1101;entity.villager.work_toolsmith": "1;block/smithing_table/smithing_table1", "1102;entity.villager.work_weaponsmith": "0.5;block/grindstone/grindstone1", "1089;entity.villager.yes": "1;mob/villager/yes1", "1103;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "1104;entity.vindicator.celebrate": "1;mob/vindication_illager/celebrate1", "1105;entity.vindicator.death": "1;mob/vindication_illager/death1", "1106;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "1113;entity.wandering_trader.ambient": "1;mob/wandering_trader/idle1", "1114;entity.wandering_trader.death": "1;mob/wandering_trader/death", "1115;entity.wandering_trader.disappeared": "0.8;mob/wandering_trader/disappeared1", "1116;entity.wandering_trader.drink_milk": "1;mob/wandering_trader/drink_milk1", "1117;entity.wandering_trader.drink_potion": "0.7;mob/wandering_trader/drink_potion", "1118;entity.wandering_trader.hurt": "1;mob/wandering_trader/hurt1", "1119;entity.wandering_trader.no": "1;mob/wandering_trader/no1", "1120;entity.wandering_trader.reappeared": "0.8;mob/wandering_trader/reappeared1", "1121;entity.wandering_trader.trade": "1;mob/wandering_trader/haggle1", "1122;entity.wandering_trader.yes": "1;mob/wandering_trader/yes1", "1131;entity.witch.ambient": "1;entity/witch/ambient1", "1132;entity.witch.celebrate": "1;entity/witch/ambient1", "1133;entity.witch.death": "1;entity/witch/death1", "1134;entity.witch.drink": "1;entity/witch/drink1", "1135;entity.witch.hurt": "1;entity/witch/hurt1", "1136;entity.witch.throw": "1;entity/witch/throw1", "1137;entity.wither.ambient": "1;mob/wither/idle1", "1138;entity.wither.break_block": "1;mob/zombie/woodbreak", "1139;entity.wither.death": "1;mob/wither/death", "1140;entity.wither.hurt": "1;mob/wither/hurt1", "1141;entity.wither.shoot": "1;mob/wither/shoot", "1146;entity.wither.spawn": "1;mob/wither/spawn", "1142;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "1143;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "1144;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "1145;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "1147;entity.wolf.ambient": "1;mob/wolf/bark1", "1148;entity.wolf.death": "1;mob/wolf/death", "1149;entity.wolf.growl": "1;mob/wolf/growl1", "1150;entity.wolf.howl": "1;mob/wolf/howl1", "1151;entity.wolf.hurt": "1;mob/wolf/hurt1", "1152;entity.wolf.pant": "1;mob/wolf/panting", "1153;entity.wolf.shake": "1;mob/wolf/shake", "1154;entity.wolf.step": "1;mob/wolf/step1", "1155;entity.wolf.whine": "1;mob/wolf/whine", "1174;entity.zoglin.ambient": "0.9;mob/zoglin/idle1", "1175;entity.zoglin.angry": "0.8;mob/zoglin/angry1", "1176;entity.zoglin.attack": "0.8;mob/zoglin/attack1", "1177;entity.zoglin.death": "0.93;mob/zoglin/death1", "1178;entity.zoglin.hurt": "0.83;mob/zoglin/hurt1", "1179;entity.zoglin.step": "1;mob/zoglin/step1", "1180;entity.zombie.ambient": "1;mob/zombie/say1", "1182;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "1181;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "1183;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "1184;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "1185;entity.zombie.death": "1;mob/zombie/death", "1186;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "1190;entity.zombie.hurt": "1;mob/zombie/hurt1", "1191;entity.zombie.infect": "1;mob/zombie/infect", "1196;entity.zombie.step": "1;mob/zombie/step1", "1187;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "1188;entity.zombie_horse.death": "1;mob/horse/zombie/death", "1189;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "1197;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "1198;entity.zombie_villager.converted": "1;mob/zombie/unfect", "1199;entity.zombie_villager.cure": "1;mob/zombie/remedy", "1200;entity.zombie_villager.death": "1;mob/zombie_villager/death", "1201;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "1202;entity.zombie_villager.step": "1;mob/zombie/step1", "1192;entity.zombified_piglin.ambient": "1;mob/zombified_piglin/zpig1", "1193;entity.zombified_piglin.angry": "1;mob/zombified_piglin/zpigangry1", "1194;entity.zombified_piglin.death": "1;mob/zombified_piglin/zpigdeath", "1195;entity.zombified_piglin.hurt": "1;mob/zombified_piglin/zpighurt1", "854;event.raid.horn": "0.01;event/raid/raidhorn_01", "46;item.armor.equip_chain": "1;item/armor/equip_chain1", "47;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "48;item.armor.equip_elytra": "1;item/armor/equip_leather1", "49;item.armor.equip_generic": "1;item/armor/equip_generic1", "50;item.armor.equip_gold": "1;item/armor/equip_gold1", "51;item.armor.equip_iron": "1;item/armor/equip_iron1", "52;item.armor.equip_leather": "1;item/armor/equip_leather1", "53;item.armor.equip_netherite": "0.8;item/armor/equip_netherite1", "54;item.armor.equip_turtle": "1;mob/turtle/armor", "63;item.axe.scrape": "1;item/axe/scrape1", "62;item.axe.strip": "0.9;item/axe/strip1", "64;item.axe.wax_off": "1;item/axe/wax_off1", "136;item.bone_meal.use": "1;item/bonemeal/bonemeal1", "137;item.book.page_turn": "2;item/book/open_flip1", "138;item.book.put": "1;item/book/close_put1", "140;item.bottle.empty": "1;item/bottle/empty1", "141;item.bottle.fill": "1;item/bottle/fill1", "142;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "149;item.bucket.empty": "1;item/bucket/empty1", "150;item.bucket.empty_axolotl": "1;item/bucket/empty_fish1", "151;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "152;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "153;item.bucket.empty_powder_snow": "1;item/bucket/empty_powder_snow1", "154;item.bucket.fill": "1;item/bucket/fill1", "155;item.bucket.fill_axolotl": "1;item/bucket/fill_axolotl1", "156;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "157;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "158;item.bucket.fill_powder_snow": "1;item/bucket/fill_powder_snow1", "159;item.bundle.drop_contents": "1;item/bundle/drop_contents1", "160;item.bundle.insert": "1;item/bundle/insert1", "161;item.bundle.remove_one": "1;item/bundle/remove_one1", "206;item.chorus_fruit.teleport": "1;mob/endermen/portal", "240;item.crop.plant": "0.45;item/plant/crop1", "241;item.crossbow.hit": "1;random/bowhit1", "242;item.crossbow.loading_end": "1;item/crossbow/loading_end", "243;item.crossbow.loading_middle": "0.65;item/crossbow/loading_middle1", "244;item.crossbow.loading_start": "0.3;item/crossbow/loading_start", "245;item.crossbow.quick_charge_1": "0.65;item/crossbow/quick_charge/quick1_1", "246;item.crossbow.quick_charge_2": "0.65;item/crossbow/quick_charge/quick2_1", "247;item.crossbow.quick_charge_3": "0.65;item/crossbow/quick_charge/quick3_1", "248;item.crossbow.shoot": "0.8;item/crossbow/shoot1", "309;item.dye.use": "1;item/dye/dye", "319;item.elytra.flying": "0.6;item/elytra/elytra_loop", "359;item.firecharge.use": "1;mob/ghast/fireball4", "374;item.flintandsteel.use": "1;fire/ignite", "424;item.glow_ink_sac.use": "1;item/ink_sac/ink_sac1", "476;item.hoe.till": "1;item/hoe/till1", "492;item.honey_bottle.drink": "1;item/bottle/drink_honey1", "491;item.honeycomb.wax_on": "1;item/honeycomb/wax_on1", "524;item.ink_sac.use": "1;item/ink_sac/ink_sac1", "578;item.lodestone_compass.lock": "1;block/lodestone/lock1", "658;item.nether_wart.plant": "0.9;item/plant/netherwart1", "909;item.shield.block": "1;item/shield/block1", "910;item.shield.break": "1;random/break", "916;item.shovel.flatten": "1;item/shovel/flatten1", "1013;item.spyglass.stop_using": "0.5;item/spyglass/stop", "1012;item.spyglass.use": "0.5;item/spyglass/use", "1036;item.totem.use": "1;item/totem/use_totem", "1037;item.trident.hit": "1;item/trident/pierce1", "1038;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "1039;item.trident.return": "0.8;item/trident/return1", "1040;item.trident.riptide_1": "1;item/trident/riptide1", "1041;item.trident.riptide_2": "1;item/trident/riptide2", "1042;item.trident.riptide_3": "1;item/trident/riptide3", "1043;item.trident.throw": "1;item/trident/throw1", "1044;item.trident.thunder": "1;item/trident/thunder1", "618;music.creative": "1;music.game", "619;music.credits": "1;music/game/end/credits", "634;music.dragon": "1;music/game/end/boss", "635;music.end": "1;music/game/end/end", "636;music.game": "1;music/game/calm1", "637;music.menu": "1;music/game/infinite_amethyst", "638;music.nether.basalt_deltas": "1;music/game/nether/nether1", "639;music.nether.crimson_forest": "0.5;music/game/nether/crimson_forest/chrysopoeia", "645;music.nether.nether_wastes": "1;music/game/nether/nether1", "648;music.nether.soul_sand_valley": "1;music/game/nether/nether1", "640;music.overworld.dripstone_caves": "1;music/game/an_ordinary_day", "646;music.overworld.frozen_peaks": "1;music/game/hal1", "641;music.overworld.grove": "1;music/game/calm1", "642;music.overworld.jagged_peaks": "0.4;music/game/floating_dream", "643;music.overworld.lush_caves": "1;music/game/an_ordinary_day", "644;music.overworld.meadow": "1;music/game/hal1", "647;music.overworld.snowy_slopes": "0.4;music/game/an_ordinary_day", "649;music.overworld.stony_peaks": "1;music/game/hal1", "651;music.under_water": "0.4;music/game/water/axolotl", "620;music_disc.11": "1;records/11", "621;music_disc.13": "1;records/13", "622;music_disc.blocks": "1;records/blocks", "623;music_disc.cat": "1;records/cat", "624;music_disc.chirp": "1;records/chirp", "625;music_disc.far": "1;records/far", "626;music_disc.mall": "1;records/mall", "627;music_disc.mellohi": "1;records/mellohi", "633;music_disc.otherside": "1;records/otherside", "628;music_disc.pigstep": "1;records/pigstep", "629;music_disc.stal": "1;records/stal", "630;music_disc.strad": "1;records/strad", "631;music_disc.wait": "1;records/wait", "632;music_disc.ward": "1;records/ward", "974;particle.soul_escape": "0.25;enchant/soulspeed/soulspeed1", "1070;ui.button.click": "1;random/click_stereo", "1073;ui.cartography_table.take_result": "1;ui/cartography_table/drawmap1", "1071;ui.loom.select_pattern": "1;ui/loom/select_pattern1", "1072;ui.loom.take_result": "0.5;ui/loom/take_result1", "1075;ui.stonecutter.select_recipe": "1;random/click", "1074;ui.stonecutter.take_result": "1;ui/stonecutter/cut1", "1076;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "1077;ui.toast.in": "0.4;ui/toast/in", "1078;ui.toast.out": "0.4;ui/toast/out", "1124;weather.rain": "1;ambient/weather/rain1", "1125;weather.rain.above": "1;ambient/weather/rain1" }, "1.17.1": { "1;ambient.basalt_deltas.additions": "0.35;ambient/nether/basalt_deltas/debris1", "2;ambient.basalt_deltas.loop": "0.5;ambient/nether/basalt_deltas/ambience", "3;ambient.basalt_deltas.mood": "1;ambient/nether/nether_wastes/mood1", "0;ambient.cave": "1;ambient/cave/cave1", "4;ambient.crimson_forest.additions": "0.4;ambient/nether/crimson_forest/particles1", "5;ambient.crimson_forest.loop": "0.74;ambient/nether/crimson_forest/ambience", "6;ambient.crimson_forest.mood": "1;ambient/nether/crimson_forest/mood1", "7;ambient.nether_wastes.additions": "0.67;ambient/nether/nether_wastes/addition4", "8;ambient.nether_wastes.loop": "0.77;ambient/nether/nether_wastes/ambience", "9;ambient.nether_wastes.mood": "1;ambient/nether/nether_wastes/mood1", "10;ambient.soul_sand_valley.additions": "0.3;ambient/nether/soulsand_valley/wind1", "11;ambient.soul_sand_valley.loop": "0.85;ambient/nether/soulsand_valley/ambience", "12;ambient.soul_sand_valley.mood": "1;ambient/nether/soulsand_valley/mood1", "16;ambient.underwater.enter": "0.8;ambient/underwater/enter1", "17;ambient.underwater.exit": "0.5;ambient/underwater/exit1", "18;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "19;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "20;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "21;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "13;ambient.warped_forest.additions": "0.4;ambient/nether/crimson_forest/particles1", "14;ambient.warped_forest.loop": "0.71;ambient/nether/warped_forest/ambience", "15;ambient.warped_forest.mood": "1;ambient/nether/warped_forest/creak1", "22;block.amethyst_block.break": "1;block/amethyst/break1", "23;block.amethyst_block.chime": "0.2;block/amethyst/shimmer", "24;block.amethyst_block.fall": "1;block/amethyst/step1", "25;block.amethyst_block.hit": "1;block/amethyst/step1", "26;block.amethyst_block.place": "1;block/amethyst/place1", "27;block.amethyst_block.step": "1;block/amethyst/step1", "28;block.amethyst_cluster.break": "0.8;block/amethyst_cluster/break1", "29;block.amethyst_cluster.fall": "1;block/amethyst/step1", "30;block.amethyst_cluster.hit": "1;block/amethyst/step1", "31;block.amethyst_cluster.place": "0.9;block/amethyst_cluster/place1", "32;block.amethyst_cluster.step": "1;block/amethyst/step1", "33;block.ancient_debris.break": "1;block/ancient_debris/break1", "37;block.ancient_debris.fall": "1;block/basalt/step1", "36;block.ancient_debris.hit": "1;block/basalt/step1", "35;block.ancient_debris.place": "1;block/ancient_debris/break1", "34;block.ancient_debris.step": "1;block/basalt/step1", "38;block.anvil.break": "1;dig/stone1", "39;block.anvil.destroy": "1;random/anvil_break", "40;block.anvil.fall": "1;step/stone1", "41;block.anvil.hit": "1;step/stone1", "42;block.anvil.land": "1;random/anvil_land", "43;block.anvil.place": "1;random/anvil_land", "44;block.anvil.step": "1;step/stone1", "45;block.anvil.use": "1;random/anvil_use", "72;block.azalea.break": "1;block/azalea/break1", "73;block.azalea.fall": "1;block/azalea/step1", "74;block.azalea.hit": "1;block/azalea/step1", "75;block.azalea.place": "1;block/azalea/break1", "76;block.azalea.step": "1;block/azalea/step1", "77;block.azalea_leaves.break": "0.85;block/azalea_leaves/break1", "78;block.azalea_leaves.fall": "1;block/azalea_leaves/step1", "79;block.azalea_leaves.hit": "0.8;block/azalea_leaves/step1", "80;block.azalea_leaves.place": "0.85;block/azalea_leaves/break1", "81;block.azalea_leaves.step": "0.85;block/azalea_leaves/step1", "82;block.bamboo.break": "0.8;block/bamboo/place1", "83;block.bamboo.fall": "1;block/bamboo/step1", "84;block.bamboo.hit": "1;block/bamboo/step1", "85;block.bamboo.place": "0.8;block/bamboo/place1", "86;block.bamboo.step": "1;block/bamboo/step1", "87;block.bamboo_sapling.break": "0.9;block/bamboo/sapling_place1", "88;block.bamboo_sapling.hit": "0.8;block/bamboo/sapling_hit1", "89;block.bamboo_sapling.place": "0.85;block/bamboo/sapling_place1", "90;block.barrel.close": "1;block/barrel/close", "91;block.barrel.open": "1;block/barrel/open1", "92;block.basalt.break": "1;block/basalt/break1", "96;block.basalt.fall": "1;block/basalt/step1", "95;block.basalt.hit": "1;block/basalt/step1", "94;block.basalt.place": "1;block/basalt/break1", "93;block.basalt.step": "1;block/basalt/step1", "102;block.beacon.activate": "1;block/beacon/activate", "103;block.beacon.ambient": "0.9;block/beacon/ambient", "104;block.beacon.deactivate": "1;block/beacon/deactivate", "105;block.beacon.power_select": "1;block/beacon/power1", "112;block.beehive.drip": "0.3;block/beehive/drip1", "113;block.beehive.enter": "1;block/beehive/enter", "114;block.beehive.exit": "1;block/beehive/exit", "115;block.beehive.shear": "0.8;block/beehive/shear", "116;block.beehive.work": "0.6;block/beehive/work1", "118;block.bell.resonate": "1;block/bell/resonate", "117;block.bell.use": "12;block/bell/bell_use01", "119;block.big_dripleaf.break": "1;block/big_dripleaf/break1", "120;block.big_dripleaf.fall": "1;block/big_dripleaf/step1", "121;block.big_dripleaf.hit": "1;block/big_dripleaf/step1", "122;block.big_dripleaf.place": "1;block/big_dripleaf/break1", "123;block.big_dripleaf.step": "1;block/big_dripleaf/step1", "295;block.big_dripleaf.tilt_down": "1;block/big_dripleaf/tilt_down1", "296;block.big_dripleaf.tilt_up": "1;block/big_dripleaf/tilt_up1", "139;block.blastfurnace.fire_crackle": "1;block/blastfurnace/blastfurnace1", "131;block.bone_block.break": "0.9;block/bone_block/break1", "132;block.bone_block.fall": "1;block/bone_block/step1", "133;block.bone_block.hit": "1;block/bone_block/step1", "134;block.bone_block.place": "0.9;block/bone_block/break1", "135;block.bone_block.step": "1;block/bone_block/step1", "143;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "144;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "145;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "146;block.bubble_column.upwards_inside": "0.7;block/bubble_column/upwards_inside", "147;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "148;block.bubble_column.whirlpool_inside": "0.7;block/bubble_column/whirlpool_inside", "159;block.cake.add_candle": "1;block/cake/add_candle1", "160;block.calcite.break": "0.9;block/calcite/break1", "164;block.calcite.fall": "1;block/calcite/step1", "163;block.calcite.hit": "1;block/calcite/step1", "162;block.calcite.place": "0.94;block/calcite/place1", "161;block.calcite.step": "1;block/calcite/step1", "165;block.campfire.crackle": "1;block/campfire/crackle1", "166;block.candle.ambient": "0.7;block/candle/ambient1", "167;block.candle.break": "1;block/candle/break1", "168;block.candle.extinguish": "1;block/candle/extinguish1", "169;block.candle.fall": "1;block/candle/step1", "170;block.candle.hit": "1;block/candle/step1", "171;block.candle.place": "1;block/candle/break1", "172;block.candle.step": "1;block/candle/step1", "182;block.cave_vines.break": "1;block/cave_vines/break1", "183;block.cave_vines.fall": "1;block/vine/climb1", "184;block.cave_vines.hit": "1;block/vine/climb1", "187;block.cave_vines.pick_berries": "1;block.sweet_berry_bush.pick_berries", "185;block.cave_vines.place": "1;block/cave_vines/break1", "186;block.cave_vines.step": "1;block/vine/climb1", "188;block.chain.break": "0.5;block/chain/break1", "189;block.chain.fall": "1;block/chain/step1", "190;block.chain.hit": "0.8;block/chain/step1", "191;block.chain.place": "0.5;block/chain/break1", "192;block.chain.step": "1;block/chain/step1", "193;block.chest.close": "1;block/chest/close", "194;block.chest.locked": "1;block/wooden_door/close", "195;block.chest.open": "1;block/chest/open", "201;block.chorus_flower.death": "1;block/chorus_flower/death1", "202;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "208;block.comparator.click": "1;random/click", "209;block.composter.empty": "1;block/composter/empty1", "210;block.composter.fill": "0.3;block/composter/fill1", "211;block.composter.fill_success": "1;block/composter/fill_success1", "212;block.composter.ready": "1;block/composter/ready1", "213;block.conduit.activate": "0.9;block/conduit/activate", "214;block.conduit.ambient": "1;block/conduit/ambient", "215;block.conduit.ambient.short": "1;block/conduit/short1", "216;block.conduit.attack.target": "1;block/conduit/attack1", "217;block.conduit.deactivate": "0.7;block/conduit/deactivate", "218;block.copper.break": "1;block/copper/break1", "222;block.copper.fall": "1;block/copper/step1", "221;block.copper.hit": "1;block/copper/step1", "220;block.copper.place": "1;block/copper/break1", "219;block.copper.step": "1;block/copper/step1", "223;block.coral_block.break": "1;dig/coral1", "224;block.coral_block.fall": "1;step/coral1", "225;block.coral_block.hit": "1;step/coral1", "226;block.coral_block.place": "1;dig/coral1", "227;block.coral_block.step": "1;step/coral1", "236;block.crop.break": "0.9;block/bamboo/sapling_place1", "251;block.deepslate.break": "1;block/deepslate/break1", "252;block.deepslate.fall": "1;block/deepslate/step1", "253;block.deepslate.hit": "1;block/deepslate/step1", "254;block.deepslate.place": "1;block/deepslate/place1", "255;block.deepslate.step": "1;block/deepslate/step1", "246;block.deepslate_bricks.break": "0.85;block/deepslate_bricks/place1", "247;block.deepslate_bricks.fall": "1;block/deepslate_bricks/step1", "248;block.deepslate_bricks.hit": "1;block/deepslate_bricks/step1", "249;block.deepslate_bricks.place": "0.85;block/deepslate_bricks/place1", "250;block.deepslate_bricks.step": "1;block/deepslate_bricks/step1", "256;block.deepslate_tiles.break": "0.92;block/deepslate_bricks/place1", "257;block.deepslate_tiles.fall": "1;block/deepslate_bricks/step1", "258;block.deepslate_tiles.hit": "1;block/deepslate_bricks/step1", "259;block.deepslate_tiles.place": "0.85;block/deepslate_bricks/place1", "260;block.deepslate_tiles.step": "1;block/deepslate_bricks/step1", "261;block.dispenser.dispense": "1;random/click", "262;block.dispenser.fail": "1;random/click", "263;block.dispenser.launch": "1;random/bow", "280;block.dripstone_block.break": "1;block/dripstone/break1", "284;block.dripstone_block.fall": "1;block/dripstone/step1", "283;block.dripstone_block.hit": "1;block/dripstone/step1", "282;block.dripstone_block.place": "1;block/dripstone/break1", "281;block.dripstone_block.step": "1;block/dripstone/step1", "317;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "340;block.end_gateway.spawn": "1;random/explode1", "342;block.end_portal.spawn": "1;block/end_portal/endportal", "341;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "318;block.ender_chest.close": "1;block/enderchest/close", "319;block.ender_chest.open": "1;block/enderchest/open", "354;block.fence_gate.close": "1;block/fence_gate/close1", "355;block.fence_gate.open": "1;block/fence_gate/open1", "365;block.fire.ambient": "1;fire/fire", "366;block.fire.extinguish": "1;random/fizz", "372;block.flowering_azalea.break": "1;block/azalea/break1", "373;block.flowering_azalea.fall": "1;block/azalea/step1", "374;block.flowering_azalea.hit": "1;block/azalea/step1", "375;block.flowering_azalea.place": "1;block/azalea/break1", "376;block.flowering_azalea.step": "1;block/azalea/step1", "661;block.fungus.break": "1;block/fungus/break1", "663;block.fungus.place": "1;block/fungus/break1", "662;block.fungus.step": "0.9;item/plant/netherwart1", "393;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "411;block.gilded_blackstone.break": "1;block/nether_ore/break1", "412;block.gilded_blackstone.fall": "1;block/nether_ore/step1", "413;block.gilded_blackstone.hit": "1;block/nether_ore/step1", "414;block.gilded_blackstone.place": "1;block/nether_ore/break1", "415;block.gilded_blackstone.step": "1;block/nether_ore/step1", "416;block.glass.break": "1;random/glass1", "417;block.glass.fall": "1;step/stone1", "418;block.glass.hit": "1;step/stone1", "419;block.glass.place": "1;dig/stone1", "420;block.glass.step": "1;step/stone1", "448;block.grass.break": "1;dig/grass1", "449;block.grass.fall": "1;step/grass1", "450;block.grass.hit": "1;step/grass1", "451;block.grass.place": "1;dig/grass1", "452;block.grass.step": "1;step/grass1", "453;block.gravel.break": "1;dig/gravel1", "454;block.gravel.fall": "1;step/gravel1", "455;block.gravel.hit": "1;step/gravel1", "456;block.gravel.place": "1;dig/gravel1", "457;block.gravel.step": "1;step/gravel1", "458;block.grindstone.use": "0.5;block/grindstone/grindstone1", "467;block.hanging_roots.break": "1;block/hanging_roots/break1", "468;block.hanging_roots.fall": "1;block/hanging_roots/step1", "469;block.hanging_roots.hit": "1;block/hanging_roots/step1", "470;block.hanging_roots.place": "1;block/hanging_roots/break1", "471;block.hanging_roots.step": "1;block/hanging_roots/step1", "481;block.honey_block.break": "1;block/honeyblock/break1", "482;block.honey_block.fall": "1;block/honeyblock/step1", "483;block.honey_block.hit": "1;block/honeyblock/step1", "484;block.honey_block.place": "1;block/honeyblock/break1", "485;block.honey_block.slide": "0.8;block/honeyblock/slide1", "486;block.honey_block.step": "1;block/honeyblock/step1", "521;block.iron_door.close": "1;block/iron_door/close1", "522;block.iron_door.open": "1;block/iron_door/open1", "529;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "530;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "538;block.ladder.break": "1;dig/wood1", "539;block.ladder.fall": "1;step/ladder1", "540;block.ladder.hit": "1;step/ladder1", "541;block.ladder.place": "1;dig/wood1", "542;block.ladder.step": "1;step/ladder1", "543;block.lantern.break": "1;block/lantern/break1", "544;block.lantern.fall": "1;block/lantern/break1", "545;block.lantern.hit": "1;block/lantern/place1", "546;block.lantern.place": "1;block/lantern/place1", "547;block.lantern.step": "1;block/lantern/break1", "548;block.large_amethyst_bud.break": "0.7;block/amethyst_cluster/break1", "549;block.large_amethyst_bud.place": "0.75;block/amethyst_cluster/place1", "550;block.lava.ambient": "1;liquid/lava", "551;block.lava.extinguish": "1;random/fizz", "552;block.lava.pop": "1;liquid/lavapop", "555;block.lever.click": "1;random/click", "1099;block.lily_pad.place": "1;block/waterlily/place1", "569;block.lodestone.break": "1;dig/stone1", "573;block.lodestone.fall": "1;step/stone1", "572;block.lodestone.hit": "1;step/stone1", "571;block.lodestone.place": "1;block/lodestone/place1", "570;block.lodestone.step": "1;step/stone1", "581;block.medium_amethyst_bud.break": "0.55;block/amethyst_cluster/break1", "582;block.medium_amethyst_bud.place": "0.5;block/amethyst_cluster/place1", "583;block.metal.break": "1;dig/stone1", "584;block.metal.fall": "1;step/stone1", "585;block.metal.hit": "1;step/stone1", "586;block.metal.place": "1;dig/stone1", "589;block.metal.step": "1;step/stone1", "587;block.metal_pressure_plate.click_off": "1;random/click", "588;block.metal_pressure_plate.click_on": "1;random/click", "603;block.moss.break": "0.95;block/moss/break1", "604;block.moss.fall": "1;block/moss/step1", "605;block.moss.hit": "1;block/moss/step1", "606;block.moss.place": "0.93;block/moss/break1", "607;block.moss.step": "1;block/moss/step1", "598;block.moss_carpet.break": "0.9;block/moss/break1", "599;block.moss_carpet.fall": "0.9;block/moss/step1", "600;block.moss_carpet.hit": "0.9;block/moss/step1", "601;block.moss_carpet.place": "0.9;block/moss/break1", "602;block.moss_carpet.step": "0.9;block/moss/step1", "639;block.nether_bricks.break": "0.8;block/nether_bricks/break1", "643;block.nether_bricks.fall": "1;block/nether_bricks/step1", "642;block.nether_bricks.hit": "1;block/nether_bricks/step1", "641;block.nether_bricks.place": "0.8;block/nether_bricks/break1", "640;block.nether_bricks.step": "1;block/nether_bricks/step1", "850;block.nether_gold_ore.break": "1;block/nether_ore/break1", "851;block.nether_gold_ore.fall": "1;block/nether_ore/step1", "852;block.nether_gold_ore.hit": "1;block/nether_ore/step1", "853;block.nether_gold_ore.place": "1;block/nether_ore/break1", "854;block.nether_gold_ore.step": "1;block/nether_ore/step1", "855;block.nether_ore.break": "1;block/nether_ore/break1", "856;block.nether_ore.fall": "1;block/nether_ore/step1", "857;block.nether_ore.hit": "1;block/nether_ore/step1", "858;block.nether_ore.place": "1;block/nether_ore/break1", "859;block.nether_ore.step": "1;block/nether_ore/step1", "656;block.nether_sprouts.break": "0.7;block/nether_sprouts/break1", "660;block.nether_sprouts.fall": "1;block/nether_sprouts/step1", "659;block.nether_sprouts.hit": "1;block/nether_sprouts/step1", "658;block.nether_sprouts.place": "0.7;block/nether_sprouts/break1", "657;block.nether_sprouts.step": "0.5;block/nether_sprouts/step1", "644;block.nether_wart.break": "0.9;item/plant/netherwart1", "676;block.netherite_block.break": "0.95;block/netherite/break1", "680;block.netherite_block.fall": "1;block/netherite/step1", "679;block.netherite_block.hit": "1;block/netherite/step1", "678;block.netherite_block.place": "0.95;block/netherite/break1", "677;block.netherite_block.step": "1;block/netherite/step1", "681;block.netherrack.break": "1;block/netherrack/break1", "685;block.netherrack.fall": "1;block/netherrack/step1", "684;block.netherrack.hit": "0.55;block/netherrack/step1", "683;block.netherrack.place": "1;block/netherrack/break1", "682;block.netherrack.step": "1;block/netherrack/step1", "701;block.note_block.banjo": "1;note/banjo", "686;block.note_block.basedrum": "1;note/bd", "687;block.note_block.bass": "1;note/bassattack", "688;block.note_block.bell": "1;note/bell", "700;block.note_block.bit": "1;note/bit", "689;block.note_block.chime": "1;note/icechime", "698;block.note_block.cow_bell": "1;note/cow_bell", "699;block.note_block.didgeridoo": "1;note/didgeridoo", "690;block.note_block.flute": "1;note/flute", "691;block.note_block.guitar": "1;note/guitar", "692;block.note_block.harp": "1;note/harp2", "693;block.note_block.hat": "1;note/hat", "697;block.note_block.iron_xylophone": "1;note/iron_xylophone", "694;block.note_block.pling": "1;note/pling", "695;block.note_block.snare": "1;note/snare", "696;block.note_block.xylophone": "1;note/xylobone", "651;block.nylium.break": "0.85;block/nylium/break1", "655;block.nylium.fall": "1;block/nylium/step1", "654;block.nylium.hit": "1;block/nylium/step1", "653;block.nylium.place": "0.85;block/nylium/break1", "652;block.nylium.step": "1;block/nylium/step1", "787;block.piston.contract": "1;tile/piston/in", "788;block.piston.extend": "1;tile/piston/out", "285;block.pointed_dripstone.break": "1;block/dripstone/break1", "291;block.pointed_dripstone.drip_lava": "1;block/pointed_dripstone/drip_lava1", "293;block.pointed_dripstone.drip_lava_into_cauldron": "1;block/pointed_dripstone/drip_lava_cauldron1", "292;block.pointed_dripstone.drip_water": "1;block/pointed_dripstone/drip_water1", "294;block.pointed_dripstone.drip_water_into_cauldron": "1;block/pointed_dripstone/drip_water_cauldron1", "289;block.pointed_dripstone.fall": "1;block/dripstone/step1", "288;block.pointed_dripstone.hit": "1;block/dripstone/step1", "290;block.pointed_dripstone.land": "1;block/pointed_dripstone/land1", "287;block.pointed_dripstone.place": "1;block/dripstone/break1", "286;block.pointed_dripstone.step": "1;block/dripstone/step1", "815;block.polished_deepslate.break": "1;block/deepslate/break1", "816;block.polished_deepslate.fall": "1;block/deepslate/step1", "817;block.polished_deepslate.hit": "1;block/deepslate/step1", "818;block.polished_deepslate.place": "1;block/deepslate/place1", "819;block.polished_deepslate.step": "1;block/deepslate/step1", "820;block.portal.ambient": "1;portal/portal", "821;block.portal.travel": "1;portal/travel", "822;block.portal.trigger": "1;portal/trigger", "823;block.powder_snow.break": "1;block/powder_snow/break1", "824;block.powder_snow.fall": "1;block/powder_snow/step1", "825;block.powder_snow.hit": "0.83;block/powder_snow/step1", "826;block.powder_snow.place": "1;block/powder_snow/break1", "827;block.powder_snow.step": "1;block/powder_snow/step1", "835;block.pumpkin.carve": "1;block/pumpkin/carve1", "860;block.redstone_torch.burnout": "1;random/fizz", "861;block.respawn_anchor.ambient": "1;block/respawn_anchor/ambient1", "862;block.respawn_anchor.charge": "1;block/respawn_anchor/charge1", "863;block.respawn_anchor.deplete": "1;block/respawn_anchor/deplete1", "864;block.respawn_anchor.set_spawn": "1;block/respawn_anchor/set_spawn1", "865;block.rooted_dirt.break": "1;block/rooted_dirt/break1", "866;block.rooted_dirt.fall": "1;block/rooted_dirt/step1", "867;block.rooted_dirt.hit": "0.8;block/rooted_dirt/step1", "868;block.rooted_dirt.place": "1;block/rooted_dirt/break1", "869;block.rooted_dirt.step": "1;block/rooted_dirt/step1", "388;block.roots.break": "1;block/roots/break1", "390;block.roots.place": "1;block/roots/break1", "874;block.sand.break": "1;dig/sand1", "875;block.sand.fall": "1;step/sand1", "876;block.sand.hit": "1;step/sand1", "877;block.sand.place": "1;dig/sand1", "878;block.sand.step": "1;step/sand1", "879;block.scaffolding.break": "0.8;block/scaffold/place1", "880;block.scaffolding.fall": "1;step/scaffold1", "881;block.scaffolding.hit": "1;step/scaffold1", "882;block.scaffolding.place": "0.9;block/scaffold/place1", "883;block.scaffolding.step": "1;step/scaffold1", "886;block.sculk_sensor.break": "0.9;block/sculk_sensor/break1", "884;block.sculk_sensor.clicking": "0.73;block/sculk_sensor/sculk_clicking1", "885;block.sculk_sensor.clicking_stop": "0.62;block/sculk_sensor/sculk_clicking_stop1", "887;block.sculk_sensor.fall": "1;block/sculk/step1", "888;block.sculk_sensor.hit": "1;block/sculk/step1", "889;block.sculk_sensor.place": "0.8;block/sculk_sensor/place1", "890;block.sculk_sensor.step": "1;block/sculk/step1", "898;block.shroomlight.break": "1;block/shroomlight/break1", "902;block.shroomlight.fall": "1;block/shroomlight/step1", "901;block.shroomlight.hit": "1;block/shroomlight/step1", "900;block.shroomlight.place": "1;block/shroomlight/break1", "899;block.shroomlight.step": "1;block/shroomlight/step1", "905;block.shulker_box.close": "1;block/shulker_box/close", "906;block.shulker_box.open": "1;block/shulker_box/open", "939;block.slime_block.break": "1;mob/slime/big1", "940;block.slime_block.fall": "1;mob/slime/small1", "941;block.slime_block.hit": "1;mob/slime/small1", "942;block.slime_block.place": "1;mob/slime/big1", "943;block.slime_block.step": "1;mob/slime/small1", "944;block.small_amethyst_bud.break": "0.4;block/amethyst_cluster/break1", "945;block.small_amethyst_bud.place": "0.4;block/amethyst_cluster/place1", "946;block.small_dripleaf.break": "0.9;block/big_dripleaf/break1", "947;block.small_dripleaf.fall": "0.9;block/big_dripleaf/step1", "948;block.small_dripleaf.hit": "0.9;block/big_dripleaf/step1", "949;block.small_dripleaf.place": "0.9;block/big_dripleaf/break1", "950;block.small_dripleaf.step": "0.9;block/big_dripleaf/step1", "980;block.smithing_table.use": "1;block/smithing_table/smithing_table1", "981;block.smoker.smoke": "1;block/smoker/smoker1", "983;block.snow.break": "1;dig/snow1", "984;block.snow.fall": "1;step/snow1", "990;block.snow.hit": "1;step/snow1", "991;block.snow.place": "1;dig/snow1", "992;block.snow.step": "1;step/snow1", "951;block.soul_sand.break": "1;block/soul_sand/break1", "955;block.soul_sand.fall": "1;block/soul_sand/step1", "954;block.soul_sand.hit": "0.55;block/soul_sand/step1", "953;block.soul_sand.place": "1;block/soul_sand/break1", "952;block.soul_sand.step": "1;block/soul_sand/step1", "956;block.soul_soil.break": "0.8;block/soul_soil/break1", "960;block.soul_soil.fall": "1;block/soul_soil/step1", "959;block.soul_soil.hit": "0.66;block/soul_soil/step1", "958;block.soul_soil.place": "0.8;block/soul_soil/break1", "957;block.soul_soil.step": "1;block/soul_soil/step1", "962;block.spore_blossom.break": "1;block/spore_blossom/break1", "963;block.spore_blossom.fall": "1;block/spore_blossom/step1", "964;block.spore_blossom.hit": "1;block/spore_blossom/step1", "965;block.spore_blossom.place": "1;block/spore_blossom/break1", "966;block.spore_blossom.step": "1;block/spore_blossom/step1", "646;block.stem.break": "1;block/stem/break1", "650;block.stem.fall": "1;block/stem/step1", "649;block.stem.hit": "0.8;block/stem/step1", "648;block.stem.place": "0.8;block/stem/break1", "647;block.stem.step": "1;block/stem/step1", "1005;block.stone.break": "1;dig/stone1", "1008;block.stone.fall": "1;step/stone1", "1009;block.stone.hit": "1;step/stone1", "1010;block.stone.place": "1;dig/stone1", "1013;block.stone.step": "1;step/stone1", "1006;block.stone_button.click_off": "1;random/click", "1007;block.stone_button.click_on": "1;random/click", "1011;block.stone_pressure_plate.click_off": "1;random/click", "1012;block.stone_pressure_plate.click_on": "1;random/click", "1018;block.sweet_berry_bush.break": "0.8;block/sweet_berry_bush/break1", "1020;block.sweet_berry_bush.pick_berries": "1;item/sweet_berries/pick_from_bush1", "1019;block.sweet_berry_bush.place": "0.8;block/sweet_berry_bush/place1", "1032;block.tripwire.attach": "1;random/click", "1033;block.tripwire.click_off": "1;random/click", "1034;block.tripwire.click_on": "1;random/click", "1035;block.tripwire.detach": "1;random/bowhit1", "1040;block.tuff.break": "1;block/tuff/break1", "1044;block.tuff.fall": "1;block/tuff/step1", "1043;block.tuff.hit": "1;block/tuff/step1", "1042;block.tuff.place": "1;block/tuff/break1", "1041;block.tuff.step": "1;block/tuff/step1", "1094;block.vine.break": "0.9;block/vine/break1", "1095;block.vine.fall": "1;block/vine/climb1", "1096;block.vine.hit": "1;step/grass1", "1097;block.vine.place": "0.9;block/vine/break1", "1098;block.vine.step": "1;block/vine/climb1", "671;block.wart_block.break": "0.8;block/netherwart/break1", "675;block.wart_block.fall": "1;block/netherwart/step1", "674;block.wart_block.hit": "0.7;block/netherwart/step1", "673;block.wart_block.place": "0.8;block/netherwart/break1", "672;block.wart_block.step": "1;block/netherwart/step1", "1110;block.water.ambient": "1;liquid/water", "666;block.weeping_vines.break": "1;block/roots/break1", "670;block.weeping_vines.fall": "1;block/roots/break1", "669;block.weeping_vines.hit": "1;block/roots/break1", "668;block.weeping_vines.place": "1;block/roots/break1", "667;block.weeping_vines.step": "1;block/roots/step1", "1113;block.wet_grass.break": "0.8;dig/wet_grass1", "1114;block.wet_grass.fall": "1;step/wet_grass1", "1115;block.wet_grass.hit": "1;step/wet_grass1", "1116;block.wet_grass.place": "0.8;dig/wet_grass1", "1117;block.wet_grass.step": "1;step/wet_grass1", "1147;block.wood.break": "1;dig/wood1", "1150;block.wood.fall": "1;step/wood1", "1151;block.wood.hit": "1;step/wood1", "1152;block.wood.place": "1;dig/wood1", "1155;block.wood.step": "1;step/wood1", "1148;block.wooden_button.click_off": "1;random/wood_click", "1149;block.wooden_button.click_on": "1;random/wood_click", "1143;block.wooden_door.close": "1;block/wooden_door/close2", "1144;block.wooden_door.open": "1;block/wooden_door/open3", "1153;block.wooden_pressure_plate.click_off": "1;random/click", "1154;block.wooden_pressure_plate.click_on": "1;random/click", "1145;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "1146;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "1156;block.wool.break": "1;dig/cloth1", "1157;block.wool.fall": "1;step/cloth1", "1158;block.wool.hit": "1;step/cloth1", "1159;block.wool.place": "1;dig/cloth1", "1160;block.wool.step": "1;step/cloth1", "1021;enchant.thorns.hit": "1;enchant/thorns/hit1", "55;entity.armor_stand.break": "1;entity/armorstand/break1", "56;entity.armor_stand.fall": "1;dig/wood1", "57;entity.armor_stand.hit": "1;entity/armorstand/hit1", "58;entity.armor_stand.place": "1;dig/stone1", "59;entity.arrow.hit": "1;random/bowhit1", "60;entity.arrow.hit_player": "1;random/successful_hit", "61;entity.arrow.shoot": "1;random/bow", "65;entity.axolotl.attack": "0.5;mob/axolotl/attack1", "66;entity.axolotl.death": "1;mob/axolotl/death1", "67;entity.axolotl.hurt": "1;mob/axolotl/hurt1", "68;entity.axolotl.idle_air": "1;mob/axolotl/idle_air1", "69;entity.axolotl.idle_water": "1;mob/axolotl/idle1", "70;entity.axolotl.splash": "0.9;mob/dolphin/splash1", "71;entity.axolotl.swim": "1;mob/dolphin/swim1", "97;entity.bat.ambient": "1;mob/bat/idle1", "98;entity.bat.death": "1;mob/bat/death", "99;entity.bat.hurt": "1;mob/bat/hurt1", "100;entity.bat.loop": "1;mob/bat/loop", "101;entity.bat.takeoff": "1;mob/bat/takeoff", "106;entity.bee.death": "1;mob/bee/death1", "107;entity.bee.hurt": "1;mob/bee/hurt1", "109;entity.bee.loop": "0.75;mob/bee/loop5", "108;entity.bee.loop_aggressive": "0.8;mob/bee/aggressive1", "111;entity.bee.pollinate": "0.8;mob/bee/pollinate1", "110;entity.bee.sting": "1;mob/bee/sting", "124;entity.blaze.ambient": "1;mob/blaze/breathe1", "125;entity.blaze.burn": "1;fire/fire", "126;entity.blaze.death": "1;mob/blaze/death", "127;entity.blaze.hurt": "1;mob/blaze/hit1", "128;entity.blaze.shoot": "1;mob/ghast/fireball4", "129;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "130;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "173;entity.cat.ambient": "0.6;mob/cat/meow1", "178;entity.cat.beg_for_food": "0.7;mob/cat/beg1", "175;entity.cat.death": "0.75;mob/cat/hitt1", "176;entity.cat.eat": "1;mob/cat/eat1", "177;entity.cat.hiss": "0.4;mob/cat/hiss1", "179;entity.cat.hurt": "0.65;mob/cat/hitt1", "180;entity.cat.purr": "0.7;mob/cat/purr1", "181;entity.cat.purreow": "0.5;mob/cat/purreow1", "174;entity.cat.stray_ambient": "0.35;mob/cat/stray/idle1", "196;entity.chicken.ambient": "1;mob/chicken/say1", "197;entity.chicken.death": "1;mob/chicken/hurt1", "198;entity.chicken.egg": "1;mob/chicken/plop", "199;entity.chicken.hurt": "1;mob/chicken/hurt1", "200;entity.chicken.step": "1;mob/chicken/step1", "205;entity.cod.death": "1;entity/fish/hurt1", "206;entity.cod.flop": "0.3;entity/fish/flop1", "207;entity.cod.hurt": "1;entity/fish/hurt1", "228;entity.cow.ambient": "1;mob/cow/say1", "229;entity.cow.death": "1;mob/cow/hurt1", "230;entity.cow.hurt": "1;mob/cow/hurt1", "231;entity.cow.milk": "1;entity/cow/milk1", "232;entity.cow.step": "1;mob/cow/step1", "233;entity.creeper.death": "1;mob/creeper/death", "234;entity.creeper.hurt": "1;mob/creeper/say1", "235;entity.creeper.primed": "1;random/fuse", "264;entity.dolphin.ambient": "1;mob/dolphin/idle1", "265;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "266;entity.dolphin.attack": "1;mob/dolphin/attack1", "267;entity.dolphin.death": "1;mob/dolphin/death1", "268;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "269;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "270;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "271;entity.dolphin.play": "1;mob/dolphin/play1", "272;entity.dolphin.splash": "1;mob/dolphin/splash1", "273;entity.dolphin.swim": "1;mob/dolphin/swim1", "274;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "275;entity.donkey.angry": "1;mob/horse/donkey/angry1", "276;entity.donkey.chest": "1;mob/chicken/plop", "277;entity.donkey.death": "1;mob/horse/donkey/death", "278;entity.donkey.eat": "1;entity/horse/eat1", "279;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "322;entity.dragon_fireball.explode": "1;random/explode1", "297;entity.drowned.ambient": "0.9;mob/drowned/idle1", "298;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "299;entity.drowned.death": "0.9;mob/drowned/death1", "300;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "301;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "302;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "303;entity.drowned.shoot": "1;item/trident/throw1", "304;entity.drowned.step": "1;mob/drowned/step1", "305;entity.drowned.swim": "1;liquid/swim1", "307;entity.egg.throw": "1;random/bow", "308;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "309;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "310;entity.elder_guardian.curse": "1;mob/guardian/curse", "311;entity.elder_guardian.death": "1;mob/guardian/elder_death", "312;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "313;entity.elder_guardian.flop": "1;mob/guardian/flop1", "314;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "315;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "320;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "321;entity.ender_dragon.death": "1;mob/enderdragon/end", "323;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "324;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "325;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "326;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "327;entity.ender_eye.death": "1.3;entity/endereye/dead1", "328;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "339;entity.ender_pearl.throw": "1;random/bow", "329;entity.enderman.ambient": "1;mob/endermen/idle1", "330;entity.enderman.death": "1;mob/endermen/death", "331;entity.enderman.hurt": "1;mob/endermen/hit1", "332;entity.enderman.scream": "1;mob/endermen/scream1", "333;entity.enderman.stare": "1;mob/endermen/stare", "334;entity.enderman.teleport": "1;mob/endermen/portal", "335;entity.endermite.ambient": "1;mob/silverfish/say1", "336;entity.endermite.death": "1;mob/silverfish/kill", "337;entity.endermite.hurt": "1;mob/silverfish/hit1", "338;entity.endermite.step": "1;mob/silverfish/step1", "343;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "344;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "345;entity.evoker.celebrate": "1;mob/evocation_illager/celebrate", "346;entity.evoker.death": "1;mob/evocation_illager/death1", "348;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "349;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "350;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "351;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "347;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "352;entity.experience_bottle.throw": "1;random/bow", "353;entity.experience_orb.pickup": "1;random/orb", "357;entity.firework_rocket.blast": "1;fireworks/blast1", "358;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "359;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "360;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "361;entity.firework_rocket.launch": "1;fireworks/launch1", "362;entity.firework_rocket.shoot": "1;random/bow", "363;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "364;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "367;entity.fish.swim": "1;entity/fish/swim1", "368;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "369;entity.fishing_bobber.splash": "1;random/splash", "370;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "377;entity.fox.aggro": "0.65;mob/fox/aggro1", "378;entity.fox.ambient": "0.8;mob/fox/idle1", "379;entity.fox.bite": "0.6;mob/fox/bite1", "380;entity.fox.death": "0.9;mob/fox/death1", "381;entity.fox.eat": "0.65;mob/fox/eat1", "382;entity.fox.hurt": "0.75;mob/fox/hurt1", "383;entity.fox.screech": "0.45;mob/fox/screech1", "384;entity.fox.sleep": "0.8;mob/fox/sleep1", "385;entity.fox.sniff": "0.6;mob/fox/sniff1", "386;entity.fox.spit": "0.7;mob/fox/spit1", "387;entity.fox.teleport": "1;mob/endermen/portal", "394;entity.generic.big_fall": "1;damage/fallbig", "395;entity.generic.burn": "1;random/fizz", "396;entity.generic.death": "1;damage/hit1", "397;entity.generic.drink": "1;random/drink", "398;entity.generic.eat": "1;random/eat1", "399;entity.generic.explode": "1;random/explode1", "400;entity.generic.extinguish_fire": "1;random/fizz", "401;entity.generic.hurt": "1;damage/hit1", "402;entity.generic.small_fall": "1;damage/fallsmall", "403;entity.generic.splash": "1;liquid/splash", "404;entity.generic.swim": "1;liquid/swim1", "405;entity.ghast.ambient": "1;mob/ghast/moan1", "406;entity.ghast.death": "1;mob/ghast/death", "407;entity.ghast.hurt": "1;mob/ghast/scream1", "408;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "409;entity.ghast.shoot": "1;mob/ghast/fireball4", "410;entity.ghast.warn": "1;mob/ghast/charge", "422;entity.glow_item_frame.add_item": "1;entity/itemframe/add_item1", "423;entity.glow_item_frame.break": "1;entity/itemframe/break1", "424;entity.glow_item_frame.place": "1;entity/itemframe/place1", "425;entity.glow_item_frame.remove_item": "1;entity/itemframe/remove_item1", "426;entity.glow_item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "427;entity.glow_squid.ambient": "1;entity/glow_squid/ambient1", "428;entity.glow_squid.death": "1;entity/glow_squid/death1", "429;entity.glow_squid.hurt": "1;entity/glow_squid/hurt1", "430;entity.glow_squid.squirt": "1;entity/glow_squid/squirt1", "431;entity.goat.ambient": "0.82;mob/goat/idle1", "432;entity.goat.death": "0.65;mob/goat/death1", "433;entity.goat.eat": "1;mob/goat/eat1", "434;entity.goat.hurt": "0.65;mob/goat/hurt1", "435;entity.goat.long_jump": "0.8;mob/goat/jump1", "436;entity.goat.milk": "1;mob/mooshroom/milk1", "437;entity.goat.prepare_ram": "0.8;mob/goat/pre_ram1", "438;entity.goat.ram_impact": "0.8;mob/goat/impact1", "439;entity.goat.screaming.ambient": "0.82;mob/goat/idle1", "440;entity.goat.screaming.death": "0.65;mob/goat/screaming_death1", "441;entity.goat.screaming.eat": "1;mob/goat/eat1", "442;entity.goat.screaming.hurt": "0.65;mob/goat/screaming_hurt1", "443;entity.goat.screaming.long_jump": "1;mob/goat/jump1", "444;entity.goat.screaming.milk": "1;mob/goat/screaming_milk1", "445;entity.goat.screaming.prepare_ram": "0.8;mob/goat/screaming_pre_ram1", "446;entity.goat.screaming.ram_impact": "0.8;mob/goat/impact1", "447;entity.goat.step": "1;mob/goat/step1", "459;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "460;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "461;entity.guardian.attack": "1;mob/guardian/attack_loop", "462;entity.guardian.death": "1;mob/guardian/guardian_death", "463;entity.guardian.death_land": "1;mob/guardian/land_death", "464;entity.guardian.flop": "1;mob/guardian/flop1", "465;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "466;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "473;entity.hoglin.ambient": "0.65;mob/hoglin/idle1", "474;entity.hoglin.angry": "1;mob/hoglin/angry1", "475;entity.hoglin.attack": "0.8;mob/hoglin/attack1", "476;entity.hoglin.converted_to_zombified": "0.8;mob/hoglin/converted1", "477;entity.hoglin.death": "0.9;mob/hoglin/death1", "478;entity.hoglin.hurt": "0.8;mob/hoglin/hurt1", "479;entity.hoglin.retreat": "0.7;mob/hoglin/retreat1", "480;entity.hoglin.step": "1;mob/hoglin/step1", "489;entity.horse.ambient": "1;mob/horse/idle1", "490;entity.horse.angry": "1;mob/horse/angry1", "491;entity.horse.armor": "1;mob/horse/armor", "492;entity.horse.breathe": "1;mob/horse/breathe1", "493;entity.horse.death": "1;mob/horse/death", "494;entity.horse.eat": "1;entity/horse/eat1", "495;entity.horse.gallop": "1;mob/horse/gallop1", "496;entity.horse.hurt": "1;mob/horse/hit1", "497;entity.horse.jump": "1;mob/horse/jump", "498;entity.horse.land": "1;mob/horse/land", "499;entity.horse.saddle": "1;mob/horse/leather", "500;entity.horse.step": "1;mob/horse/soft1", "501;entity.horse.step_wood": "1;mob/horse/wood1", "502;entity.hostile.big_fall": "1;damage/fallbig", "503;entity.hostile.death": "1;damage/hit1", "504;entity.hostile.hurt": "1;damage/hit1", "505;entity.hostile.small_fall": "1;damage/fallsmall", "506;entity.hostile.splash": "1;liquid/splash", "507;entity.hostile.swim": "1;liquid/swim1", "508;entity.husk.ambient": "1;mob/husk/idle1", "509;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "510;entity.husk.death": "1;mob/husk/death1", "511;entity.husk.hurt": "1;mob/husk/hurt1", "512;entity.husk.step": "1;mob/husk/step1", "513;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "514;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "515;entity.illusioner.death": "1;mob/illusion_illager/death1", "516;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "517;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "518;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "519;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "523;entity.iron_golem.attack": "1;mob/irongolem/throw", "524;entity.iron_golem.damage": "0.8;mob/irongolem/damage1", "525;entity.iron_golem.death": "1;mob/irongolem/death", "526;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "527;entity.iron_golem.repair": "1;mob/irongolem/repair", "528;entity.iron_golem.step": "1;mob/irongolem/walk1", "536;entity.item.break": "1;random/break", "537;entity.item.pickup": "1;random/pop", "531;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "532;entity.item_frame.break": "1;entity/itemframe/break1", "533;entity.item_frame.place": "1;entity/itemframe/place1", "534;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "535;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "553;entity.leash_knot.break": "1;entity/leashknot/break1", "554;entity.leash_knot.place": "1;entity/leashknot/place1", "556;entity.lightning_bolt.impact": "1;random/explode1", "557;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "558;entity.lingering_potion.throw": "1;random/bow", "559;entity.llama.ambient": "1;mob/llama/idle1", "560;entity.llama.angry": "1;mob/llama/angry1", "561;entity.llama.chest": "1;mob/chicken/plop", "562;entity.llama.death": "1;mob/llama/death1", "563;entity.llama.eat": "1;mob/llama/eat1", "564;entity.llama.hurt": "1;mob/llama/hurt1", "565;entity.llama.spit": "1;mob/llama/spit1", "566;entity.llama.step": "1;mob/llama/step1", "567;entity.llama.swag": "1;mob/llama/swag", "575;entity.magma_cube.death": "1;mob/slime/big1", "568;entity.magma_cube.death_small": "1;mob/slime/small1", "576;entity.magma_cube.hurt": "1;mob/slime/big1", "577;entity.magma_cube.hurt_small": "1;mob/slime/small1", "578;entity.magma_cube.jump": "1;mob/magmacube/jump1", "579;entity.magma_cube.squish": "1;mob/magmacube/big1", "580;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "591;entity.minecart.inside": "1;minecart/inside", "590;entity.minecart.inside.underwater": "1;minecart/inside_underwater1", "592;entity.minecart.riding": "1;minecart/base", "593;entity.mooshroom.convert": "0.75;mob/mooshroom/convert1", "594;entity.mooshroom.eat": "1;mob/mooshroom/eat1", "595;entity.mooshroom.milk": "1;mob/mooshroom/milk1", "597;entity.mooshroom.shear": "1;mob/sheep/shear", "596;entity.mooshroom.suspicious_milk": "1;mob/mooshroom/milk1", "608;entity.mule.ambient": "1;mob/horse/donkey/idle1", "609;entity.mule.angry": "1;mob/horse/donkey/angry1", "610;entity.mule.chest": "1;mob/chicken/plop", "611;entity.mule.death": "1;mob/horse/donkey/death", "612;entity.mule.eat": "1;entity/horse/eat1", "613;entity.mule.hurt": "1;mob/horse/donkey/hit1", "703;entity.ocelot.ambient": "0.3;mob/cat/ocelot/idle1", "704;entity.ocelot.death": "0.45;mob/cat/ocelot/death1", "702;entity.ocelot.hurt": "0.45;mob/cat/hitt1", "705;entity.painting.break": "1;entity/painting/break1", "706;entity.painting.place": "1;entity/painting/place1", "714;entity.panda.aggressive_ambient": "1;mob/panda/aggressive/aggressive1", "709;entity.panda.ambient": "1;mob/panda/idle1", "717;entity.panda.bite": "1;mob/panda/bite1", "713;entity.panda.cant_breed": "1;mob/panda/cant_breed1", "710;entity.panda.death": "0.82;mob/panda/death1", "711;entity.panda.eat": "1;mob/panda/eat1", "716;entity.panda.hurt": "0.82;mob/panda/hurt1", "707;entity.panda.pre_sneeze": "1;mob/panda/pre_sneeze", "708;entity.panda.sneeze": "1;mob/panda/sneeze1", "712;entity.panda.step": "1;mob/panda/step1", "715;entity.panda.worried_ambient": "1;mob/panda/worried/worried2", "718;entity.parrot.ambient": "0.7;mob/parrot/idle1", "719;entity.parrot.death": "1;mob/parrot/death1", "720;entity.parrot.eat": "1;mob/parrot/eat1", "721;entity.parrot.fly": "1;mob/parrot/fly1", "722;entity.parrot.hurt": "1;mob/parrot/hurt1", "723;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "724;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "725;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "726;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "727;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "728;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "729;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "730;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "731;entity.parrot.imitate.guardian": "0.4;entity.guardian.ambient", "732;entity.parrot.imitate.hoglin": "0.6;entity.hoglin.ambient", "733;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "734;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "735;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "736;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "737;entity.parrot.imitate.piglin": "0.6;entity.piglin.ambient", "738;entity.parrot.imitate.piglin_brute": "0.6;entity.piglin_brute.ambient", "739;entity.parrot.imitate.pillager": "0.4;entity.pillager.ambient", "740;entity.parrot.imitate.ravager": "0.2;entity.ravager.ambient", "741;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "742;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "743;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "744;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "745;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "746;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "747;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "748;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "749;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "750;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "751;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "752;entity.parrot.imitate.zoglin": "0.6;entity.zoglin.ambient", "753;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "754;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "755;entity.parrot.step": "1;mob/parrot/step1", "756;entity.phantom.ambient": "0.8;mob/phantom/idle1", "757;entity.phantom.bite": "1;mob/phantom/bite1", "758;entity.phantom.death": "1;mob/phantom/death1", "759;entity.phantom.flap": "0.9;mob/phantom/flap1", "760;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "761;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "762;entity.pig.ambient": "1;mob/pig/say1", "763;entity.pig.death": "1;mob/pig/death", "764;entity.pig.hurt": "1;mob/pig/say1", "765;entity.pig.saddle": "1;mob/horse/leather", "766;entity.pig.step": "1;mob/pig/step1", "767;entity.piglin.admiring_item": "0.8;mob/piglin/admire1", "768;entity.piglin.ambient": "0.66;mob/piglin/idle1", "769;entity.piglin.angry": "0.7;mob/piglin/angry1", "770;entity.piglin.celebrate": "0.8;mob/piglin/celebrate1", "776;entity.piglin.converted_to_zombified": "1;mob/piglin/converted1", "771;entity.piglin.death": "0.7;mob/piglin/death1", "773;entity.piglin.hurt": "0.7;mob/piglin/hurt1", "772;entity.piglin.jealous": "0.8;mob/piglin/jealous1", "774;entity.piglin.retreat": "0.65;mob/piglin/retreat1", "775;entity.piglin.step": "0.75;mob/piglin/step1", "777;entity.piglin_brute.ambient": "0.9;mob/piglin_brute/idle1", "778;entity.piglin_brute.angry": "0.9;mob/piglin_brute/angry1", "782;entity.piglin_brute.converted_to_zombified": "1;mob/piglin/converted1", "779;entity.piglin_brute.death": "0.8;mob/piglin_brute/death1", "780;entity.piglin_brute.hurt": "0.64;mob/piglin_brute/hurt1", "781;entity.piglin_brute.step": "0.75;mob/piglin_brute/step1", "783;entity.pillager.ambient": "1;mob/pillager/idle1", "784;entity.pillager.celebrate": "1;mob/pillager/celebrate1", "785;entity.pillager.death": "1;mob/pillager/death1", "786;entity.pillager.hurt": "1;mob/pillager/hurt1", "789;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "790;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "791;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "792;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "793;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "794;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "795;entity.player.big_fall": "1;damage/fallbig", "796;entity.player.breath": "1;random/breath", "797;entity.player.burp": "1;random/burp", "798;entity.player.death": "1;damage/hit1", "799;entity.player.hurt": "1;damage/hit1", "800;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "801;entity.player.hurt_freeze": "1;entity/player/hurt/freeze_hurt1", "802;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "803;entity.player.hurt_sweet_berry_bush": "1;entity/player/hurt/berrybush_hurt1", "804;entity.player.levelup": "1;random/levelup", "805;entity.player.small_fall": "1;damage/fallsmall", "806;entity.player.splash": "1;liquid/splash", "807;entity.player.splash.high_speed": "1;liquid/heavy_splash", "808;entity.player.swim": "1;liquid/swim5", "809;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "810;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "811;entity.polar_bear.death": "1;mob/polarbear/death1", "812;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "813;entity.polar_bear.step": "1;mob/polarbear/step1", "814;entity.polar_bear.warning": "1;mob/polarbear/warning3", "829;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "830;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "831;entity.puffer_fish.death": "1;entity/pufferfish/death1", "832;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "833;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "834;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "836;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "837;entity.rabbit.attack": "1;entity/rabbit/attack1", "838;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "839;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "840;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "842;entity.ravager.ambient": "1;mob/ravager/idle1", "843;entity.ravager.attack": "1;mob/ravager/bite1", "844;entity.ravager.celebrate": "1;mob/ravager/celebrate1", "845;entity.ravager.death": "1;mob/ravager/death1", "846;entity.ravager.hurt": "1;mob/ravager/hurt1", "849;entity.ravager.roar": "1;mob/ravager/roar1", "847;entity.ravager.step": "1;mob/ravager/step1", "848;entity.ravager.stunned": "1;mob/ravager/stun1", "871;entity.salmon.death": "1;entity/fish/hurt1", "872;entity.salmon.flop": "0.3;entity/fish/flop1", "873;entity.salmon.hurt": "1;entity/fish/hurt1", "891;entity.sheep.ambient": "1;mob/sheep/say1", "892;entity.sheep.death": "1;mob/sheep/say1", "893;entity.sheep.hurt": "1;mob/sheep/say1", "894;entity.sheep.shear": "1;mob/sheep/shear", "895;entity.sheep.step": "1;mob/sheep/step1", "904;entity.shulker.ambient": "1;entity/shulker/ambient1", "909;entity.shulker.close": "1;entity/shulker/close1", "910;entity.shulker.death": "1;entity/shulker/death1", "911;entity.shulker.hurt": "1;entity/shulker/hurt1", "912;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "913;entity.shulker.open": "1;entity/shulker/open1", "914;entity.shulker.shoot": "1;entity/shulker/shoot1", "915;entity.shulker.teleport": "1;mob/endermen/portal", "907;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "908;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "916;entity.silverfish.ambient": "1;mob/silverfish/say1", "917;entity.silverfish.death": "1;mob/silverfish/kill", "918;entity.silverfish.hurt": "1;mob/silverfish/hit1", "919;entity.silverfish.step": "1;mob/silverfish/step1", "920;entity.skeleton.ambient": "1;mob/skeleton/say1", "921;entity.skeleton.converted_to_stray": "1;mob/stray/convert1", "922;entity.skeleton.death": "1;mob/skeleton/death", "931;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "932;entity.skeleton.shoot": "1;random/bow", "933;entity.skeleton.step": "1;mob/skeleton/step1", "923;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "927;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "924;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "928;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "925;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "929;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "930;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "926;entity.skeleton_horse.swim": "0.4;liquid/swim9", "934;entity.slime.attack": "1;mob/slime/attack1", "935;entity.slime.death": "1;mob/slime/big1", "976;entity.slime.death_small": "1;mob/slime/small1", "936;entity.slime.hurt": "1;mob/slime/big1", "977;entity.slime.hurt_small": "1;mob/slime/small1", "937;entity.slime.jump": "1;mob/slime/big1", "978;entity.slime.jump_small": "1;mob/slime/small1", "938;entity.slime.squish": "1;mob/slime/big1", "979;entity.slime.squish_small": "1;mob/slime/small1", "986;entity.snow_golem.death": "1;entity/snowman/death1", "987;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "989;entity.snow_golem.shear": "1;mob/sheep/shear", "988;entity.snow_golem.shoot": "1;random/bow", "982;entity.snowball.throw": "1;random/bow", "993;entity.spider.ambient": "1;mob/spider/say1", "994;entity.spider.death": "1;mob/spider/death", "995;entity.spider.hurt": "1;mob/spider/say1", "996;entity.spider.step": "1;mob/spider/step1", "997;entity.splash_potion.break": "1;random/glass1", "998;entity.splash_potion.throw": "1;random/bow", "1001;entity.squid.ambient": "1;entity/squid/ambient1", "1002;entity.squid.death": "1;entity/squid/death1", "1003;entity.squid.hurt": "1;entity/squid/hurt1", "1004;entity.squid.squirt": "1;entity/squid/squirt1", "1014;entity.stray.ambient": "1;mob/stray/idle1", "1015;entity.stray.death": "1;mob/stray/death1", "1016;entity.stray.hurt": "1;mob/stray/hurt1", "1017;entity.stray.step": "1;mob/stray/step1", "967;entity.strider.ambient": "1;mob/strider/idle1", "970;entity.strider.death": "1;mob/strider/death1", "974;entity.strider.eat": "1;mob/strider/eat1", "968;entity.strider.happy": "1;mob/strider/happy1", "971;entity.strider.hurt": "1;mob/strider/hurt1", "969;entity.strider.retreat": "0.8;mob/strider/retreat1", "975;entity.strider.saddle": "1;mob/horse/leather", "972;entity.strider.step": "0.25;mob/strider/step1", "973;entity.strider.step_lava": "0.2;mob/strider/step_lava1", "1022;entity.tnt.primed": "1;random/fuse", "1037;entity.tropical_fish.death": "1;entity/fish/hurt1", "1038;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "1039;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "1045;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "1046;entity.turtle.death": "1;mob/turtle/death1", "1047;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "1048;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "1049;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "1050;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "1051;entity.turtle.hurt": "1;mob/turtle/hurt1", "1052;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "1053;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "1054;entity.turtle.shamble": "1;mob/turtle/walk1", "1055;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "1056;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "1066;entity.vex.ambient": "1;mob/vex/idle1", "1067;entity.vex.charge": "1;mob/vex/charge1", "1068;entity.vex.death": "1;mob/vex/death1", "1069;entity.vex.hurt": "1;mob/vex/hurt1", "1070;entity.villager.ambient": "1;mob/villager/idle1", "1071;entity.villager.celebrate": "1;mob/villager/yes1", "1072;entity.villager.death": "1;mob/villager/death", "1073;entity.villager.hurt": "1;mob/villager/hit1", "1074;entity.villager.no": "1;mob/villager/no1", "1075;entity.villager.trade": "1;mob/villager/haggle1", "1077;entity.villager.work_armorer": "1;block/blastfurnace/blastfurnace1", "1078;entity.villager.work_butcher": "1;block/smoker/smoker1", "1079;entity.villager.work_cartographer": "1;ui/cartography_table/drawmap1", "1080;entity.villager.work_cleric": "1;block/brewing_stand/brew1", "1081;entity.villager.work_farmer": "1;block/composter/fill_success1", "1082;entity.villager.work_fisherman": "1;block/barrel/open1", "1083;entity.villager.work_fletcher": "1;block/fletching_table/fletching_table1", "1084;entity.villager.work_leatherworker": "0.9;block/cauldron/dye1", "1085;entity.villager.work_librarian": "2;item/book/open_flip1", "1086;entity.villager.work_mason": "1;ui/stonecutter/cut1", "1087;entity.villager.work_shepherd": "0.5;ui/loom/take_result1", "1088;entity.villager.work_toolsmith": "1;block/smithing_table/smithing_table1", "1089;entity.villager.work_weaponsmith": "0.5;block/grindstone/grindstone1", "1076;entity.villager.yes": "1;mob/villager/yes1", "1090;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "1091;entity.vindicator.celebrate": "1;mob/vindication_illager/celebrate1", "1092;entity.vindicator.death": "1;mob/vindication_illager/death1", "1093;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "1100;entity.wandering_trader.ambient": "1;mob/wandering_trader/idle1", "1101;entity.wandering_trader.death": "1;mob/wandering_trader/death", "1102;entity.wandering_trader.disappeared": "0.8;mob/wandering_trader/disappeared1", "1103;entity.wandering_trader.drink_milk": "1;mob/wandering_trader/drink_milk1", "1104;entity.wandering_trader.drink_potion": "0.65;random/drink", "1105;entity.wandering_trader.hurt": "1;mob/wandering_trader/hurt1", "1106;entity.wandering_trader.no": "1;mob/wandering_trader/no1", "1107;entity.wandering_trader.reappeared": "0.8;mob/wandering_trader/reappeared1", "1108;entity.wandering_trader.trade": "1;mob/wandering_trader/haggle1", "1109;entity.wandering_trader.yes": "1;mob/wandering_trader/yes1", "1118;entity.witch.ambient": "1;entity/witch/ambient5", "1119;entity.witch.celebrate": "1;entity/witch/celebrate", "1120;entity.witch.death": "1;entity/witch/death1", "1121;entity.witch.drink": "1;entity/witch/drink1", "1122;entity.witch.hurt": "1;entity/witch/hurt1", "1123;entity.witch.throw": "1;entity/witch/throw1", "1124;entity.wither.ambient": "1;mob/wither/idle1", "1125;entity.wither.break_block": "1;mob/zombie/woodbreak", "1126;entity.wither.death": "1;mob/wither/death", "1127;entity.wither.hurt": "1;mob/wither/hurt1", "1128;entity.wither.shoot": "1;mob/wither/shoot", "1133;entity.wither.spawn": "1;mob/wither/spawn", "1129;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "1130;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "1131;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "1132;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "1134;entity.wolf.ambient": "1;mob/wolf/bark1", "1135;entity.wolf.death": "1;mob/wolf/death", "1136;entity.wolf.growl": "1;mob/wolf/growl1", "1137;entity.wolf.howl": "1;mob/wolf/howl1", "1138;entity.wolf.hurt": "1;mob/wolf/hurt1", "1139;entity.wolf.pant": "1;mob/wolf/panting", "1140;entity.wolf.shake": "1;mob/wolf/shake", "1141;entity.wolf.step": "1;mob/wolf/step1", "1142;entity.wolf.whine": "1;mob/wolf/whine", "1161;entity.zoglin.ambient": "0.9;mob/zoglin/idle1", "1162;entity.zoglin.angry": "0.8;mob/zoglin/angry1", "1163;entity.zoglin.attack": "0.8;mob/zoglin/attack1", "1164;entity.zoglin.death": "0.93;mob/zoglin/death1", "1165;entity.zoglin.hurt": "0.83;mob/zoglin/hurt1", "1166;entity.zoglin.step": "1;mob/zoglin/step1", "1167;entity.zombie.ambient": "1;mob/zombie/say1", "1169;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "1168;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "1170;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "1171;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "1172;entity.zombie.death": "1;mob/zombie/death", "1173;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "1177;entity.zombie.hurt": "1;mob/zombie/hurt1", "1178;entity.zombie.infect": "1;mob/zombie/infect", "1183;entity.zombie.step": "1;mob/zombie/step1", "1174;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "1175;entity.zombie_horse.death": "1;mob/horse/zombie/death", "1176;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "1184;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "1185;entity.zombie_villager.converted": "1;mob/zombie/unfect", "1186;entity.zombie_villager.cure": "1;mob/zombie/remedy", "1187;entity.zombie_villager.death": "1;mob/zombie_villager/death", "1188;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "1189;entity.zombie_villager.step": "1;mob/zombie/step1", "1179;entity.zombified_piglin.ambient": "1;mob/zombified_piglin/zpig1", "1180;entity.zombified_piglin.angry": "1;mob/zombified_piglin/zpigangry1", "1181;entity.zombified_piglin.death": "1;mob/zombified_piglin/zpigdeath", "1182;entity.zombified_piglin.hurt": "1;mob/zombified_piglin/zpighurt1", "841;event.raid.horn": "0.01;event/raid/raidhorn_01", "46;item.armor.equip_chain": "1;item/armor/equip_chain1", "47;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "48;item.armor.equip_elytra": "1;item/armor/equip_leather1", "49;item.armor.equip_generic": "1;item/armor/equip_generic1", "50;item.armor.equip_gold": "1;item/armor/equip_gold1", "51;item.armor.equip_iron": "1;item/armor/equip_iron1", "52;item.armor.equip_leather": "1;item/armor/equip_leather1", "53;item.armor.equip_netherite": "0.8;item/armor/equip_netherite1", "54;item.armor.equip_turtle": "1;mob/turtle/armor", "63;item.axe.scrape": "1;item/axe/scrape1", "62;item.axe.strip": "0.9;item/axe/strip1", "64;item.axe.wax_off": "1;item/axe/wax_off1", "136;item.bone_meal.use": "1;item/bonemeal/bonemeal1", "137;item.book.page_turn": "2;item/book/open_flip1", "138;item.book.put": "1;item/book/close_put1", "140;item.bottle.empty": "1;item/bottle/empty1", "141;item.bottle.fill": "1;item/bottle/fill1", "142;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "149;item.bucket.empty": "1;item/bucket/empty1", "150;item.bucket.empty_axolotl": "1;item/bucket/empty_fish1", "151;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "152;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "153;item.bucket.empty_powder_snow": "1;item/bucket/empty_powder_snow1", "154;item.bucket.fill": "1;item/bucket/fill1", "155;item.bucket.fill_axolotl": "1;item/bucket/fill_axolotl1", "156;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "157;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "158;item.bucket.fill_powder_snow": "1;item/bucket/fill_powder_snow1", "203;item.chorus_fruit.teleport": "1;mob/endermen/portal", "237;item.crop.plant": "0.45;item/plant/crop1", "238;item.crossbow.hit": "1;random/bowhit1", "239;item.crossbow.loading_end": "1;item/crossbow/loading_end", "240;item.crossbow.loading_middle": "0.65;item/crossbow/loading_middle1", "241;item.crossbow.loading_start": "0.3;item/crossbow/loading_start", "242;item.crossbow.quick_charge_1": "0.65;item/crossbow/quick_charge/quick1_1", "243;item.crossbow.quick_charge_2": "0.65;item/crossbow/quick_charge/quick2_1", "244;item.crossbow.quick_charge_3": "0.65;item/crossbow/quick_charge/quick3_1", "245;item.crossbow.shoot": "0.9;item/crossbow/shoot1", "306;item.dye.use": "1;item/dye/dye", "316;item.elytra.flying": "0.6;item/elytra/elytra_loop", "356;item.firecharge.use": "1;mob/ghast/fireball4", "371;item.flintandsteel.use": "1;fire/ignite", "421;item.glow_ink_sac.use": "1;item/ink_sac/ink_sac1", "472;item.hoe.till": "1;item/hoe/till1", "488;item.honey_bottle.drink": "1;item/bottle/drink_honey1", "487;item.honeycomb.wax_on": "1;item/honeycomb/wax_on1", "520;item.ink_sac.use": "1;item/ink_sac/ink_sac1", "574;item.lodestone_compass.lock": "1;block/lodestone/lock1", "645;item.nether_wart.plant": "0.9;item/plant/netherwart1", "896;item.shield.block": "1;item/shield/block1", "897;item.shield.break": "1;random/break", "903;item.shovel.flatten": "1;item/shovel/flatten1", "1000;item.spyglass.stop_using": "0.5;item/spyglass/stop", "999;item.spyglass.use": "0.5;item/spyglass/use", "1023;item.totem.use": "1;item/totem/use_totem", "1024;item.trident.hit": "1;item/trident/pierce1", "1025;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "1026;item.trident.return": "0.8;item/trident/return1", "1027;item.trident.riptide_1": "1;item/trident/riptide1", "1028;item.trident.riptide_2": "1;item/trident/riptide2", "1029;item.trident.riptide_3": "1;item/trident/riptide3", "1030;item.trident.throw": "1;item/trident/throw1", "1031;item.trident.thunder": "1;item/trident/thunder1", "614;music.creative": "1;music.game", "615;music.credits": "1;music/game/end/credits", "629;music.dragon": "1;music/game/end/boss", "630;music.end": "1;music/game/end/end", "631;music.game": "1;music/game/calm1", "632;music.menu": "1;music/menu/menu1", "633;music.nether.basalt_deltas": "0.5;music/game/nether/soulsand_valley/so_below", "636;music.nether.crimson_forest": "0.5;music/game/nether/crimson_forest/chrysopoeia", "634;music.nether.nether_wastes": "0.5;music/game/nether/nether_wastes/rubedo", "635;music.nether.soul_sand_valley": "0.5;music/game/nether/soulsand_valley/so_below", "638;music.under_water": "0.4;music/game/water/shuniji", "616;music_disc.11": "1;records/11", "617;music_disc.13": "1;records/13", "618;music_disc.blocks": "1;records/blocks", "619;music_disc.cat": "1;records/cat", "620;music_disc.chirp": "1;records/chirp", "621;music_disc.far": "1;records/far", "622;music_disc.mall": "1;records/mall", "623;music_disc.mellohi": "1;records/mellohi", "624;music_disc.pigstep": "1;records/pigstep", "625;music_disc.stal": "1;records/stal", "626;music_disc.strad": "1;records/strad", "627;music_disc.wait": "1;records/wait", "628;music_disc.ward": "1;records/ward", "961;particle.soul_escape": "0.25;enchant/soulspeed/soulspeed1", "1057;ui.button.click": "1;random/click_stereo", "1060;ui.cartography_table.take_result": "1;ui/cartography_table/drawmap1", "1058;ui.loom.select_pattern": "1;ui/loom/select_pattern1", "1059;ui.loom.take_result": "0.5;ui/loom/take_result1", "1062;ui.stonecutter.select_recipe": "1;random/click", "1061;ui.stonecutter.take_result": "1;ui/stonecutter/cut1", "1063;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "1064;ui.toast.in": "0.4;ui/toast/in", "1065;ui.toast.out": "0.4;ui/toast/out", "1111;weather.rain": "1;ambient/weather/rain1", "1112;weather.rain.above": "1;ambient/weather/rain1" }, "1.16.5": { "1;ambient.basalt_deltas.additions": "0.35;ambient/nether/basalt_deltas/debris1", "2;ambient.basalt_deltas.loop": "0.5;ambient/nether/basalt_deltas/ambience", "3;ambient.basalt_deltas.mood": "1;ambient/nether/nether_wastes/mood1", "0;ambient.cave": "1;ambient/cave/cave1", "4;ambient.crimson_forest.additions": "0.4;ambient/nether/crimson_forest/particles1", "5;ambient.crimson_forest.loop": "0.74;ambient/nether/crimson_forest/ambience", "6;ambient.crimson_forest.mood": "1;ambient/nether/crimson_forest/mood1", "7;ambient.nether_wastes.additions": "0.67;ambient/nether/nether_wastes/addition4", "8;ambient.nether_wastes.loop": "0.77;ambient/nether/nether_wastes/ambience", "9;ambient.nether_wastes.mood": "1;ambient/nether/nether_wastes/mood1", "10;ambient.soul_sand_valley.additions": "0.3;ambient/nether/soulsand_valley/wind1", "11;ambient.soul_sand_valley.loop": "0.85;ambient/nether/soulsand_valley/ambience", "12;ambient.soul_sand_valley.mood": "1;ambient/nether/soulsand_valley/mood1", "16;ambient.underwater.enter": "0.8;ambient/underwater/enter1", "17;ambient.underwater.exit": "0.5;ambient/underwater/exit1", "18;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "19;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "20;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "21;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "13;ambient.warped_forest.additions": "0.4;ambient/nether/crimson_forest/particles1", "14;ambient.warped_forest.loop": "0.71;ambient/nether/warped_forest/ambience", "15;ambient.warped_forest.mood": "1;ambient/nether/warped_forest/creak1", "22;block.ancient_debris.break": "1;block/ancient_debris/break1", "26;block.ancient_debris.fall": "1;block/basalt/step1", "25;block.ancient_debris.hit": "1;block/basalt/step1", "24;block.ancient_debris.place": "1;block/ancient_debris/break1", "23;block.ancient_debris.step": "1;block/basalt/step1", "27;block.anvil.break": "1;dig/stone1", "28;block.anvil.destroy": "1;random/anvil_break", "29;block.anvil.fall": "1;step/stone1", "30;block.anvil.hit": "1;step/stone1", "31;block.anvil.land": "1;random/anvil_land", "32;block.anvil.place": "1;random/anvil_land", "33;block.anvil.step": "1;step/stone1", "34;block.anvil.use": "1;random/anvil_use", "52;block.bamboo.break": "0.8;block/bamboo/place1", "53;block.bamboo.fall": "1;block/bamboo/step1", "54;block.bamboo.hit": "1;block/bamboo/step1", "55;block.bamboo.place": "0.8;block/bamboo/place1", "56;block.bamboo.step": "1;block/bamboo/step1", "57;block.bamboo_sapling.break": "0.9;block/bamboo/sapling_place1", "58;block.bamboo_sapling.hit": "0.8;block/bamboo/sapling_hit1", "59;block.bamboo_sapling.place": "0.85;block/bamboo/sapling_place1", "60;block.barrel.close": "1;block/barrel/close", "61;block.barrel.open": "1;block/barrel/open1", "62;block.basalt.break": "1;block/basalt/break1", "66;block.basalt.fall": "1;block/basalt/step1", "65;block.basalt.hit": "1;block/basalt/step1", "64;block.basalt.place": "1;block/basalt/break1", "63;block.basalt.step": "1;block/basalt/step1", "72;block.beacon.activate": "1;block/beacon/activate", "73;block.beacon.ambient": "0.9;block/beacon/ambient", "74;block.beacon.deactivate": "1;block/beacon/deactivate", "75;block.beacon.power_select": "1;block/beacon/power1", "82;block.beehive.drip": "0.3;block/beehive/drip1", "83;block.beehive.enter": "1;block/beehive/enter", "84;block.beehive.exit": "1;block/beehive/exit", "85;block.beehive.shear": "0.8;block/beehive/shear", "86;block.beehive.work": "0.6;block/beehive/work1", "88;block.bell.resonate": "1;block/bell/resonate", "87;block.bell.use": "12;block/bell/bell_use01", "103;block.blastfurnace.fire_crackle": "1;block/blastfurnace/blastfurnace1", "96;block.bone_block.break": "0.9;block/bone_block/break1", "97;block.bone_block.fall": "1;block/bone_block/step1", "98;block.bone_block.hit": "1;block/bone_block/step1", "99;block.bone_block.place": "0.9;block/bone_block/break1", "100;block.bone_block.step": "1;block/bone_block/step1", "107;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "108;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "109;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "110;block.bubble_column.upwards_inside": "0.7;block/bubble_column/upwards_inside", "111;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "112;block.bubble_column.whirlpool_inside": "0.7;block/bubble_column/whirlpool_inside", "119;block.campfire.crackle": "1;block/campfire/crackle1", "129;block.chain.break": "0.5;block/chain/break1", "130;block.chain.fall": "1;block/chain/step1", "131;block.chain.hit": "0.8;block/chain/step1", "132;block.chain.place": "0.5;block/chain/break1", "133;block.chain.step": "1;block/chain/step1", "134;block.chest.close": "1;block/chest/close", "135;block.chest.locked": "1;block/wooden_door/close", "136;block.chest.open": "1;block/chest/open", "142;block.chorus_flower.death": "1;block/chorus_flower/death1", "143;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "149;block.comparator.click": "1;random/click", "150;block.composter.empty": "1;block/composter/empty1", "151;block.composter.fill": "0.3;block/composter/fill1", "152;block.composter.fill_success": "1;block/composter/fill_success1", "153;block.composter.ready": "1;block/composter/ready1", "154;block.conduit.activate": "0.9;block/conduit/activate", "155;block.conduit.ambient": "1;block/conduit/ambient", "156;block.conduit.ambient.short": "1;block/conduit/short1", "157;block.conduit.attack.target": "1;block/conduit/attack1", "158;block.conduit.deactivate": "0.7;block/conduit/deactivate", "159;block.coral_block.break": "1;dig/coral1", "160;block.coral_block.fall": "1;step/coral1", "161;block.coral_block.hit": "1;step/coral1", "162;block.coral_block.place": "1;dig/coral1", "163;block.coral_block.step": "1;step/coral1", "172;block.crop.break": "0.9;block/bamboo/sapling_place1", "182;block.dispenser.dispense": "1;random/click", "183;block.dispenser.fail": "1;random/click", "184;block.dispenser.launch": "1;random/bow", "220;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "243;block.end_gateway.spawn": "1;random/explode1", "245;block.end_portal.spawn": "1;block/end_portal/endportal", "244;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "221;block.ender_chest.close": "1;block/enderchest/close", "222;block.ender_chest.open": "1;block/enderchest/open", "257;block.fence_gate.close": "1;block/fence_gate/close1", "258;block.fence_gate.open": "1;block/fence_gate/open1", "268;block.fire.ambient": "1;fire/fire", "269;block.fire.extinguish": "1;random/fizz", "510;block.fungus.break": "1;block/fungus/break1", "512;block.fungus.place": "1;block/fungus/break1", "511;block.fungus.step": "0.9;item/plant/netherwart1", "291;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "309;block.gilded_blackstone.break": "1;block/nether_ore/break1", "310;block.gilded_blackstone.fall": "1;block/nether_ore/step1", "311;block.gilded_blackstone.hit": "1;block/nether_ore/step1", "312;block.gilded_blackstone.place": "1;block/nether_ore/break1", "313;block.gilded_blackstone.step": "1;block/nether_ore/step1", "314;block.glass.break": "1;random/glass1", "315;block.glass.fall": "1;step/stone1", "316;block.glass.hit": "1;step/stone1", "317;block.glass.place": "1;dig/stone1", "318;block.glass.step": "1;step/stone1", "319;block.grass.break": "1;dig/grass1", "320;block.grass.fall": "1;step/grass1", "321;block.grass.hit": "1;step/grass1", "322;block.grass.place": "1;dig/grass1", "323;block.grass.step": "1;step/grass1", "324;block.gravel.break": "1;dig/gravel1", "325;block.gravel.fall": "1;step/gravel1", "326;block.gravel.hit": "1;step/gravel1", "327;block.gravel.place": "1;dig/gravel1", "328;block.gravel.step": "1;step/gravel1", "329;block.grindstone.use": "0.5;block/grindstone/grindstone1", "347;block.honey_block.break": "1;block/honeyblock/break1", "348;block.honey_block.fall": "1;block/honeyblock/step1", "349;block.honey_block.hit": "1;block/honeyblock/step1", "350;block.honey_block.place": "1;block/honeyblock/break1", "351;block.honey_block.slide": "0.8;block/honeyblock/slide1", "352;block.honey_block.step": "1;block/honeyblock/step1", "385;block.iron_door.close": "1;block/iron_door/close1", "386;block.iron_door.open": "1;block/iron_door/open1", "393;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "394;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "402;block.ladder.break": "1;dig/wood1", "403;block.ladder.fall": "1;step/ladder1", "404;block.ladder.hit": "1;step/ladder1", "405;block.ladder.place": "1;dig/wood1", "406;block.ladder.step": "1;step/ladder1", "407;block.lantern.break": "1;block/lantern/break1", "408;block.lantern.fall": "1;block/lantern/break1", "409;block.lantern.hit": "1;block/lantern/place1", "410;block.lantern.place": "1;block/lantern/place1", "411;block.lantern.step": "1;block/lantern/break1", "412;block.lava.ambient": "1;liquid/lava", "413;block.lava.extinguish": "1;random/fizz", "414;block.lava.pop": "1;liquid/lavapop", "417;block.lever.click": "1;random/click", "901;block.lily_pad.place": "1;block/waterlily/place1", "431;block.lodestone.break": "1;dig/stone1", "435;block.lodestone.fall": "1;step/stone1", "434;block.lodestone.hit": "1;step/stone1", "433;block.lodestone.place": "1;block/lodestone/place1", "432;block.lodestone.step": "1;step/stone1", "443;block.metal.break": "1;dig/stone1", "444;block.metal.fall": "1;step/stone1", "445;block.metal.hit": "1;step/stone1", "446;block.metal.place": "1;dig/stone1", "449;block.metal.step": "1;step/stone1", "447;block.metal_pressure_plate.click_off": "1;random/click", "448;block.metal_pressure_plate.click_on": "1;random/click", "488;block.nether_bricks.break": "0.8;block/nether_bricks/break1", "492;block.nether_bricks.fall": "1;block/nether_bricks/step1", "491;block.nether_bricks.hit": "1;block/nether_bricks/step1", "490;block.nether_bricks.place": "0.8;block/nether_bricks/break1", "489;block.nether_bricks.step": "1;block/nether_bricks/step1", "688;block.nether_gold_ore.break": "1;block/nether_ore/break1", "689;block.nether_gold_ore.fall": "1;block/nether_ore/step1", "690;block.nether_gold_ore.hit": "1;block/nether_ore/step1", "691;block.nether_gold_ore.place": "1;block/nether_ore/break1", "692;block.nether_gold_ore.step": "1;block/nether_ore/step1", "693;block.nether_ore.break": "1;block/nether_ore/break1", "694;block.nether_ore.fall": "1;block/nether_ore/step1", "695;block.nether_ore.hit": "1;block/nether_ore/step1", "696;block.nether_ore.place": "1;block/nether_ore/break1", "697;block.nether_ore.step": "1;block/nether_ore/step1", "505;block.nether_sprouts.break": "0.7;block/nether_sprouts/break1", "509;block.nether_sprouts.fall": "1;block/nether_sprouts/step1", "508;block.nether_sprouts.hit": "1;block/nether_sprouts/step1", "507;block.nether_sprouts.place": "0.7;block/nether_sprouts/break1", "506;block.nether_sprouts.step": "0.5;block/nether_sprouts/step1", "493;block.nether_wart.break": "0.9;item/plant/netherwart1", "525;block.netherite_block.break": "0.95;block/netherite/break1", "529;block.netherite_block.fall": "1;block/netherite/step1", "528;block.netherite_block.hit": "1;block/netherite/step1", "527;block.netherite_block.place": "0.95;block/netherite/break1", "526;block.netherite_block.step": "1;block/netherite/step1", "530;block.netherrack.break": "1;block/netherrack/break1", "534;block.netherrack.fall": "1;block/netherrack/step1", "533;block.netherrack.hit": "0.55;block/netherrack/step1", "532;block.netherrack.place": "1;block/netherrack/break1", "531;block.netherrack.step": "1;block/netherrack/step1", "550;block.note_block.banjo": "1;note/banjo", "535;block.note_block.basedrum": "1;note/bd", "536;block.note_block.bass": "1;note/bassattack", "537;block.note_block.bell": "1;note/bell", "549;block.note_block.bit": "1;note/bit", "538;block.note_block.chime": "1;note/icechime", "547;block.note_block.cow_bell": "1;note/cow_bell", "548;block.note_block.didgeridoo": "1;note/didgeridoo", "539;block.note_block.flute": "1;note/flute", "540;block.note_block.guitar": "1;note/guitar", "541;block.note_block.harp": "1;note/harp2", "542;block.note_block.hat": "1;note/hat", "546;block.note_block.iron_xylophone": "1;note/iron_xylophone", "543;block.note_block.pling": "1;note/pling", "544;block.note_block.snare": "1;note/snare", "545;block.note_block.xylophone": "1;note/xylobone", "500;block.nylium.break": "0.85;block/nylium/break1", "504;block.nylium.fall": "1;block/nylium/step1", "503;block.nylium.hit": "1;block/nylium/step1", "502;block.nylium.place": "0.85;block/nylium/break1", "501;block.nylium.step": "1;block/nylium/step1", "636;block.piston.contract": "1;tile/piston/in", "637;block.piston.extend": "1;tile/piston/out", "663;block.portal.ambient": "1;portal/portal", "664;block.portal.travel": "1;portal/travel", "665;block.portal.trigger": "1;portal/trigger", "673;block.pumpkin.carve": "1;block/pumpkin/carve1", "698;block.redstone_torch.burnout": "1;random/fizz", "699;block.respawn_anchor.ambient": "1;block/respawn_anchor/ambient1", "700;block.respawn_anchor.charge": "1;block/respawn_anchor/charge1", "701;block.respawn_anchor.deplete": "1;block/respawn_anchor/deplete1", "702;block.respawn_anchor.set_spawn": "1;block/respawn_anchor/set_spawn1", "286;block.roots.break": "1;block/roots/break1", "288;block.roots.place": "1;block/roots/break1", "707;block.sand.break": "1;dig/sand1", "708;block.sand.fall": "1;step/sand1", "709;block.sand.hit": "1;step/sand1", "710;block.sand.place": "1;dig/sand1", "711;block.sand.step": "1;step/sand1", "712;block.scaffolding.break": "0.8;block/scaffold/place1", "713;block.scaffolding.fall": "1;step/scaffold1", "714;block.scaffolding.hit": "1;step/scaffold1", "715;block.scaffolding.place": "0.9;block/scaffold/place1", "716;block.scaffolding.step": "1;step/scaffold1", "724;block.shroomlight.break": "1;block/shroomlight/break1", "728;block.shroomlight.fall": "1;block/shroomlight/step1", "727;block.shroomlight.hit": "1;block/shroomlight/step1", "726;block.shroomlight.place": "1;block/shroomlight/break1", "725;block.shroomlight.step": "1;block/shroomlight/step1", "731;block.shulker_box.close": "1;block/shulker_box/close", "732;block.shulker_box.open": "1;block/shulker_box/open", "764;block.slime_block.break": "1;mob/slime/big1", "765;block.slime_block.fall": "1;mob/slime/small1", "766;block.slime_block.hit": "1;mob/slime/small1", "767;block.slime_block.place": "1;mob/slime/big1", "768;block.slime_block.step": "1;mob/slime/small1", "793;block.smithing_table.use": "1;block/smithing_table/smithing_table1", "794;block.smoker.smoke": "1;block/smoker/smoker1", "796;block.snow.break": "1;dig/snow1", "797;block.snow.fall": "1;step/snow1", "803;block.snow.hit": "1;step/snow1", "804;block.snow.place": "1;dig/snow1", "805;block.snow.step": "1;step/snow1", "769;block.soul_sand.break": "1;block/soul_sand/break1", "773;block.soul_sand.fall": "1;block/soul_sand/step1", "772;block.soul_sand.hit": "0.55;block/soul_sand/step1", "771;block.soul_sand.place": "1;block/soul_sand/break1", "770;block.soul_sand.step": "1;block/soul_sand/step1", "774;block.soul_soil.break": "0.8;block/soul_soil/break1", "778;block.soul_soil.fall": "1;block/soul_soil/step1", "777;block.soul_soil.hit": "0.66;block/soul_soil/step1", "776;block.soul_soil.place": "0.8;block/soul_soil/break1", "775;block.soul_soil.step": "1;block/soul_soil/step1", "495;block.stem.break": "1;block/stem/break1", "499;block.stem.fall": "1;block/stem/step1", "498;block.stem.hit": "0.8;block/stem/step1", "497;block.stem.place": "0.8;block/stem/break1", "496;block.stem.step": "1;block/stem/step1", "816;block.stone.break": "1;dig/stone1", "819;block.stone.fall": "1;step/stone1", "820;block.stone.hit": "1;step/stone1", "821;block.stone.place": "1;dig/stone1", "824;block.stone.step": "1;step/stone1", "817;block.stone_button.click_off": "1;random/click", "818;block.stone_button.click_on": "1;random/click", "822;block.stone_pressure_plate.click_off": "1;random/click", "823;block.stone_pressure_plate.click_on": "1;random/click", "829;block.sweet_berry_bush.break": "0.8;block/sweet_berry_bush/break1", "830;block.sweet_berry_bush.place": "0.8;block/sweet_berry_bush/place1", "843;block.tripwire.attach": "1;random/click", "844;block.tripwire.click_off": "1;random/click", "845;block.tripwire.click_on": "1;random/click", "846;block.tripwire.detach": "1;random/bowhit1", "900;block.vine.step": "1;block/vine/climb1", "520;block.wart_block.break": "0.8;block/netherwart/break1", "524;block.wart_block.fall": "1;block/netherwart/step1", "523;block.wart_block.hit": "0.7;block/netherwart/step1", "522;block.wart_block.place": "0.8;block/netherwart/break1", "521;block.wart_block.step": "1;block/netherwart/step1", "912;block.water.ambient": "1;liquid/water", "515;block.weeping_vines.break": "1;block/roots/break1", "519;block.weeping_vines.fall": "1;block/roots/break1", "518;block.weeping_vines.hit": "1;block/roots/break1", "517;block.weeping_vines.place": "1;block/roots/break1", "516;block.weeping_vines.step": "1;block/roots/step1", "915;block.wet_grass.break": "0.8;dig/wet_grass1", "916;block.wet_grass.fall": "1;step/wet_grass1", "917;block.wet_grass.hit": "1;step/wet_grass1", "918;block.wet_grass.place": "0.8;dig/wet_grass1", "919;block.wet_grass.step": "1;step/wet_grass1", "949;block.wood.break": "1;dig/wood1", "952;block.wood.fall": "1;step/wood1", "953;block.wood.hit": "1;step/wood1", "954;block.wood.place": "1;dig/wood1", "957;block.wood.step": "1;step/wood1", "950;block.wooden_button.click_off": "1;random/wood_click", "951;block.wooden_button.click_on": "1;random/wood_click", "945;block.wooden_door.close": "1;block/wooden_door/close2", "946;block.wooden_door.open": "1;block/wooden_door/open3", "955;block.wooden_pressure_plate.click_off": "1;random/click", "956;block.wooden_pressure_plate.click_on": "1;random/click", "947;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "948;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "958;block.wool.break": "1;dig/cloth1", "959;block.wool.fall": "1;step/cloth1", "960;block.wool.hit": "1;step/cloth1", "961;block.wool.place": "1;dig/cloth1", "962;block.wool.step": "1;step/cloth1", "832;enchant.thorns.hit": "1;enchant/thorns/hit1", "44;entity.armor_stand.break": "1;entity/armorstand/break1", "45;entity.armor_stand.fall": "1;dig/wood1", "46;entity.armor_stand.hit": "1;entity/armorstand/hit1", "47;entity.armor_stand.place": "1;dig/stone1", "48;entity.arrow.hit": "1;random/bowhit1", "49;entity.arrow.hit_player": "1;random/successful_hit", "50;entity.arrow.shoot": "1;random/bow", "67;entity.bat.ambient": "1;mob/bat/idle1", "68;entity.bat.death": "1;mob/bat/death", "69;entity.bat.hurt": "1;mob/bat/hurt1", "70;entity.bat.loop": "1;mob/bat/loop", "71;entity.bat.takeoff": "1;mob/bat/takeoff", "76;entity.bee.death": "1;mob/bee/death1", "77;entity.bee.hurt": "1;mob/bee/hurt1", "79;entity.bee.loop": "0.75;mob/bee/loop5", "78;entity.bee.loop_aggressive": "0.8;mob/bee/aggressive1", "81;entity.bee.pollinate": "0.8;mob/bee/pollinate1", "80;entity.bee.sting": "1;mob/bee/sting", "89;entity.blaze.ambient": "1;mob/blaze/breathe1", "90;entity.blaze.burn": "1;fire/fire", "91;entity.blaze.death": "1;mob/blaze/death", "92;entity.blaze.hurt": "1;mob/blaze/hit1", "93;entity.blaze.shoot": "1;mob/ghast/fireball4", "94;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "95;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "120;entity.cat.ambient": "0.6;mob/cat/meow1", "125;entity.cat.beg_for_food": "0.7;mob/cat/beg1", "122;entity.cat.death": "0.75;mob/cat/hitt1", "123;entity.cat.eat": "1;mob/cat/eat1", "124;entity.cat.hiss": "0.4;mob/cat/hiss1", "126;entity.cat.hurt": "0.65;mob/cat/hitt1", "127;entity.cat.purr": "0.7;mob/cat/purr1", "128;entity.cat.purreow": "0.5;mob/cat/purreow1", "121;entity.cat.stray_ambient": "0.35;mob/cat/stray/idle1", "137;entity.chicken.ambient": "1;mob/chicken/say1", "138;entity.chicken.death": "1;mob/chicken/hurt1", "139;entity.chicken.egg": "1;mob/chicken/plop", "140;entity.chicken.hurt": "1;mob/chicken/hurt1", "141;entity.chicken.step": "1;mob/chicken/step1", "146;entity.cod.death": "1;entity/fish/hurt1", "147;entity.cod.flop": "0.3;entity/fish/flop1", "148;entity.cod.hurt": "1;entity/fish/hurt1", "164;entity.cow.ambient": "1;mob/cow/say1", "165;entity.cow.death": "1;mob/cow/hurt1", "166;entity.cow.hurt": "1;mob/cow/hurt1", "167;entity.cow.milk": "1;entity/cow/milk1", "168;entity.cow.step": "1;mob/cow/step1", "169;entity.creeper.death": "1;mob/creeper/death", "170;entity.creeper.hurt": "1;mob/creeper/say1", "171;entity.creeper.primed": "1;random/fuse", "185;entity.dolphin.ambient": "1;mob/dolphin/idle1", "186;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "187;entity.dolphin.attack": "1;mob/dolphin/attack1", "188;entity.dolphin.death": "1;mob/dolphin/death1", "189;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "190;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "191;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "192;entity.dolphin.play": "1;mob/dolphin/play1", "193;entity.dolphin.splash": "1;mob/dolphin/splash1", "194;entity.dolphin.swim": "1;mob/dolphin/swim1", "195;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "196;entity.donkey.angry": "1;mob/horse/donkey/angry1", "197;entity.donkey.chest": "1;mob/chicken/plop", "198;entity.donkey.death": "1;mob/horse/donkey/death", "199;entity.donkey.eat": "1;entity/horse/eat1", "200;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "225;entity.dragon_fireball.explode": "1;random/explode1", "201;entity.drowned.ambient": "0.9;mob/drowned/idle1", "202;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "203;entity.drowned.death": "0.9;mob/drowned/death1", "204;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "205;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "206;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "207;entity.drowned.shoot": "1;item/trident/throw1", "208;entity.drowned.step": "1;mob/drowned/step1", "209;entity.drowned.swim": "1;liquid/swim1", "210;entity.egg.throw": "1;random/bow", "211;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "212;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "213;entity.elder_guardian.curse": "1;mob/guardian/curse", "214;entity.elder_guardian.death": "1;mob/guardian/elder_death", "215;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "216;entity.elder_guardian.flop": "1;mob/guardian/flop1", "217;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "218;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "223;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "224;entity.ender_dragon.death": "1;mob/enderdragon/end", "226;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "227;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "228;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "229;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "230;entity.ender_eye.death": "1.3;entity/endereye/dead1", "231;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "242;entity.ender_pearl.throw": "1;random/bow", "232;entity.enderman.ambient": "1;mob/endermen/idle1", "233;entity.enderman.death": "1;mob/endermen/death", "234;entity.enderman.hurt": "1;mob/endermen/hit1", "235;entity.enderman.scream": "1;mob/endermen/scream1", "236;entity.enderman.stare": "1;mob/endermen/stare", "237;entity.enderman.teleport": "1;mob/endermen/portal", "238;entity.endermite.ambient": "1;mob/silverfish/say1", "239;entity.endermite.death": "1;mob/silverfish/kill", "240;entity.endermite.hurt": "1;mob/silverfish/hit1", "241;entity.endermite.step": "1;mob/silverfish/step1", "246;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "247;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "248;entity.evoker.celebrate": "1;mob/evocation_illager/celebrate", "249;entity.evoker.death": "1;mob/evocation_illager/death1", "251;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "252;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "253;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "254;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "250;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "255;entity.experience_bottle.throw": "1;random/bow", "256;entity.experience_orb.pickup": "1;random/orb", "260;entity.firework_rocket.blast": "1;fireworks/blast1", "261;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "262;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "263;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "264;entity.firework_rocket.launch": "1;fireworks/launch1", "265;entity.firework_rocket.shoot": "1;random/bow", "266;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "267;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "270;entity.fish.swim": "1;entity/fish/swim1", "271;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "272;entity.fishing_bobber.splash": "1;random/splash", "273;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "275;entity.fox.aggro": "0.65;mob/fox/aggro1", "276;entity.fox.ambient": "0.8;mob/fox/idle1", "277;entity.fox.bite": "0.6;mob/fox/bite1", "278;entity.fox.death": "0.9;mob/fox/death1", "279;entity.fox.eat": "0.65;mob/fox/eat1", "280;entity.fox.hurt": "0.75;mob/fox/hurt1", "281;entity.fox.screech": "0.45;mob/fox/screech1", "282;entity.fox.sleep": "0.8;mob/fox/sleep1", "283;entity.fox.sniff": "0.6;mob/fox/sniff1", "284;entity.fox.spit": "0.7;mob/fox/spit1", "285;entity.fox.teleport": "1;mob/endermen/portal", "292;entity.generic.big_fall": "1;damage/fallbig", "293;entity.generic.burn": "1;random/fizz", "294;entity.generic.death": "1;damage/hit1", "295;entity.generic.drink": "1;random/drink", "296;entity.generic.eat": "1;random/eat1", "297;entity.generic.explode": "1;random/explode1", "298;entity.generic.extinguish_fire": "1;random/fizz", "299;entity.generic.hurt": "1;damage/hit1", "300;entity.generic.small_fall": "1;damage/fallsmall", "301;entity.generic.splash": "1;liquid/splash", "302;entity.generic.swim": "1;liquid/swim1", "303;entity.ghast.ambient": "1;mob/ghast/moan1", "304;entity.ghast.death": "1;mob/ghast/death", "305;entity.ghast.hurt": "1;mob/ghast/scream1", "306;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "307;entity.ghast.shoot": "1;mob/ghast/fireball4", "308;entity.ghast.warn": "1;mob/ghast/charge", "330;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "331;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "332;entity.guardian.attack": "1;mob/guardian/attack_loop", "333;entity.guardian.death": "1;mob/guardian/guardian_death", "334;entity.guardian.death_land": "1;mob/guardian/land_death", "335;entity.guardian.flop": "1;mob/guardian/flop1", "336;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "337;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "339;entity.hoglin.ambient": "0.65;mob/hoglin/idle1", "340;entity.hoglin.angry": "1;mob/hoglin/angry1", "341;entity.hoglin.attack": "0.8;mob/hoglin/attack1", "342;entity.hoglin.converted_to_zombified": "0.8;mob/hoglin/converted1", "343;entity.hoglin.death": "0.9;mob/hoglin/death1", "344;entity.hoglin.hurt": "0.8;mob/hoglin/hurt1", "345;entity.hoglin.retreat": "0.7;mob/hoglin/retreat1", "346;entity.hoglin.step": "1;mob/hoglin/step1", "354;entity.horse.ambient": "1;mob/horse/idle1", "355;entity.horse.angry": "1;mob/horse/angry1", "356;entity.horse.armor": "1;mob/horse/armor", "357;entity.horse.breathe": "1;mob/horse/breathe1", "358;entity.horse.death": "1;mob/horse/death", "359;entity.horse.eat": "1;entity/horse/eat1", "360;entity.horse.gallop": "1;mob/horse/gallop1", "361;entity.horse.hurt": "1;mob/horse/hit1", "362;entity.horse.jump": "1;mob/horse/jump", "363;entity.horse.land": "1;mob/horse/land", "364;entity.horse.saddle": "1;mob/horse/leather", "365;entity.horse.step": "1;mob/horse/soft1", "366;entity.horse.step_wood": "1;mob/horse/wood1", "367;entity.hostile.big_fall": "1;damage/fallbig", "368;entity.hostile.death": "1;damage/hit1", "369;entity.hostile.hurt": "1;damage/hit1", "370;entity.hostile.small_fall": "1;damage/fallsmall", "371;entity.hostile.splash": "1;liquid/splash", "372;entity.hostile.swim": "1;liquid/swim1", "373;entity.husk.ambient": "1;mob/husk/idle1", "374;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "375;entity.husk.death": "1;mob/husk/death1", "376;entity.husk.hurt": "1;mob/husk/hurt1", "377;entity.husk.step": "1;mob/husk/step1", "378;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "379;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "380;entity.illusioner.death": "1;mob/illusion_illager/death1", "381;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "382;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "383;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "384;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "387;entity.iron_golem.attack": "1;mob/irongolem/throw", "388;entity.iron_golem.damage": "0.8;mob/irongolem/damage1", "389;entity.iron_golem.death": "1;mob/irongolem/death", "390;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "391;entity.iron_golem.repair": "1;mob/irongolem/repair", "392;entity.iron_golem.step": "1;mob/irongolem/walk1", "400;entity.item.break": "1;random/break", "401;entity.item.pickup": "1;random/pop", "395;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "396;entity.item_frame.break": "1;entity/itemframe/break1", "397;entity.item_frame.place": "1;entity/itemframe/place1", "398;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "399;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "415;entity.leash_knot.break": "1;entity/leashknot/break1", "416;entity.leash_knot.place": "1;entity/leashknot/place1", "418;entity.lightning_bolt.impact": "1;random/explode1", "419;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "420;entity.lingering_potion.throw": "1;random/bow", "421;entity.llama.ambient": "1;mob/llama/idle1", "422;entity.llama.angry": "1;mob/llama/angry1", "423;entity.llama.chest": "1;mob/chicken/plop", "424;entity.llama.death": "1;mob/llama/death1", "425;entity.llama.eat": "1;mob/llama/eat1", "426;entity.llama.hurt": "1;mob/llama/hurt1", "427;entity.llama.spit": "1;mob/llama/spit1", "428;entity.llama.step": "1;mob/llama/step1", "429;entity.llama.swag": "1;mob/llama/swag", "437;entity.magma_cube.death": "1;mob/slime/big1", "430;entity.magma_cube.death_small": "1;mob/slime/small1", "438;entity.magma_cube.hurt": "1;mob/slime/big1", "439;entity.magma_cube.hurt_small": "1;mob/slime/small1", "440;entity.magma_cube.jump": "1;mob/magmacube/jump1", "441;entity.magma_cube.squish": "1;mob/magmacube/big1", "442;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "450;entity.minecart.inside": "1;minecart/inside", "451;entity.minecart.riding": "1;minecart/base", "452;entity.mooshroom.convert": "0.75;mob/mooshroom/convert1", "453;entity.mooshroom.eat": "1;mob/mooshroom/eat1", "454;entity.mooshroom.milk": "1;mob/mooshroom/milk1", "456;entity.mooshroom.shear": "1;mob/sheep/shear", "455;entity.mooshroom.suspicious_milk": "1;mob/mooshroom/milk1", "457;entity.mule.ambient": "1;mob/horse/donkey/idle1", "458;entity.mule.angry": "1;mob/horse/donkey/angry1", "459;entity.mule.chest": "1;mob/chicken/plop", "460;entity.mule.death": "1;mob/horse/donkey/death", "461;entity.mule.eat": "1;entity/horse/eat1", "462;entity.mule.hurt": "1;mob/horse/donkey/hit1", "552;entity.ocelot.ambient": "0.3;mob/cat/ocelot/idle1", "553;entity.ocelot.death": "0.45;mob/cat/ocelot/death1", "551;entity.ocelot.hurt": "0.45;mob/cat/hitt1", "554;entity.painting.break": "1;entity/painting/break1", "555;entity.painting.place": "1;entity/painting/place1", "563;entity.panda.aggressive_ambient": "1;mob/panda/aggressive/aggressive1", "558;entity.panda.ambient": "1;mob/panda/idle1", "566;entity.panda.bite": "1;mob/panda/bite1", "562;entity.panda.cant_breed": "1;mob/panda/cant_breed1", "559;entity.panda.death": "0.82;mob/panda/death1", "560;entity.panda.eat": "1;mob/panda/eat1", "565;entity.panda.hurt": "0.82;mob/panda/hurt1", "556;entity.panda.pre_sneeze": "1;mob/panda/pre_sneeze", "557;entity.panda.sneeze": "1;mob/panda/sneeze1", "561;entity.panda.step": "1;mob/panda/step1", "564;entity.panda.worried_ambient": "1;mob/panda/worried/worried2", "567;entity.parrot.ambient": "0.7;mob/parrot/idle1", "568;entity.parrot.death": "1;mob/parrot/death1", "569;entity.parrot.eat": "1;mob/parrot/eat1", "570;entity.parrot.fly": "1;mob/parrot/fly1", "571;entity.parrot.hurt": "1;mob/parrot/hurt1", "572;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "573;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "574;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "575;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "576;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "577;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "578;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "579;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "580;entity.parrot.imitate.guardian": "0.4;entity.guardian.ambient", "581;entity.parrot.imitate.hoglin": "0.6;entity.hoglin.ambient", "582;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "583;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "584;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "585;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "586;entity.parrot.imitate.piglin": "0.6;entity.piglin.ambient", "587;entity.parrot.imitate.piglin_brute": "0.6;entity.piglin_brute.ambient", "588;entity.parrot.imitate.pillager": "0.4;entity.pillager.ambient", "589;entity.parrot.imitate.ravager": "0.2;entity.ravager.ambient", "590;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "591;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "592;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "593;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "594;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "595;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "596;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "597;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "598;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "599;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "600;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "601;entity.parrot.imitate.zoglin": "0.6;entity.zoglin.ambient", "602;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "603;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "604;entity.parrot.step": "1;mob/parrot/step1", "605;entity.phantom.ambient": "0.8;mob/phantom/idle1", "606;entity.phantom.bite": "1;mob/phantom/bite1", "607;entity.phantom.death": "1;mob/phantom/death1", "608;entity.phantom.flap": "0.9;mob/phantom/flap1", "609;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "610;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "611;entity.pig.ambient": "1;mob/pig/say1", "612;entity.pig.death": "1;mob/pig/death", "613;entity.pig.hurt": "1;mob/pig/say1", "614;entity.pig.saddle": "1;mob/horse/leather", "615;entity.pig.step": "1;mob/pig/step1", "616;entity.piglin.admiring_item": "0.8;mob/piglin/admire1", "617;entity.piglin.ambient": "0.66;mob/piglin/idle1", "618;entity.piglin.angry": "0.7;mob/piglin/angry1", "619;entity.piglin.celebrate": "0.8;mob/piglin/celebrate1", "625;entity.piglin.converted_to_zombified": "1;mob/piglin/converted1", "620;entity.piglin.death": "0.7;mob/piglin/death1", "622;entity.piglin.hurt": "0.7;mob/piglin/hurt1", "621;entity.piglin.jealous": "0.8;mob/piglin/jealous1", "623;entity.piglin.retreat": "0.65;mob/piglin/retreat1", "624;entity.piglin.step": "0.75;mob/piglin/step1", "626;entity.piglin_brute.ambient": "0.9;mob/piglin_brute/idle1", "627;entity.piglin_brute.angry": "0.9;mob/piglin_brute/angry1", "631;entity.piglin_brute.converted_to_zombified": "1;mob/piglin/converted1", "628;entity.piglin_brute.death": "0.8;mob/piglin_brute/death1", "629;entity.piglin_brute.hurt": "0.64;mob/piglin_brute/hurt1", "630;entity.piglin_brute.step": "0.75;mob/piglin_brute/step1", "632;entity.pillager.ambient": "1;mob/pillager/idle1", "633;entity.pillager.celebrate": "1;mob/pillager/celebrate1", "634;entity.pillager.death": "1;mob/pillager/death1", "635;entity.pillager.hurt": "1;mob/pillager/hurt1", "638;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "639;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "640;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "641;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "642;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "643;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "644;entity.player.big_fall": "1;damage/fallbig", "645;entity.player.breath": "1;random/breath", "646;entity.player.burp": "1;random/burp", "647;entity.player.death": "1;damage/hit1", "648;entity.player.hurt": "1;damage/hit1", "649;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "650;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "651;entity.player.hurt_sweet_berry_bush": "1;entity/player/hurt/berrybush_hurt1", "652;entity.player.levelup": "1;random/levelup", "653;entity.player.small_fall": "1;damage/fallsmall", "654;entity.player.splash": "1;liquid/splash", "655;entity.player.splash.high_speed": "1;liquid/heavy_splash", "656;entity.player.swim": "1;liquid/swim5", "657;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "658;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "659;entity.polar_bear.death": "1;mob/polarbear/death1", "660;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "661;entity.polar_bear.step": "1;mob/polarbear/step1", "662;entity.polar_bear.warning": "1;mob/polarbear/warning3", "667;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "668;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "669;entity.puffer_fish.death": "1;entity/pufferfish/death1", "670;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "671;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "672;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "674;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "675;entity.rabbit.attack": "1;entity/rabbit/attack1", "676;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "677;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "678;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "680;entity.ravager.ambient": "1;mob/ravager/idle1", "681;entity.ravager.attack": "1;mob/ravager/bite1", "682;entity.ravager.celebrate": "1;mob/ravager/celebrate1", "683;entity.ravager.death": "1;mob/ravager/death1", "684;entity.ravager.hurt": "1;mob/ravager/hurt1", "687;entity.ravager.roar": "1;mob/ravager/roar1", "685;entity.ravager.step": "1;mob/ravager/step1", "686;entity.ravager.stunned": "1;mob/ravager/stun1", "704;entity.salmon.death": "1;entity/fish/hurt1", "705;entity.salmon.flop": "0.3;entity/fish/flop1", "706;entity.salmon.hurt": "1;entity/fish/hurt1", "717;entity.sheep.ambient": "1;mob/sheep/say1", "718;entity.sheep.death": "1;mob/sheep/say1", "719;entity.sheep.hurt": "1;mob/sheep/say1", "720;entity.sheep.shear": "1;mob/sheep/shear", "721;entity.sheep.step": "1;mob/sheep/step1", "730;entity.shulker.ambient": "1;entity/shulker/ambient1", "735;entity.shulker.close": "1;entity/shulker/close1", "736;entity.shulker.death": "1;entity/shulker/death1", "737;entity.shulker.hurt": "1;entity/shulker/hurt1", "738;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "739;entity.shulker.open": "1;entity/shulker/open1", "740;entity.shulker.shoot": "1;entity/shulker/shoot1", "741;entity.shulker.teleport": "1;mob/endermen/portal", "733;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "734;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "742;entity.silverfish.ambient": "1;mob/silverfish/say1", "743;entity.silverfish.death": "1;mob/silverfish/kill", "744;entity.silverfish.hurt": "1;mob/silverfish/hit1", "745;entity.silverfish.step": "1;mob/silverfish/step1", "746;entity.skeleton.ambient": "1;mob/skeleton/say1", "747;entity.skeleton.death": "1;mob/skeleton/death", "756;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "757;entity.skeleton.shoot": "1;random/bow", "758;entity.skeleton.step": "1;mob/skeleton/step1", "748;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "752;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "749;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "753;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "750;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "754;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "755;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "751;entity.skeleton_horse.swim": "0.4;liquid/swim9", "759;entity.slime.attack": "1;mob/slime/attack1", "760;entity.slime.death": "1;mob/slime/big1", "789;entity.slime.death_small": "1;mob/slime/small1", "761;entity.slime.hurt": "1;mob/slime/big1", "790;entity.slime.hurt_small": "1;mob/slime/small1", "762;entity.slime.jump": "1;mob/slime/big1", "791;entity.slime.jump_small": "1;mob/slime/small1", "763;entity.slime.squish": "1;mob/slime/big1", "792;entity.slime.squish_small": "1;mob/slime/small1", "799;entity.snow_golem.death": "1;entity/snowman/death1", "800;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "802;entity.snow_golem.shear": "1;mob/sheep/shear", "801;entity.snow_golem.shoot": "1;random/bow", "795;entity.snowball.throw": "1;random/bow", "806;entity.spider.ambient": "1;mob/spider/say1", "807;entity.spider.death": "1;mob/spider/death", "808;entity.spider.hurt": "1;mob/spider/say1", "809;entity.spider.step": "1;mob/spider/step1", "810;entity.splash_potion.break": "1;random/glass1", "811;entity.splash_potion.throw": "1;random/bow", "812;entity.squid.ambient": "1;entity/squid/ambient1", "813;entity.squid.death": "1;entity/squid/death1", "814;entity.squid.hurt": "1;entity/squid/hurt1", "815;entity.squid.squirt": "1;entity/squid/squirt1", "825;entity.stray.ambient": "1;mob/stray/idle1", "826;entity.stray.death": "1;mob/stray/death1", "827;entity.stray.hurt": "1;mob/stray/hurt1", "828;entity.stray.step": "1;mob/stray/step1", "780;entity.strider.ambient": "1;mob/strider/idle1", "783;entity.strider.death": "1;mob/strider/death1", "787;entity.strider.eat": "1;mob/strider/eat1", "781;entity.strider.happy": "1;mob/strider/happy1", "784;entity.strider.hurt": "1;mob/strider/hurt1", "782;entity.strider.retreat": "0.8;mob/strider/retreat1", "788;entity.strider.saddle": "1;mob/horse/leather", "785;entity.strider.step": "0.25;mob/strider/step1", "786;entity.strider.step_lava": "0.2;mob/strider/step_lava1", "833;entity.tnt.primed": "1;random/fuse", "848;entity.tropical_fish.death": "1;entity/fish/hurt1", "849;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "850;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "851;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "852;entity.turtle.death": "1;mob/turtle/death1", "853;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "854;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "855;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "856;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "857;entity.turtle.hurt": "1;mob/turtle/hurt1", "858;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "859;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "860;entity.turtle.shamble": "1;mob/turtle/walk1", "861;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "862;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "872;entity.vex.ambient": "1;mob/vex/idle1", "873;entity.vex.charge": "1;mob/vex/charge1", "874;entity.vex.death": "1;mob/vex/death1", "875;entity.vex.hurt": "1;mob/vex/hurt1", "876;entity.villager.ambient": "1;mob/villager/idle1", "877;entity.villager.celebrate": "1;mob/villager/yes1", "878;entity.villager.death": "1;mob/villager/death", "879;entity.villager.hurt": "1;mob/villager/hit1", "880;entity.villager.no": "1;mob/villager/no1", "881;entity.villager.trade": "1;mob/villager/haggle1", "883;entity.villager.work_armorer": "1;block/blastfurnace/blastfurnace1", "884;entity.villager.work_butcher": "1;block/smoker/smoker1", "885;entity.villager.work_cartographer": "1;ui/cartography_table/drawmap1", "886;entity.villager.work_cleric": "1;block/brewing_stand/brew1", "887;entity.villager.work_farmer": "1;block/composter/fill_success1", "888;entity.villager.work_fisherman": "1;block/barrel/open1", "889;entity.villager.work_fletcher": "1;block/fletching_table/fletching_table1", "890;entity.villager.work_leatherworker": "0.9;block/cauldron/dye1", "891;entity.villager.work_librarian": "2;item/book/open_flip1", "892;entity.villager.work_mason": "1;ui/stonecutter/cut1", "893;entity.villager.work_shepherd": "0.5;ui/loom/take_result1", "894;entity.villager.work_toolsmith": "1;block/smithing_table/smithing_table1", "895;entity.villager.work_weaponsmith": "0.5;block/grindstone/grindstone1", "882;entity.villager.yes": "1;mob/villager/yes1", "896;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "897;entity.vindicator.celebrate": "1;mob/vindication_illager/celebrate1", "898;entity.vindicator.death": "1;mob/vindication_illager/death1", "899;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "902;entity.wandering_trader.ambient": "1;mob/wandering_trader/idle1", "903;entity.wandering_trader.death": "1;mob/wandering_trader/death", "904;entity.wandering_trader.disappeared": "0.8;mob/wandering_trader/disappeared1", "905;entity.wandering_trader.drink_milk": "1;mob/wandering_trader/drink_milk1", "906;entity.wandering_trader.drink_potion": "0.65;random/drink", "907;entity.wandering_trader.hurt": "1;mob/wandering_trader/hurt1", "908;entity.wandering_trader.no": "1;mob/wandering_trader/no1", "909;entity.wandering_trader.reappeared": "0.8;mob/wandering_trader/reappeared1", "910;entity.wandering_trader.trade": "1;mob/wandering_trader/haggle1", "911;entity.wandering_trader.yes": "1;mob/wandering_trader/yes1", "920;entity.witch.ambient": "1;entity/witch/ambient5", "921;entity.witch.celebrate": "1;entity/witch/celebrate", "922;entity.witch.death": "1;entity/witch/death1", "923;entity.witch.drink": "1;entity/witch/drink1", "924;entity.witch.hurt": "1;entity/witch/hurt1", "925;entity.witch.throw": "1;entity/witch/throw1", "926;entity.wither.ambient": "1;mob/wither/idle1", "927;entity.wither.break_block": "1;mob/zombie/woodbreak", "928;entity.wither.death": "1;mob/wither/death", "929;entity.wither.hurt": "1;mob/wither/hurt1", "930;entity.wither.shoot": "1;mob/wither/shoot", "935;entity.wither.spawn": "1;mob/wither/spawn", "931;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "932;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "933;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "934;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "936;entity.wolf.ambient": "1;mob/wolf/bark1", "937;entity.wolf.death": "1;mob/wolf/death", "938;entity.wolf.growl": "1;mob/wolf/growl1", "939;entity.wolf.howl": "1;mob/wolf/howl1", "940;entity.wolf.hurt": "1;mob/wolf/hurt1", "941;entity.wolf.pant": "1;mob/wolf/panting", "942;entity.wolf.shake": "1;mob/wolf/shake", "943;entity.wolf.step": "1;mob/wolf/step1", "944;entity.wolf.whine": "1;mob/wolf/whine", "963;entity.zoglin.ambient": "0.9;mob/zoglin/idle1", "964;entity.zoglin.angry": "0.8;mob/zoglin/angry1", "965;entity.zoglin.attack": "0.8;mob/zoglin/attack1", "966;entity.zoglin.death": "0.93;mob/zoglin/death1", "967;entity.zoglin.hurt": "0.83;mob/zoglin/hurt1", "968;entity.zoglin.step": "1;mob/zoglin/step1", "969;entity.zombie.ambient": "1;mob/zombie/say1", "971;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "970;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "972;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "973;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "974;entity.zombie.death": "1;mob/zombie/death", "975;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "979;entity.zombie.hurt": "1;mob/zombie/hurt1", "980;entity.zombie.infect": "1;mob/zombie/infect", "985;entity.zombie.step": "1;mob/zombie/step1", "976;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "977;entity.zombie_horse.death": "1;mob/horse/zombie/death", "978;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "986;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "987;entity.zombie_villager.converted": "1;mob/zombie/unfect", "988;entity.zombie_villager.cure": "1;mob/zombie/remedy", "989;entity.zombie_villager.death": "1;mob/zombie_villager/death", "990;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "991;entity.zombie_villager.step": "1;mob/zombie/step1", "981;entity.zombified_piglin.ambient": "1;mob/zombified_piglin/zpig1", "982;entity.zombified_piglin.angry": "1;mob/zombified_piglin/zpigangry1", "983;entity.zombified_piglin.death": "1;mob/zombified_piglin/zpigdeath", "984;entity.zombified_piglin.hurt": "1;mob/zombified_piglin/zpighurt1", "679;event.raid.horn": "0.01;event/raid/raidhorn_01", "35;item.armor.equip_chain": "1;item/armor/equip_chain1", "36;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "37;item.armor.equip_elytra": "1;item/armor/equip_leather1", "38;item.armor.equip_generic": "1;item/armor/equip_generic1", "39;item.armor.equip_gold": "1;item/armor/equip_gold1", "40;item.armor.equip_iron": "1;item/armor/equip_iron1", "41;item.armor.equip_leather": "1;item/armor/equip_leather1", "42;item.armor.equip_netherite": "0.8;item/armor/equip_netherite1", "43;item.armor.equip_turtle": "1;mob/turtle/armor", "51;item.axe.strip": "0.9;item/axe/strip1", "101;item.book.page_turn": "2;item/book/open_flip1", "102;item.book.put": "1;item/book/close_put1", "104;item.bottle.empty": "1;item/bottle/empty1", "105;item.bottle.fill": "1;item/bottle/fill1", "106;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "113;item.bucket.empty": "1;item/bucket/empty1", "114;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "115;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "116;item.bucket.fill": "1;item/bucket/fill1", "117;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "118;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "144;item.chorus_fruit.teleport": "1;mob/endermen/portal", "173;item.crop.plant": "0.45;item/plant/crop1", "174;item.crossbow.hit": "1;random/bowhit1", "175;item.crossbow.loading_end": "1;item/crossbow/loading_end", "176;item.crossbow.loading_middle": "0.65;item/crossbow/loading_middle1", "177;item.crossbow.loading_start": "0.3;item/crossbow/loading_start", "178;item.crossbow.quick_charge_1": "0.65;item/crossbow/quick_charge/quick1_1", "179;item.crossbow.quick_charge_2": "0.65;item/crossbow/quick_charge/quick2_1", "180;item.crossbow.quick_charge_3": "0.65;item/crossbow/quick_charge/quick3_1", "181;item.crossbow.shoot": "0.9;item/crossbow/shoot1", "219;item.elytra.flying": "0.6;item/elytra/elytra_loop", "259;item.firecharge.use": "1;mob/ghast/fireball4", "274;item.flintandsteel.use": "1;fire/ignite", "338;item.hoe.till": "1;item/hoe/till1", "353;item.honey_bottle.drink": "1;item/bottle/drink_honey1", "436;item.lodestone_compass.lock": "1;block/lodestone/lock1", "494;item.nether_wart.plant": "0.9;item/plant/netherwart1", "722;item.shield.block": "1;item/shield/block1", "723;item.shield.break": "1;random/break", "729;item.shovel.flatten": "1;item/shovel/flatten1", "831;item.sweet_berries.pick_from_bush": "1;item/sweet_berries/pick_from_bush1", "834;item.totem.use": "1;item/totem/use_totem", "835;item.trident.hit": "1;item/trident/pierce1", "836;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "837;item.trident.return": "0.8;item/trident/return1", "838;item.trident.riptide_1": "1;item/trident/riptide1", "839;item.trident.riptide_2": "1;item/trident/riptide2", "840;item.trident.riptide_3": "1;item/trident/riptide3", "841;item.trident.throw": "1;item/trident/throw1", "842;item.trident.thunder": "1;item/trident/thunder1", "463;music.creative": "1;music.game", "464;music.credits": "1;music/game/end/credits", "478;music.dragon": "1;music/game/end/boss", "479;music.end": "1;music/game/end/end", "480;music.game": "1;music/game/calm1", "481;music.menu": "1;music/menu/menu1", "482;music.nether.basalt_deltas": "0.5;music/game/nether/soulsand_valley/so_below", "485;music.nether.crimson_forest": "0.5;music/game/nether/crimson_forest/chrysopoeia", "483;music.nether.nether_wastes": "0.5;music/game/nether/nether_wastes/rubedo", "484;music.nether.soul_sand_valley": "0.5;music/game/nether/soulsand_valley/so_below", "487;music.under_water": "0.4;music/game/water/shuniji", "465;music_disc.11": "1;records/11", "466;music_disc.13": "1;records/13", "467;music_disc.blocks": "1;records/blocks", "468;music_disc.cat": "1;records/cat", "469;music_disc.chirp": "1;records/chirp", "470;music_disc.far": "1;records/far", "471;music_disc.mall": "1;records/mall", "472;music_disc.mellohi": "1;records/mellohi", "473;music_disc.pigstep": "1;records/pigstep", "474;music_disc.stal": "1;records/stal", "475;music_disc.strad": "1;records/strad", "476;music_disc.wait": "1;records/wait", "477;music_disc.ward": "1;records/ward", "779;particle.soul_escape": "0.25;enchant/soulspeed/soulspeed1", "863;ui.button.click": "1;random/click_stereo", "866;ui.cartography_table.take_result": "1;ui/cartography_table/drawmap1", "864;ui.loom.select_pattern": "1;ui/loom/select_pattern1", "865;ui.loom.take_result": "0.5;ui/loom/take_result1", "868;ui.stonecutter.select_recipe": "1;random/click", "867;ui.stonecutter.take_result": "1;ui/stonecutter/cut1", "869;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "870;ui.toast.in": "0.4;ui/toast/in", "871;ui.toast.out": "0.4;ui/toast/out", "913;weather.rain": "1;ambient/weather/rain1", "914;weather.rain.above": "1;ambient/weather/rain1" }, "1.15.2": { "0;ambient.cave": "1;ambient/cave/cave1", "1;ambient.underwater.enter": "0.8;ambient/underwater/enter1", "2;ambient.underwater.exit": "0.5;ambient/underwater/exit1", "3;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "4;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "5;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "6;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "7;block.anvil.break": "1;dig/stone1", "8;block.anvil.destroy": "1;random/anvil_break", "9;block.anvil.fall": "1;step/stone1", "10;block.anvil.hit": "1;step/stone1", "11;block.anvil.land": "1;random/anvil_land", "12;block.anvil.place": "1;random/anvil_land", "13;block.anvil.step": "1;step/stone1", "14;block.anvil.use": "1;random/anvil_use", "31;block.bamboo.break": "0.8;block/bamboo/place1", "32;block.bamboo.fall": "1;block/bamboo/step1", "33;block.bamboo.hit": "1;block/bamboo/step1", "34;block.bamboo.place": "0.8;block/bamboo/place1", "35;block.bamboo.step": "1;block/bamboo/step1", "36;block.bamboo_sapling.break": "0.9;block/bamboo/sapling_place1", "37;block.bamboo_sapling.hit": "0.8;block/bamboo/sapling_hit1", "38;block.bamboo_sapling.place": "0.85;block/bamboo/sapling_place1", "39;block.barrel.close": "1;block/barrel/close", "40;block.barrel.open": "1;block/barrel/open1", "46;block.beacon.activate": "1;block/beacon/activate", "47;block.beacon.ambient": "0.9;block/beacon/ambient", "48;block.beacon.deactivate": "1;block/beacon/deactivate", "49;block.beacon.power_select": "1;block/beacon/power1", "56;block.beehive.drip": "0.3;block/beehive/drip1", "57;block.beehive.enter": "1;block/beehive/enter", "58;block.beehive.exit": "1;block/beehive/exit", "59;block.beehive.shear": "0.8;block/beehive/shear", "60;block.beehive.work": "0.6;block/beehive/work1", "62;block.bell.resonate": "1;block/bell/resonate", "61;block.bell.use": "12;block/bell/bell_use01", "75;block.blastfurnace.fire_crackle": "1;block/blastfurnace/blastfurnace1", "79;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "80;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "81;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "82;block.bubble_column.upwards_inside": "0.7;block/bubble_column/upwards_inside", "83;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "84;block.bubble_column.whirlpool_inside": "0.7;block/bubble_column/whirlpool_inside", "91;block.campfire.crackle": "1;block/campfire/crackle1", "101;block.chest.close": "1;block/chest/close", "102;block.chest.locked": "1;block/wooden_door/close", "103;block.chest.open": "1;block/chest/open", "109;block.chorus_flower.death": "1;block/chorus_flower/death1", "110;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "121;block.comparator.click": "1;random/click", "122;block.composter.empty": "1;block/composter/empty1", "123;block.composter.fill": "0.3;block/composter/fill1", "124;block.composter.fill_success": "1;block/composter/fill_success1", "125;block.composter.ready": "1;block/composter/ready1", "126;block.conduit.activate": "0.9;block/conduit/activate", "127;block.conduit.ambient": "1;block/conduit/ambient", "128;block.conduit.ambient.short": "1;block/conduit/short1", "129;block.conduit.attack.target": "1;block/conduit/attack1", "130;block.conduit.deactivate": "0.7;block/conduit/deactivate", "281;block.coral_block.break": "1;dig/coral1", "282;block.coral_block.fall": "1;step/coral1", "283;block.coral_block.hit": "1;step/coral1", "284;block.coral_block.place": "1;dig/coral1", "285;block.coral_block.step": "1;step/coral1", "139;block.crop.break": "0.9;block/bamboo/sapling_place1", "149;block.dispenser.dispense": "1;random/click", "150;block.dispenser.fail": "1;random/click", "151;block.dispenser.launch": "1;random/bow", "186;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "209;block.end_gateway.spawn": "1;random/explode1", "211;block.end_portal.spawn": "1;block/end_portal/endportal", "210;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "187;block.ender_chest.close": "1;block/enderchest/close", "188;block.ender_chest.open": "1;block/enderchest/open", "223;block.fence_gate.close": "1;block/fence_gate/close1", "224;block.fence_gate.open": "1;block/fence_gate/open1", "234;block.fire.ambient": "1;fire/fire", "235;block.fire.extinguish": "1;random/fizz", "248;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "266;block.glass.break": "1;random/glass1", "267;block.glass.fall": "1;step/stone1", "268;block.glass.hit": "1;step/stone1", "269;block.glass.place": "1;dig/stone1", "270;block.glass.step": "1;step/stone1", "271;block.grass.break": "1;dig/grass1", "272;block.grass.fall": "1;step/grass1", "273;block.grass.hit": "1;step/grass1", "274;block.grass.place": "1;dig/grass1", "275;block.grass.step": "1;step/grass1", "286;block.gravel.break": "1;dig/gravel1", "287;block.gravel.fall": "1;step/gravel1", "288;block.gravel.hit": "1;step/gravel1", "289;block.gravel.place": "1;dig/gravel1", "290;block.gravel.step": "1;step/gravel1", "291;block.grindstone.use": "0.5;block/grindstone/grindstone1", "301;block.honey_block.break": "1;block/honeyblock/break1", "302;block.honey_block.fall": "1;block/honeyblock/step1", "303;block.honey_block.hit": "1;block/honeyblock/step1", "304;block.honey_block.place": "1;block/honeyblock/break1", "305;block.honey_block.slide": "0.8;block/honeyblock/slide1", "306;block.honey_block.step": "1;block/honeyblock/step1", "347;block.iron_door.close": "1;block/iron_door/close1", "348;block.iron_door.open": "1;block/iron_door/open1", "355;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "356;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "364;block.ladder.break": "1;dig/wood1", "365;block.ladder.fall": "1;step/ladder1", "366;block.ladder.hit": "1;step/ladder1", "367;block.ladder.place": "1;dig/wood1", "368;block.ladder.step": "1;step/ladder1", "369;block.lantern.break": "1;block/lantern/break1", "370;block.lantern.fall": "1;block/lantern/break1", "371;block.lantern.hit": "1;block/lantern/place1", "372;block.lantern.place": "1;block/lantern/place1", "373;block.lantern.step": "1;block/lantern/break1", "374;block.lava.ambient": "1;liquid/lava", "375;block.lava.extinguish": "1;random/fizz", "376;block.lava.pop": "1;liquid/lavapop", "379;block.lever.click": "1;random/click", "735;block.lily_pad.place": "1;block/waterlily/place1", "396;block.metal.break": "1;dig/stone1", "397;block.metal.fall": "1;step/stone1", "398;block.metal.hit": "1;step/stone1", "399;block.metal.place": "1;dig/stone1", "402;block.metal.step": "1;step/stone1", "400;block.metal_pressure_plate.click_off": "1;random/click", "401;block.metal_pressure_plate.click_on": "1;random/click", "422;block.nether_wart.break": "0.9;item/plant/netherwart1", "439;block.note_block.banjo": "1;note/banjo", "424;block.note_block.basedrum": "1;note/bd", "425;block.note_block.bass": "1;note/bassattack", "426;block.note_block.bell": "1;note/bell", "438;block.note_block.bit": "1;note/bit", "427;block.note_block.chime": "1;note/icechime", "436;block.note_block.cow_bell": "1;note/cow_bell", "437;block.note_block.didgeridoo": "1;note/didgeridoo", "428;block.note_block.flute": "1;note/flute", "429;block.note_block.guitar": "1;note/guitar", "430;block.note_block.harp": "1;note/harp2", "431;block.note_block.hat": "1;note/hat", "435;block.note_block.iron_xylophone": "1;note/iron_xylophone", "432;block.note_block.pling": "1;note/pling", "433;block.note_block.snare": "1;note/snare", "434;block.note_block.xylophone": "1;note/xylobone", "505;block.piston.contract": "1;tile/piston/in", "506;block.piston.extend": "1;tile/piston/out", "532;block.portal.ambient": "1;portal/portal", "533;block.portal.travel": "1;portal/travel", "534;block.portal.trigger": "1;portal/trigger", "542;block.pumpkin.carve": "1;block/pumpkin/carve1", "561;block.redstone_torch.burnout": "1;random/fizz", "566;block.sand.break": "1;dig/sand1", "567;block.sand.fall": "1;step/sand1", "568;block.sand.hit": "1;step/sand1", "569;block.sand.place": "1;dig/sand1", "570;block.sand.step": "1;step/sand1", "571;block.scaffolding.break": "0.8;block/scaffold/place1", "572;block.scaffolding.fall": "1;step/scaffold1", "573;block.scaffolding.hit": "1;step/scaffold1", "574;block.scaffolding.place": "0.9;block/scaffold/place1", "575;block.scaffolding.step": "1;step/scaffold1", "585;block.shulker_box.close": "1;block/shulker_box/close", "586;block.shulker_box.open": "1;block/shulker_box/open", "618;block.slime_block.break": "1;mob/slime/big1", "619;block.slime_block.fall": "1;mob/slime/small1", "620;block.slime_block.hit": "1;mob/slime/small1", "621;block.slime_block.place": "1;mob/slime/big1", "622;block.slime_block.step": "1;mob/slime/small1", "630;block.smoker.smoke": "1;block/smoker/smoker1", "632;block.snow.break": "1;dig/snow1", "633;block.snow.fall": "1;step/snow1", "638;block.snow.hit": "1;step/snow1", "639;block.snow.place": "1;dig/snow1", "640;block.snow.step": "1;step/snow1", "651;block.stone.break": "1;dig/stone1", "654;block.stone.fall": "1;step/stone1", "655;block.stone.hit": "1;step/stone1", "656;block.stone.place": "1;dig/stone1", "659;block.stone.step": "1;step/stone1", "652;block.stone_button.click_off": "1;random/click", "653;block.stone_button.click_on": "1;random/click", "657;block.stone_pressure_plate.click_off": "1;random/click", "658;block.stone_pressure_plate.click_on": "1;random/click", "664;block.sweet_berry_bush.break": "0.8;block/sweet_berry_bush/break1", "665;block.sweet_berry_bush.place": "0.8;block/sweet_berry_bush/place1", "678;block.tripwire.attach": "1;random/click", "679;block.tripwire.click_off": "1;random/click", "680;block.tripwire.click_on": "1;random/click", "681;block.tripwire.detach": "1;random/bowhit1", "746;block.water.ambient": "1;liquid/water", "276;block.wet_grass.break": "0.8;dig/wet_grass1", "277;block.wet_grass.fall": "1;step/wet_grass1", "278;block.wet_grass.hit": "1;step/wet_grass1", "279;block.wet_grass.place": "0.8;dig/wet_grass1", "280;block.wet_grass.step": "1;step/wet_grass1", "778;block.wood.break": "1;dig/wood1", "781;block.wood.fall": "1;step/wood1", "782;block.wood.hit": "1;step/wood1", "783;block.wood.place": "1;dig/wood1", "786;block.wood.step": "1;step/wood1", "779;block.wooden_button.click_off": "1;random/wood_click", "780;block.wooden_button.click_on": "1;random/wood_click", "774;block.wooden_door.close": "1;block/wooden_door/close2", "775;block.wooden_door.open": "1;block/wooden_door/open3", "784;block.wooden_pressure_plate.click_off": "1;random/click", "785;block.wooden_pressure_plate.click_on": "1;random/click", "776;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "777;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "112;block.wool.break": "1;dig/cloth1", "113;block.wool.fall": "1;step/cloth1", "114;block.wool.hit": "1;step/cloth1", "115;block.wool.place": "1;dig/cloth1", "116;block.wool.step": "1;step/cloth1", "667;enchant.thorns.hit": "1;enchant/thorns/hit1", "23;entity.armor_stand.break": "1;entity/armorstand/break1", "24;entity.armor_stand.fall": "1;dig/wood1", "25;entity.armor_stand.hit": "1;entity/armorstand/hit1", "26;entity.armor_stand.place": "1;dig/stone1", "27;entity.arrow.hit": "1;random/bowhit1", "28;entity.arrow.hit_player": "1;random/successful_hit", "29;entity.arrow.shoot": "1;random/bow", "41;entity.bat.ambient": "1;mob/bat/idle1", "42;entity.bat.death": "1;mob/bat/death", "43;entity.bat.hurt": "1;mob/bat/hurt1", "44;entity.bat.loop": "1;mob/bat/loop", "45;entity.bat.takeoff": "1;mob/bat/takeoff", "50;entity.bee.death": "1;mob/bee/death1", "51;entity.bee.hurt": "1;mob/bee/hurt1", "53;entity.bee.loop": "0.75;mob/bee/loop5", "52;entity.bee.loop_aggressive": "0.8;mob/bee/aggressive1", "55;entity.bee.pollinate": "0.8;mob/bee/pollinate1", "54;entity.bee.sting": "1;mob/bee/sting", "63;entity.blaze.ambient": "1;mob/blaze/breathe1", "64;entity.blaze.burn": "1;fire/fire", "65;entity.blaze.death": "1;mob/blaze/death", "66;entity.blaze.hurt": "1;mob/blaze/hit1", "67;entity.blaze.shoot": "1;mob/ghast/fireball4", "68;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "69;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "92;entity.cat.ambient": "0.6;mob/cat/meow1", "97;entity.cat.beg_for_food": "0.7;mob/cat/beg1", "94;entity.cat.death": "0.75;mob/cat/hitt1", "95;entity.cat.eat": "1;mob/cat/eat1", "96;entity.cat.hiss": "0.4;mob/cat/hiss1", "98;entity.cat.hurt": "0.65;mob/cat/hitt1", "99;entity.cat.purr": "0.7;mob/cat/purr1", "100;entity.cat.purreow": "0.5;mob/cat/purreow1", "93;entity.cat.stray_ambient": "0.35;mob/cat/stray/idle1", "104;entity.chicken.ambient": "1;mob/chicken/say1", "105;entity.chicken.death": "1;mob/chicken/hurt1", "106;entity.chicken.egg": "1;mob/chicken/plop", "107;entity.chicken.hurt": "1;mob/chicken/hurt1", "108;entity.chicken.step": "1;mob/chicken/step1", "118;entity.cod.death": "1;entity/fish/hurt1", "119;entity.cod.flop": "0.3;entity/fish/flop1", "120;entity.cod.hurt": "1;entity/fish/hurt1", "131;entity.cow.ambient": "1;mob/cow/say1", "132;entity.cow.death": "1;mob/cow/hurt1", "133;entity.cow.hurt": "1;mob/cow/hurt1", "134;entity.cow.milk": "1;entity/cow/milk1", "135;entity.cow.step": "1;mob/cow/step1", "136;entity.creeper.death": "1;mob/creeper/death", "137;entity.creeper.hurt": "1;mob/creeper/say1", "138;entity.creeper.primed": "1;random/fuse", "152;entity.dolphin.ambient": "1;mob/dolphin/idle1", "153;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "154;entity.dolphin.attack": "1;mob/dolphin/attack1", "155;entity.dolphin.death": "1;mob/dolphin/death1", "156;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "157;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "158;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "159;entity.dolphin.play": "1;mob/dolphin/play1", "160;entity.dolphin.splash": "1;mob/dolphin/splash1", "161;entity.dolphin.swim": "1;mob/dolphin/swim1", "162;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "163;entity.donkey.angry": "1;mob/horse/donkey/angry1", "164;entity.donkey.chest": "1;mob/chicken/plop", "165;entity.donkey.death": "1;mob/horse/donkey/death", "166;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "191;entity.dragon_fireball.explode": "1;random/explode1", "167;entity.drowned.ambient": "0.9;mob/drowned/idle1", "168;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "169;entity.drowned.death": "0.9;mob/drowned/death1", "170;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "171;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "172;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "173;entity.drowned.shoot": "1;item/trident/throw1", "174;entity.drowned.step": "1;mob/drowned/step1", "175;entity.drowned.swim": "1;liquid/swim1", "176;entity.egg.throw": "1;random/bow", "177;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "178;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "179;entity.elder_guardian.curse": "1;mob/guardian/curse", "180;entity.elder_guardian.death": "1;mob/guardian/elder_death", "181;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "182;entity.elder_guardian.flop": "1;mob/guardian/flop1", "183;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "184;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "189;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "190;entity.ender_dragon.death": "1;mob/enderdragon/end", "192;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "193;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "194;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "195;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "196;entity.ender_eye.death": "1.3;entity/endereye/dead1", "197;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "208;entity.ender_pearl.throw": "1;random/bow", "198;entity.enderman.ambient": "1;mob/endermen/idle1", "199;entity.enderman.death": "1;mob/endermen/death", "200;entity.enderman.hurt": "1;mob/endermen/hit1", "201;entity.enderman.scream": "1;mob/endermen/scream1", "202;entity.enderman.stare": "1;mob/endermen/stare", "203;entity.enderman.teleport": "1;mob/endermen/portal", "204;entity.endermite.ambient": "1;mob/silverfish/say1", "205;entity.endermite.death": "1;mob/silverfish/kill", "206;entity.endermite.hurt": "1;mob/silverfish/hit1", "207;entity.endermite.step": "1;mob/silverfish/step1", "212;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "213;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "214;entity.evoker.celebrate": "1;mob/evocation_illager/celebrate", "215;entity.evoker.death": "1;mob/evocation_illager/death1", "217;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "218;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "219;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "220;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "216;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "221;entity.experience_bottle.throw": "1;random/bow", "222;entity.experience_orb.pickup": "1;random/orb", "226;entity.firework_rocket.blast": "1;fireworks/blast1", "227;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "228;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "229;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "230;entity.firework_rocket.launch": "1;fireworks/launch1", "231;entity.firework_rocket.shoot": "1;random/bow", "232;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "233;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "236;entity.fish.swim": "1;entity/fish/swim1", "72;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "73;entity.fishing_bobber.splash": "1;random/splash", "74;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "238;entity.fox.aggro": "0.65;mob/fox/aggro1", "239;entity.fox.ambient": "0.8;mob/fox/idle1", "240;entity.fox.bite": "0.6;mob/fox/bite1", "241;entity.fox.death": "0.9;mob/fox/death1", "242;entity.fox.eat": "0.65;mob/fox/eat1", "243;entity.fox.hurt": "0.75;mob/fox/hurt1", "244;entity.fox.screech": "0.45;mob/fox/screech1", "245;entity.fox.sleep": "0.8;mob/fox/sleep1", "246;entity.fox.sniff": "0.6;mob/fox/sniff1", "247;entity.fox.spit": "0.7;mob/fox/spit1", "249;entity.generic.big_fall": "1;damage/fallbig", "250;entity.generic.burn": "1;random/fizz", "251;entity.generic.death": "1;damage/hit1", "252;entity.generic.drink": "1;random/drink", "253;entity.generic.eat": "1;random/eat1", "254;entity.generic.explode": "1;random/explode1", "255;entity.generic.extinguish_fire": "1;random/fizz", "256;entity.generic.hurt": "1;damage/hit1", "257;entity.generic.small_fall": "1;damage/fallsmall", "258;entity.generic.splash": "1;liquid/splash", "259;entity.generic.swim": "1;liquid/swim1", "260;entity.ghast.ambient": "1;mob/ghast/moan1", "261;entity.ghast.death": "1;mob/ghast/death", "262;entity.ghast.hurt": "1;mob/ghast/scream1", "263;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "264;entity.ghast.shoot": "1;mob/ghast/fireball4", "265;entity.ghast.warn": "1;mob/ghast/charge", "292;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "293;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "294;entity.guardian.attack": "1;mob/guardian/attack_loop", "295;entity.guardian.death": "1;mob/guardian/guardian_death", "296;entity.guardian.death_land": "1;mob/guardian/land_death", "297;entity.guardian.flop": "1;mob/guardian/flop1", "298;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "299;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "308;entity.horse.ambient": "1;mob/horse/idle1", "309;entity.horse.angry": "1;mob/horse/angry1", "310;entity.horse.armor": "1;mob/horse/armor", "311;entity.horse.breathe": "1;mob/horse/breathe1", "312;entity.horse.death": "1;mob/horse/death", "313;entity.horse.eat": "1;entity/horse/eat1", "314;entity.horse.gallop": "1;mob/horse/gallop1", "315;entity.horse.hurt": "1;mob/horse/hit1", "316;entity.horse.jump": "1;mob/horse/jump", "317;entity.horse.land": "1;mob/horse/land", "318;entity.horse.saddle": "1;mob/horse/leather", "319;entity.horse.step": "1;mob/horse/soft1", "320;entity.horse.step_wood": "1;mob/horse/wood1", "321;entity.hostile.big_fall": "1;damage/fallbig", "322;entity.hostile.death": "1;damage/hit1", "323;entity.hostile.hurt": "1;damage/hit1", "324;entity.hostile.small_fall": "1;damage/fallsmall", "325;entity.hostile.splash": "1;liquid/splash", "326;entity.hostile.swim": "1;liquid/swim1", "327;entity.husk.ambient": "1;mob/husk/idle1", "328;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "329;entity.husk.death": "1;mob/husk/death1", "330;entity.husk.hurt": "1;mob/husk/hurt1", "331;entity.husk.step": "1;mob/husk/step1", "340;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "341;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "342;entity.illusioner.death": "1;mob/illusion_illager/death1", "343;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "344;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "345;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "346;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "349;entity.iron_golem.attack": "1;mob/irongolem/throw", "350;entity.iron_golem.damage": "0.8;mob/irongolem/damage1", "351;entity.iron_golem.death": "1;mob/irongolem/death", "352;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "353;entity.iron_golem.repair": "1;mob/irongolem/repair", "354;entity.iron_golem.step": "1;mob/irongolem/walk1", "362;entity.item.break": "1;random/break", "363;entity.item.pickup": "1;random/pop", "357;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "358;entity.item_frame.break": "1;entity/itemframe/break1", "359;entity.item_frame.place": "1;entity/itemframe/place1", "360;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "361;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "377;entity.leash_knot.break": "1;entity/leashknot/break1", "378;entity.leash_knot.place": "1;entity/leashknot/place1", "380;entity.lightning_bolt.impact": "1;random/explode1", "381;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "382;entity.lingering_potion.throw": "1;random/bow", "383;entity.llama.ambient": "1;mob/llama/idle1", "384;entity.llama.angry": "1;mob/llama/angry1", "385;entity.llama.chest": "1;mob/chicken/plop", "386;entity.llama.death": "1;mob/llama/death1", "387;entity.llama.eat": "1;mob/llama/eat1", "388;entity.llama.hurt": "1;mob/llama/hurt1", "389;entity.llama.spit": "1;mob/llama/spit1", "390;entity.llama.step": "1;mob/llama/step1", "391;entity.llama.swag": "1;mob/llama/swag", "392;entity.magma_cube.death": "1;mob/slime/big1", "623;entity.magma_cube.death_small": "1;mob/slime/small1", "393;entity.magma_cube.hurt": "1;mob/slime/big1", "624;entity.magma_cube.hurt_small": "1;mob/slime/small1", "394;entity.magma_cube.jump": "1;mob/magmacube/jump1", "395;entity.magma_cube.squish": "1;mob/magmacube/big1", "625;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "403;entity.minecart.inside": "1;minecart/inside", "404;entity.minecart.riding": "1;minecart/base", "405;entity.mooshroom.convert": "0.75;mob/mooshroom/convert1", "406;entity.mooshroom.eat": "1;mob/mooshroom/eat1", "407;entity.mooshroom.milk": "1;mob/mooshroom/milk1", "409;entity.mooshroom.shear": "1;mob/sheep/shear", "408;entity.mooshroom.suspicious_milk": "1;mob/mooshroom/milk1", "410;entity.mule.ambient": "1;mob/horse/donkey/idle1", "411;entity.mule.chest": "1;mob/chicken/plop", "412;entity.mule.death": "1;mob/horse/donkey/death", "413;entity.mule.hurt": "1;mob/horse/donkey/hit1", "441;entity.ocelot.ambient": "0.3;mob/cat/ocelot/idle1", "442;entity.ocelot.death": "0.45;mob/cat/ocelot/death1", "440;entity.ocelot.hurt": "0.45;mob/cat/hitt1", "443;entity.painting.break": "1;entity/painting/break1", "444;entity.painting.place": "1;entity/painting/place1", "452;entity.panda.aggressive_ambient": "1;mob/panda/aggressive/aggressive1", "447;entity.panda.ambient": "1;mob/panda/idle1", "455;entity.panda.bite": "1;mob/panda/bite1", "451;entity.panda.cant_breed": "1;mob/panda/cant_breed1", "448;entity.panda.death": "0.82;mob/panda/death1", "449;entity.panda.eat": "1;mob/panda/eat1", "454;entity.panda.hurt": "0.82;mob/panda/hurt1", "445;entity.panda.pre_sneeze": "1;mob/panda/pre_sneeze", "446;entity.panda.sneeze": "1;mob/panda/sneeze1", "450;entity.panda.step": "1;mob/panda/step1", "453;entity.panda.worried_ambient": "1;mob/panda/worried/worried2", "456;entity.parrot.ambient": "0.7;mob/parrot/idle1", "457;entity.parrot.death": "1;mob/parrot/death1", "458;entity.parrot.eat": "1;mob/parrot/eat1", "459;entity.parrot.fly": "1;mob/parrot/fly1", "460;entity.parrot.hurt": "1;mob/parrot/hurt1", "461;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "462;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "463;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "464;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "465;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "466;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "467;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "468;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "469;entity.parrot.imitate.guardian": "0.4;entity.guardian.ambient", "470;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "471;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "472;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "473;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "474;entity.parrot.imitate.pillager": "0.4;entity.pillager.ambient", "475;entity.parrot.imitate.ravager": "0.2;entity.ravager.ambient", "476;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "477;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "478;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "479;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "480;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "481;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "482;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "483;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "484;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "485;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "486;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "487;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "488;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "489;entity.parrot.step": "1;mob/parrot/step1", "490;entity.phantom.ambient": "0.8;mob/phantom/idle1", "491;entity.phantom.bite": "1;mob/phantom/bite1", "492;entity.phantom.death": "1;mob/phantom/death1", "493;entity.phantom.flap": "0.9;mob/phantom/flap1", "494;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "495;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "496;entity.pig.ambient": "1;mob/pig/say1", "497;entity.pig.death": "1;mob/pig/death", "498;entity.pig.hurt": "1;mob/pig/say1", "499;entity.pig.saddle": "1;mob/horse/leather", "500;entity.pig.step": "1;mob/pig/step1", "501;entity.pillager.ambient": "1;mob/pillager/idle1", "502;entity.pillager.celebrate": "1;mob/pillager/celebrate1", "503;entity.pillager.death": "1;mob/pillager/death1", "504;entity.pillager.hurt": "1;mob/pillager/hurt1", "507;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "508;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "509;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "510;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "511;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "512;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "513;entity.player.big_fall": "1;damage/fallbig", "514;entity.player.breath": "1;random/breath", "515;entity.player.burp": "1;random/burp", "516;entity.player.death": "1;damage/hit1", "517;entity.player.hurt": "1;damage/hit1", "518;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "519;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "520;entity.player.hurt_sweet_berry_bush": "1;entity/player/hurt/berrybush_hurt1", "521;entity.player.levelup": "1;random/levelup", "522;entity.player.small_fall": "1;damage/fallsmall", "523;entity.player.splash": "1;liquid/splash", "524;entity.player.splash.high_speed": "1;liquid/heavy_splash", "525;entity.player.swim": "1;liquid/swim5", "526;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "527;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "528;entity.polar_bear.death": "1;mob/polarbear/death1", "529;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "530;entity.polar_bear.step": "1;mob/polarbear/step1", "531;entity.polar_bear.warning": "1;mob/polarbear/warning3", "536;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "537;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "538;entity.puffer_fish.death": "1;entity/pufferfish/death1", "539;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "540;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "541;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "543;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "544;entity.rabbit.attack": "1;entity/rabbit/attack1", "545;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "546;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "547;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "332;entity.ravager.ambient": "1;mob/ravager/idle1", "333;entity.ravager.attack": "1;mob/ravager/bite1", "334;entity.ravager.celebrate": "1;mob/ravager/celebrate1", "335;entity.ravager.death": "1;mob/ravager/death1", "336;entity.ravager.hurt": "1;mob/ravager/hurt1", "339;entity.ravager.roar": "1;mob/ravager/roar1", "337;entity.ravager.step": "1;mob/ravager/step1", "338;entity.ravager.stunned": "1;mob/ravager/stun1", "563;entity.salmon.death": "1;entity/fish/hurt1", "564;entity.salmon.flop": "0.3;entity/fish/flop1", "565;entity.salmon.hurt": "1;entity/fish/hurt1", "576;entity.sheep.ambient": "1;mob/sheep/say1", "577;entity.sheep.death": "1;mob/sheep/say1", "578;entity.sheep.hurt": "1;mob/sheep/say1", "579;entity.sheep.shear": "1;mob/sheep/shear", "580;entity.sheep.step": "1;mob/sheep/step1", "584;entity.shulker.ambient": "1;entity/shulker/ambient1", "589;entity.shulker.close": "1;entity/shulker/close1", "590;entity.shulker.death": "1;entity/shulker/death1", "591;entity.shulker.hurt": "1;entity/shulker/hurt1", "592;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "593;entity.shulker.open": "1;entity/shulker/open1", "594;entity.shulker.shoot": "1;entity/shulker/shoot1", "595;entity.shulker.teleport": "1;mob/endermen/portal", "587;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "588;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "596;entity.silverfish.ambient": "1;mob/silverfish/say1", "597;entity.silverfish.death": "1;mob/silverfish/kill", "598;entity.silverfish.hurt": "1;mob/silverfish/hit1", "599;entity.silverfish.step": "1;mob/silverfish/step1", "600;entity.skeleton.ambient": "1;mob/skeleton/say1", "601;entity.skeleton.death": "1;mob/skeleton/death", "610;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "611;entity.skeleton.shoot": "1;random/bow", "612;entity.skeleton.step": "1;mob/skeleton/step1", "602;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "606;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "603;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "607;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "604;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "608;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "609;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "605;entity.skeleton_horse.swim": "0.4;liquid/swim9", "613;entity.slime.attack": "1;mob/slime/attack1", "614;entity.slime.death": "1;mob/slime/big1", "626;entity.slime.death_small": "1;mob/slime/small1", "615;entity.slime.hurt": "1;mob/slime/big1", "627;entity.slime.hurt_small": "1;mob/slime/small1", "616;entity.slime.jump": "1;mob/slime/big1", "617;entity.slime.squish": "1;mob/slime/big1", "635;entity.snow_golem.death": "1;entity/snowman/death1", "636;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "637;entity.snow_golem.shoot": "1;random/bow", "631;entity.snowball.throw": "1;random/bow", "641;entity.spider.ambient": "1;mob/spider/say1", "642;entity.spider.death": "1;mob/spider/death", "643;entity.spider.hurt": "1;mob/spider/say1", "644;entity.spider.step": "1;mob/spider/step1", "645;entity.splash_potion.break": "1;random/glass1", "646;entity.splash_potion.throw": "1;random/bow", "647;entity.squid.ambient": "1;entity/squid/ambient1", "648;entity.squid.death": "1;entity/squid/death1", "649;entity.squid.hurt": "1;entity/squid/hurt1", "650;entity.squid.squirt": "1;entity/squid/squirt1", "660;entity.stray.ambient": "1;mob/stray/idle1", "661;entity.stray.death": "1;mob/stray/death1", "662;entity.stray.hurt": "1;mob/stray/hurt1", "663;entity.stray.step": "1;mob/stray/step1", "668;entity.tnt.primed": "1;random/fuse", "683;entity.tropical_fish.death": "1;entity/fish/hurt1", "684;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "685;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "686;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "687;entity.turtle.death": "1;mob/turtle/death1", "688;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "689;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "690;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "691;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "692;entity.turtle.hurt": "1;mob/turtle/hurt1", "693;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "694;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "695;entity.turtle.shamble": "1;mob/turtle/walk1", "696;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "697;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "707;entity.vex.ambient": "1;mob/vex/idle1", "708;entity.vex.charge": "1;mob/vex/charge1", "709;entity.vex.death": "1;mob/vex/death1", "710;entity.vex.hurt": "1;mob/vex/hurt1", "711;entity.villager.ambient": "1;mob/villager/idle1", "712;entity.villager.celebrate": "1;mob/villager/yes1", "713;entity.villager.death": "1;mob/villager/death", "714;entity.villager.hurt": "1;mob/villager/hit1", "715;entity.villager.no": "1;mob/villager/no1", "716;entity.villager.trade": "1;mob/villager/haggle1", "718;entity.villager.work_armorer": "1;block/blastfurnace/blastfurnace1", "719;entity.villager.work_butcher": "1;block/smoker/smoker1", "720;entity.villager.work_cartographer": "1;ui/cartography_table/drawmap1", "721;entity.villager.work_cleric": "1;block/brewing_stand/brew1", "722;entity.villager.work_farmer": "1;block/composter/fill_success1", "723;entity.villager.work_fisherman": "1;block/barrel/open1", "724;entity.villager.work_fletcher": "1;block/fletching_table/fletching_table1", "725;entity.villager.work_leatherworker": "0.9;block/cauldron/dye1", "726;entity.villager.work_librarian": "2;item/book/open_flip1", "727;entity.villager.work_mason": "1;ui/stonecutter/cut1", "728;entity.villager.work_shepherd": "0.5;ui/loom/take_result1", "729;entity.villager.work_toolsmith": "1;block/smithing_table/smithing_table1", "730;entity.villager.work_weaponsmith": "0.5;block/grindstone/grindstone1", "717;entity.villager.yes": "1;mob/villager/yes1", "731;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "732;entity.vindicator.celebrate": "1;mob/vindication_illager/celebrate1", "733;entity.vindicator.death": "1;mob/vindication_illager/death1", "734;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "736;entity.wandering_trader.ambient": "1;mob/wandering_trader/idle1", "737;entity.wandering_trader.death": "1;mob/wandering_trader/death", "738;entity.wandering_trader.disappeared": "0.8;mob/wandering_trader/disappeared1", "739;entity.wandering_trader.drink_milk": "1;mob/wandering_trader/drink_milk1", "740;entity.wandering_trader.drink_potion": "0.65;random/drink", "741;entity.wandering_trader.hurt": "1;mob/wandering_trader/hurt1", "742;entity.wandering_trader.no": "1;mob/wandering_trader/no1", "743;entity.wandering_trader.reappeared": "0.8;mob/wandering_trader/reappeared1", "744;entity.wandering_trader.trade": "1;mob/wandering_trader/haggle1", "745;entity.wandering_trader.yes": "1;mob/wandering_trader/yes1", "749;entity.witch.ambient": "1;entity/witch/ambient5", "750;entity.witch.celebrate": "1;entity/witch/celebrate", "751;entity.witch.death": "1;entity/witch/death1", "752;entity.witch.drink": "1;entity/witch/drink1", "753;entity.witch.hurt": "1;entity/witch/hurt1", "754;entity.witch.throw": "1;entity/witch/throw1", "755;entity.wither.ambient": "1;mob/wither/idle1", "756;entity.wither.break_block": "1;mob/zombie/woodbreak", "757;entity.wither.death": "1;mob/wither/death", "758;entity.wither.hurt": "1;mob/wither/hurt1", "759;entity.wither.shoot": "1;mob/wither/shoot", "764;entity.wither.spawn": "1;mob/wither/spawn", "760;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "761;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "762;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "763;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "765;entity.wolf.ambient": "1;mob/wolf/bark1", "766;entity.wolf.death": "1;mob/wolf/death", "767;entity.wolf.growl": "1;mob/wolf/growl1", "768;entity.wolf.howl": "1;mob/wolf/howl1", "769;entity.wolf.hurt": "1;mob/wolf/hurt1", "770;entity.wolf.pant": "1;mob/wolf/panting", "771;entity.wolf.shake": "1;mob/wolf/shake", "772;entity.wolf.step": "1;mob/wolf/step1", "773;entity.wolf.whine": "1;mob/wolf/whine", "787;entity.zombie.ambient": "1;mob/zombie/say1", "789;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "788;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "790;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "791;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "792;entity.zombie.death": "1;mob/zombie/death", "793;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "797;entity.zombie.hurt": "1;mob/zombie/hurt1", "798;entity.zombie.infect": "1;mob/zombie/infect", "803;entity.zombie.step": "1;mob/zombie/step1", "794;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "795;entity.zombie_horse.death": "1;mob/horse/zombie/death", "796;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "799;entity.zombie_pigman.ambient": "1;mob/zombiepig/zpig1", "800;entity.zombie_pigman.angry": "1;mob/zombiepig/zpigangry1", "801;entity.zombie_pigman.death": "1;mob/zombiepig/zpigdeath", "802;entity.zombie_pigman.hurt": "1;mob/zombiepig/zpighurt1", "804;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "805;entity.zombie_villager.converted": "1;mob/zombie/unfect", "806;entity.zombie_villager.cure": "1;mob/zombie/remedy", "807;entity.zombie_villager.death": "1;mob/zombie_villager/death", "808;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "809;entity.zombie_villager.step": "1;mob/zombie/step1", "548;event.raid.horn": "0.01;event/raid/raidhorn_01", "15;item.armor.equip_chain": "1;item/armor/equip_chain1", "16;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "17;item.armor.equip_elytra": "1;item/armor/equip_leather1", "18;item.armor.equip_generic": "1;item/armor/equip_generic1", "19;item.armor.equip_gold": "1;item/armor/equip_gold1", "20;item.armor.equip_iron": "1;item/armor/equip_iron1", "21;item.armor.equip_leather": "1;item/armor/equip_leather1", "22;item.armor.equip_turtle": "1;mob/turtle/armor", "30;item.axe.strip": "0.9;item/axe/strip1", "70;item.book.page_turn": "2;item/book/open_flip1", "71;item.book.put": "1;item/book/close_put1", "76;item.bottle.empty": "1;item/bottle/empty1", "77;item.bottle.fill": "1;item/bottle/fill1", "78;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "85;item.bucket.empty": "1;item/bucket/empty1", "86;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "87;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "88;item.bucket.fill": "1;item/bucket/fill1", "89;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "90;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "111;item.chorus_fruit.teleport": "1;mob/endermen/portal", "140;item.crop.plant": "0.45;item/plant/crop1", "141;item.crossbow.hit": "1;random/bowhit1", "142;item.crossbow.loading_end": "1;item/crossbow/loading_end", "143;item.crossbow.loading_middle": "0.65;item/crossbow/loading_middle1", "144;item.crossbow.loading_start": "0.3;item/crossbow/loading_start", "145;item.crossbow.quick_charge_1": "0.65;item/crossbow/quick_charge/quick1_1", "146;item.crossbow.quick_charge_2": "0.65;item/crossbow/quick_charge/quick2_1", "147;item.crossbow.quick_charge_3": "0.65;item/crossbow/quick_charge/quick3_1", "148;item.crossbow.shoot": "0.9;item/crossbow/shoot1", "185;item.elytra.flying": "0.6;item/elytra/elytra_loop", "225;item.firecharge.use": "1;mob/ghast/fireball4", "237;item.flintandsteel.use": "1;fire/ignite", "300;item.hoe.till": "1;item/hoe/till1", "307;item.honey_bottle.drink": "1;item/bottle/drink_honey1", "423;item.nether_wart.plant": "0.9;item/plant/netherwart1", "581;item.shield.block": "1;item/shield/block1", "582;item.shield.break": "1;random/break", "583;item.shovel.flatten": "1;item/shovel/flatten1", "666;item.sweet_berries.pick_from_bush": "1;item/sweet_berries/pick_from_bush1", "669;item.totem.use": "1;item/totem/use_totem", "670;item.trident.hit": "1;item/trident/pierce1", "671;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "672;item.trident.return": "0.8;item/trident/return1", "673;item.trident.riptide_1": "1;item/trident/riptide1", "674;item.trident.riptide_2": "1;item/trident/riptide2", "675;item.trident.riptide_3": "1;item/trident/riptide3", "676;item.trident.throw": "1;item/trident/throw1", "677;item.trident.thunder": "1;item/trident/thunder1", "414;music.creative": "1;music.game", "415;music.credits": "1;music/game/end/credits", "416;music.dragon": "1;music/game/end/boss", "417;music.end": "1;music/game/end/end", "418;music.game": "1;music/game/calm1", "419;music.menu": "1;music/menu/menu1", "420;music.nether": "1;music/game/nether/nether1", "421;music.under_water": "0.4;music/game/water/shuniji", "549;music_disc.11": "1;records/11", "550;music_disc.13": "1;records/13", "551;music_disc.blocks": "1;records/blocks", "552;music_disc.cat": "1;records/cat", "553;music_disc.chirp": "1;records/chirp", "554;music_disc.far": "1;records/far", "555;music_disc.mall": "1;records/mall", "556;music_disc.mellohi": "1;records/mellohi", "557;music_disc.stal": "1;records/stal", "558;music_disc.strad": "1;records/strad", "559;music_disc.wait": "1;records/wait", "560;music_disc.ward": "1;records/ward", "698;ui.button.click": "1;random/click_stereo", "701;ui.cartography_table.take_result": "1;ui/cartography_table/drawmap1", "699;ui.loom.select_pattern": "1;ui/loom/select_pattern1", "700;ui.loom.take_result": "0.5;ui/loom/take_result1", "703;ui.stonecutter.select_recipe": "1;random/click", "702;ui.stonecutter.take_result": "1;ui/stonecutter/cut1", "704;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "705;ui.toast.in": "0.4;ui/toast/in", "706;ui.toast.out": "0.4;ui/toast/out", "747;weather.rain": "1;ambient/weather/rain1", "748;weather.rain.above": "1;ambient/weather/rain1" }, "1.14.4": { "0;ambient.cave": "1;ambient/cave/cave1", "1;ambient.underwater.enter": "0.8;ambient/underwater/enter1", "2;ambient.underwater.exit": "0.5;ambient/underwater/exit1", "3;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "4;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "5;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "6;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "7;block.anvil.break": "1;dig/stone1", "8;block.anvil.destroy": "1;random/anvil_break", "9;block.anvil.fall": "1;step/stone1", "10;block.anvil.hit": "1;step/stone1", "11;block.anvil.land": "1;random/anvil_land", "12;block.anvil.place": "1;random/anvil_land", "13;block.anvil.step": "1;step/stone1", "14;block.anvil.use": "1;random/anvil_use", "31;block.bamboo.break": "0.8;block/bamboo/place1", "32;block.bamboo.fall": "1;block/bamboo/step1", "33;block.bamboo.hit": "1;block/bamboo/step1", "34;block.bamboo.place": "0.8;block/bamboo/place1", "35;block.bamboo.step": "1;block/bamboo/step1", "36;block.bamboo_sapling.break": "0.9;block/bamboo/sapling_place1", "37;block.bamboo_sapling.hit": "0.8;block/bamboo/sapling_hit1", "38;block.bamboo_sapling.place": "0.85;block/bamboo/sapling_place1", "39;block.barrel.close": "1;block/barrel/close", "40;block.barrel.open": "1;block/barrel/open1", "46;block.beacon.activate": "1;block/beacon/activate", "47;block.beacon.ambient": "0.9;block/beacon/ambient", "48;block.beacon.deactivate": "1;block/beacon/deactivate", "49;block.beacon.power_select": "1;block/beacon/power1", "51;block.bell.resonate": "1;block/bell/resonate", "50;block.bell.use": "12;block/bell/bell_use01", "64;block.blastfurnace.fire_crackle": "1;block/blastfurnace/blastfurnace1", "68;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "69;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "70;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "71;block.bubble_column.upwards_inside": "0.7;block/bubble_column/upwards_inside", "72;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "73;block.bubble_column.whirlpool_inside": "0.7;block/bubble_column/whirlpool_inside", "80;block.campfire.crackle": "1;block/campfire/crackle1", "90;block.chest.close": "1;block/chest/close", "91;block.chest.locked": "1;block/wooden_door/close", "92;block.chest.open": "1;block/chest/open", "98;block.chorus_flower.death": "1;block/chorus_flower/death1", "99;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "110;block.comparator.click": "1;random/click", "111;block.composter.empty": "1;block/composter/empty1", "112;block.composter.fill": "0.3;block/composter/fill1", "113;block.composter.fill_success": "1;block/composter/fill_success1", "114;block.composter.ready": "1;block/composter/ready1", "115;block.conduit.activate": "0.9;block/conduit/activate", "116;block.conduit.ambient": "1;block/conduit/ambient", "117;block.conduit.ambient.short": "1;block/conduit/short1", "118;block.conduit.attack.target": "1;block/conduit/attack1", "119;block.conduit.deactivate": "0.7;block/conduit/deactivate", "270;block.coral_block.break": "1;dig/coral1", "271;block.coral_block.fall": "1;step/coral1", "272;block.coral_block.hit": "1;step/coral1", "273;block.coral_block.place": "1;dig/coral1", "274;block.coral_block.step": "1;step/coral1", "128;block.crop.break": "0.9;block/bamboo/sapling_place1", "138;block.dispenser.dispense": "1;random/click", "139;block.dispenser.fail": "1;random/click", "140;block.dispenser.launch": "1;random/bow", "175;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "198;block.end_gateway.spawn": "1;random/explode1", "200;block.end_portal.spawn": "1;block/end_portal/endportal", "199;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "176;block.ender_chest.close": "1;block/enderchest/close", "177;block.ender_chest.open": "1;block/enderchest/open", "212;block.fence_gate.close": "1;block/fence_gate/close1", "213;block.fence_gate.open": "1;block/fence_gate/open1", "223;block.fire.ambient": "1;fire/fire", "224;block.fire.extinguish": "1;random/fizz", "237;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "255;block.glass.break": "1;random/glass1", "256;block.glass.fall": "1;step/stone1", "257;block.glass.hit": "1;step/stone1", "258;block.glass.place": "1;dig/stone1", "259;block.glass.step": "1;step/stone1", "260;block.grass.break": "1;dig/grass1", "261;block.grass.fall": "1;step/grass1", "262;block.grass.hit": "1;step/grass1", "263;block.grass.place": "1;dig/grass1", "264;block.grass.step": "1;step/grass1", "275;block.gravel.break": "1;dig/gravel1", "276;block.gravel.fall": "1;step/gravel1", "277;block.gravel.hit": "1;step/gravel1", "278;block.gravel.place": "1;dig/gravel1", "279;block.gravel.step": "1;step/gravel1", "280;block.grindstone.use": "0.5;block/grindstone/grindstone1", "329;block.iron_door.close": "1;block/iron_door/close1", "330;block.iron_door.open": "1;block/iron_door/open1", "335;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "336;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "344;block.ladder.break": "1;dig/wood1", "345;block.ladder.fall": "1;step/ladder1", "346;block.ladder.hit": "1;step/ladder1", "347;block.ladder.place": "1;dig/wood1", "348;block.ladder.step": "1;step/ladder1", "349;block.lantern.break": "1;block/lantern/break1", "350;block.lantern.fall": "1;block/lantern/break1", "351;block.lantern.hit": "1;block/lantern/place1", "352;block.lantern.place": "1;block/lantern/place1", "353;block.lantern.step": "1;block/lantern/break1", "354;block.lava.ambient": "1;liquid/lava", "355;block.lava.extinguish": "1;random/fizz", "356;block.lava.pop": "1;liquid/lavapop", "359;block.lever.click": "1;random/click", "720;block.lily_pad.place": "1;block/waterlily/place1", "376;block.metal.break": "1;dig/stone1", "377;block.metal.fall": "1;step/stone1", "378;block.metal.hit": "1;step/stone1", "379;block.metal.place": "1;dig/stone1", "382;block.metal.step": "1;step/stone1", "380;block.metal_pressure_plate.click_off": "1;random/click", "381;block.metal_pressure_plate.click_on": "1;random/click", "402;block.nether_wart.break": "0.9;item/plant/netherwart1", "419;block.note_block.banjo": "1;note/banjo", "404;block.note_block.basedrum": "1;note/bd", "405;block.note_block.bass": "1;note/bassattack", "406;block.note_block.bell": "1;note/bell", "418;block.note_block.bit": "1;note/bit", "407;block.note_block.chime": "1;note/icechime", "416;block.note_block.cow_bell": "1;note/cow_bell", "417;block.note_block.didgeridoo": "1;note/didgeridoo", "408;block.note_block.flute": "1;note/flute", "409;block.note_block.guitar": "1;note/guitar", "410;block.note_block.harp": "1;note/harp2", "411;block.note_block.hat": "1;note/hat", "415;block.note_block.iron_xylophone": "1;note/iron_xylophone", "412;block.note_block.pling": "1;note/pling", "413;block.note_block.snare": "1;note/snare", "414;block.note_block.xylophone": "1;note/xylobone", "490;block.piston.contract": "1;tile/piston/in", "491;block.piston.extend": "1;tile/piston/out", "517;block.portal.ambient": "1;portal/portal", "518;block.portal.travel": "1;portal/travel", "519;block.portal.trigger": "1;portal/trigger", "527;block.pumpkin.carve": "1;block/pumpkin/carve1", "546;block.redstone_torch.burnout": "1;random/fizz", "551;block.sand.break": "1;dig/sand1", "552;block.sand.fall": "1;step/sand1", "553;block.sand.hit": "1;step/sand1", "554;block.sand.place": "1;dig/sand1", "555;block.sand.step": "1;step/sand1", "556;block.scaffolding.break": "0.8;block/scaffold/place1", "557;block.scaffolding.fall": "1;step/scaffold1", "558;block.scaffolding.hit": "1;step/scaffold1", "559;block.scaffolding.place": "0.9;block/scaffold/place1", "560;block.scaffolding.step": "1;step/scaffold1", "570;block.shulker_box.close": "1;block/shulker_box/close", "571;block.shulker_box.open": "1;block/shulker_box/open", "603;block.slime_block.break": "1;mob/slime/big1", "604;block.slime_block.fall": "1;mob/slime/small1", "605;block.slime_block.hit": "1;mob/slime/small1", "606;block.slime_block.place": "1;mob/slime/big1", "607;block.slime_block.step": "1;mob/slime/small1", "615;block.smoker.smoke": "1;block/smoker/smoker1", "617;block.snow.break": "1;dig/snow1", "618;block.snow.fall": "1;step/snow1", "623;block.snow.hit": "1;step/snow1", "624;block.snow.place": "1;dig/snow1", "625;block.snow.step": "1;step/snow1", "636;block.stone.break": "1;dig/stone1", "639;block.stone.fall": "1;step/stone1", "640;block.stone.hit": "1;step/stone1", "641;block.stone.place": "1;dig/stone1", "644;block.stone.step": "1;step/stone1", "637;block.stone_button.click_off": "1;random/click", "638;block.stone_button.click_on": "1;random/click", "642;block.stone_pressure_plate.click_off": "1;random/click", "643;block.stone_pressure_plate.click_on": "1;random/click", "649;block.sweet_berry_bush.break": "0.8;block/sweet_berry_bush/break1", "650;block.sweet_berry_bush.place": "0.8;block/sweet_berry_bush/place1", "663;block.tripwire.attach": "1;random/click", "664;block.tripwire.click_off": "1;random/click", "665;block.tripwire.click_on": "1;random/click", "666;block.tripwire.detach": "1;random/bowhit1", "731;block.water.ambient": "1;liquid/water", "265;block.wet_grass.break": "0.8;dig/wet_grass1", "266;block.wet_grass.fall": "1;step/wet_grass1", "267;block.wet_grass.hit": "1;step/wet_grass1", "268;block.wet_grass.place": "0.8;dig/wet_grass1", "269;block.wet_grass.step": "1;step/wet_grass1", "763;block.wood.break": "1;dig/wood1", "766;block.wood.fall": "1;step/wood1", "767;block.wood.hit": "1;step/wood1", "768;block.wood.place": "1;dig/wood1", "771;block.wood.step": "1;step/wood1", "764;block.wooden_button.click_off": "1;random/wood_click", "765;block.wooden_button.click_on": "1;random/wood_click", "759;block.wooden_door.close": "1;block/wooden_door/close2", "760;block.wooden_door.open": "1;block/wooden_door/open3", "769;block.wooden_pressure_plate.click_off": "1;random/click", "770;block.wooden_pressure_plate.click_on": "1;random/click", "761;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "762;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "101;block.wool.break": "1;dig/cloth1", "102;block.wool.fall": "1;step/cloth1", "103;block.wool.hit": "1;step/cloth1", "104;block.wool.place": "1;dig/cloth1", "105;block.wool.step": "1;step/cloth1", "652;enchant.thorns.hit": "1;enchant/thorns/hit1", "23;entity.armor_stand.break": "1;entity/armorstand/break1", "24;entity.armor_stand.fall": "1;dig/wood1", "25;entity.armor_stand.hit": "1;entity/armorstand/hit1", "26;entity.armor_stand.place": "1;dig/stone1", "27;entity.arrow.hit": "1;random/bowhit1", "28;entity.arrow.hit_player": "1;random/successful_hit", "29;entity.arrow.shoot": "1;random/bow", "41;entity.bat.ambient": "1;mob/bat/idle1", "42;entity.bat.death": "1;mob/bat/death", "43;entity.bat.hurt": "1;mob/bat/hurt1", "44;entity.bat.loop": "1;mob/bat/loop", "45;entity.bat.takeoff": "1;mob/bat/takeoff", "52;entity.blaze.ambient": "1;mob/blaze/breathe1", "53;entity.blaze.burn": "1;fire/fire", "54;entity.blaze.death": "1;mob/blaze/death", "55;entity.blaze.hurt": "1;mob/blaze/hit1", "56;entity.blaze.shoot": "1;mob/ghast/fireball4", "57;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "58;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "81;entity.cat.ambient": "0.6;mob/cat/meow1", "86;entity.cat.beg_for_food": "0.7;mob/cat/beg1", "83;entity.cat.death": "0.75;mob/cat/hitt1", "84;entity.cat.eat": "1;mob/cat/eat1", "85;entity.cat.hiss": "0.4;mob/cat/hiss1", "87;entity.cat.hurt": "0.65;mob/cat/hitt1", "88;entity.cat.purr": "0.7;mob/cat/purr1", "89;entity.cat.purreow": "0.5;mob/cat/purreow1", "82;entity.cat.stray_ambient": "0.35;mob/cat/stray/idle1", "93;entity.chicken.ambient": "1;mob/chicken/say1", "94;entity.chicken.death": "1;mob/chicken/hurt1", "95;entity.chicken.egg": "1;mob/chicken/plop", "96;entity.chicken.hurt": "1;mob/chicken/hurt1", "97;entity.chicken.step": "1;mob/chicken/step1", "107;entity.cod.death": "1;entity/fish/hurt1", "108;entity.cod.flop": "0.3;entity/fish/flop1", "109;entity.cod.hurt": "1;entity/fish/hurt1", "120;entity.cow.ambient": "1;mob/cow/say1", "121;entity.cow.death": "1;mob/cow/hurt1", "122;entity.cow.hurt": "1;mob/cow/hurt1", "123;entity.cow.milk": "1;entity/cow/milk1", "124;entity.cow.step": "1;mob/cow/step1", "125;entity.creeper.death": "1;mob/creeper/death", "126;entity.creeper.hurt": "1;mob/creeper/say1", "127;entity.creeper.primed": "1;random/fuse", "141;entity.dolphin.ambient": "1;mob/dolphin/idle1", "142;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "143;entity.dolphin.attack": "1;mob/dolphin/attack1", "144;entity.dolphin.death": "1;mob/dolphin/death1", "145;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "146;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "147;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "148;entity.dolphin.play": "1;mob/dolphin/play1", "149;entity.dolphin.splash": "1;mob/dolphin/splash1", "150;entity.dolphin.swim": "1;mob/dolphin/swim1", "151;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "152;entity.donkey.angry": "1;mob/horse/donkey/angry1", "153;entity.donkey.chest": "1;mob/chicken/plop", "154;entity.donkey.death": "1;mob/horse/donkey/death", "155;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "180;entity.dragon_fireball.explode": "1;random/explode1", "156;entity.drowned.ambient": "0.9;mob/drowned/idle1", "157;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "158;entity.drowned.death": "0.9;mob/drowned/death1", "159;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "160;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "161;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "162;entity.drowned.shoot": "1;item/trident/throw1", "163;entity.drowned.step": "1;mob/drowned/step1", "164;entity.drowned.swim": "1;liquid/swim1", "165;entity.egg.throw": "1;random/bow", "166;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "167;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "168;entity.elder_guardian.curse": "1;mob/guardian/curse", "169;entity.elder_guardian.death": "1;mob/guardian/elder_death", "170;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "171;entity.elder_guardian.flop": "1;mob/guardian/flop1", "172;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "173;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "178;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "179;entity.ender_dragon.death": "1;mob/enderdragon/end", "181;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "182;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "183;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "184;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "185;entity.ender_eye.death": "1.3;entity/endereye/dead1", "186;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "197;entity.ender_pearl.throw": "1;random/bow", "187;entity.enderman.ambient": "1;mob/endermen/idle1", "188;entity.enderman.death": "1;mob/endermen/death", "189;entity.enderman.hurt": "1;mob/endermen/hit1", "190;entity.enderman.scream": "1;mob/endermen/scream1", "191;entity.enderman.stare": "1;mob/endermen/stare", "192;entity.enderman.teleport": "1;mob/endermen/portal", "193;entity.endermite.ambient": "1;mob/silverfish/say1", "194;entity.endermite.death": "1;mob/silverfish/kill", "195;entity.endermite.hurt": "1;mob/silverfish/hit1", "196;entity.endermite.step": "1;mob/silverfish/step1", "201;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "202;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "203;entity.evoker.celebrate": "1;mob/evocation_illager/celebrate", "204;entity.evoker.death": "1;mob/evocation_illager/death1", "206;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "207;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "208;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "209;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "205;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "210;entity.experience_bottle.throw": "1;random/bow", "211;entity.experience_orb.pickup": "1;random/orb", "215;entity.firework_rocket.blast": "1;fireworks/blast1", "216;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "217;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "218;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "219;entity.firework_rocket.launch": "1;fireworks/launch1", "220;entity.firework_rocket.shoot": "1;random/bow", "221;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "222;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "225;entity.fish.swim": "1;entity/fish/swim1", "61;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "62;entity.fishing_bobber.splash": "1;random/splash", "63;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "227;entity.fox.aggro": "0.65;mob/fox/aggro1", "228;entity.fox.ambient": "0.8;mob/fox/idle1", "229;entity.fox.bite": "0.6;mob/fox/bite1", "230;entity.fox.death": "0.9;mob/fox/death1", "231;entity.fox.eat": "0.65;mob/fox/eat1", "232;entity.fox.hurt": "0.75;mob/fox/hurt1", "233;entity.fox.screech": "0.45;mob/fox/screech1", "234;entity.fox.sleep": "0.8;mob/fox/sleep1", "235;entity.fox.sniff": "0.6;mob/fox/sniff1", "236;entity.fox.spit": "0.7;mob/fox/spit1", "238;entity.generic.big_fall": "1;damage/fallbig", "239;entity.generic.burn": "1;random/fizz", "240;entity.generic.death": "1;damage/hit1", "241;entity.generic.drink": "1;random/drink", "242;entity.generic.eat": "1;random/eat1", "243;entity.generic.explode": "1;random/explode1", "244;entity.generic.extinguish_fire": "1;random/fizz", "245;entity.generic.hurt": "1;damage/hit1", "246;entity.generic.small_fall": "1;damage/fallsmall", "247;entity.generic.splash": "1;liquid/splash", "248;entity.generic.swim": "1;liquid/swim1", "249;entity.ghast.ambient": "1;mob/ghast/moan1", "250;entity.ghast.death": "1;mob/ghast/death", "251;entity.ghast.hurt": "1;mob/ghast/scream1", "252;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "253;entity.ghast.shoot": "1;mob/ghast/fireball4", "254;entity.ghast.warn": "1;mob/ghast/charge", "281;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "282;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "283;entity.guardian.attack": "1;mob/guardian/attack_loop", "284;entity.guardian.death": "1;mob/guardian/guardian_death", "285;entity.guardian.death_land": "1;mob/guardian/land_death", "286;entity.guardian.flop": "1;mob/guardian/flop1", "287;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "288;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "290;entity.horse.ambient": "1;mob/horse/idle1", "291;entity.horse.angry": "1;mob/horse/angry1", "292;entity.horse.armor": "1;mob/horse/armor", "293;entity.horse.breathe": "1;mob/horse/breathe1", "294;entity.horse.death": "1;mob/horse/death", "295;entity.horse.eat": "1;entity/horse/eat1", "296;entity.horse.gallop": "1;mob/horse/gallop1", "297;entity.horse.hurt": "1;mob/horse/hit1", "298;entity.horse.jump": "1;mob/horse/jump", "299;entity.horse.land": "1;mob/horse/land", "300;entity.horse.saddle": "1;mob/horse/leather", "301;entity.horse.step": "1;mob/horse/soft1", "302;entity.horse.step_wood": "1;mob/horse/wood1", "303;entity.hostile.big_fall": "1;damage/fallbig", "304;entity.hostile.death": "1;damage/hit1", "305;entity.hostile.hurt": "1;damage/hit1", "306;entity.hostile.small_fall": "1;damage/fallsmall", "307;entity.hostile.splash": "1;liquid/splash", "308;entity.hostile.swim": "1;liquid/swim1", "309;entity.husk.ambient": "1;mob/husk/idle1", "310;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "311;entity.husk.death": "1;mob/husk/death1", "312;entity.husk.hurt": "1;mob/husk/hurt1", "313;entity.husk.step": "1;mob/husk/step1", "322;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "323;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "324;entity.illusioner.death": "1;mob/illusion_illager/death1", "325;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "326;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "327;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "328;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "331;entity.iron_golem.attack": "1;mob/irongolem/throw", "332;entity.iron_golem.death": "1;mob/irongolem/death", "333;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "334;entity.iron_golem.step": "1;mob/irongolem/walk1", "342;entity.item.break": "1;random/break", "343;entity.item.pickup": "1;random/pop", "337;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "338;entity.item_frame.break": "1;entity/itemframe/break1", "339;entity.item_frame.place": "1;entity/itemframe/place1", "340;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "341;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "357;entity.leash_knot.break": "1;entity/leashknot/break1", "358;entity.leash_knot.place": "1;entity/leashknot/place1", "360;entity.lightning_bolt.impact": "1;random/explode1", "361;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "362;entity.lingering_potion.throw": "1;random/bow", "363;entity.llama.ambient": "1;mob/llama/idle1", "364;entity.llama.angry": "1;mob/llama/angry1", "365;entity.llama.chest": "1;mob/chicken/plop", "366;entity.llama.death": "1;mob/llama/death1", "367;entity.llama.eat": "1;mob/llama/eat1", "368;entity.llama.hurt": "1;mob/llama/hurt1", "369;entity.llama.spit": "1;mob/llama/spit1", "370;entity.llama.step": "1;mob/llama/step1", "371;entity.llama.swag": "1;mob/llama/swag", "372;entity.magma_cube.death": "1;mob/slime/big1", "608;entity.magma_cube.death_small": "1;mob/slime/small1", "373;entity.magma_cube.hurt": "1;mob/slime/big1", "609;entity.magma_cube.hurt_small": "1;mob/slime/small1", "374;entity.magma_cube.jump": "1;mob/magmacube/jump1", "375;entity.magma_cube.squish": "1;mob/magmacube/big1", "610;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "383;entity.minecart.inside": "1;minecart/inside", "384;entity.minecart.riding": "1;minecart/base", "385;entity.mooshroom.convert": "0.75;mob/mooshroom/convert1", "386;entity.mooshroom.eat": "1;mob/mooshroom/eat1", "387;entity.mooshroom.milk": "1;mob/mooshroom/milk1", "389;entity.mooshroom.shear": "1;mob/sheep/shear", "388;entity.mooshroom.suspicious_milk": "1;mob/mooshroom/milk1", "390;entity.mule.ambient": "1;mob/horse/donkey/idle1", "391;entity.mule.chest": "1;mob/chicken/plop", "392;entity.mule.death": "1;mob/horse/donkey/death", "393;entity.mule.hurt": "1;mob/horse/donkey/hit1", "421;entity.ocelot.ambient": "0.3;mob/cat/ocelot/idle1", "422;entity.ocelot.death": "0.45;mob/cat/ocelot/death1", "420;entity.ocelot.hurt": "0.45;mob/cat/hitt1", "423;entity.painting.break": "1;entity/painting/break1", "424;entity.painting.place": "1;entity/painting/place1", "432;entity.panda.aggressive_ambient": "1;mob/panda/aggressive/aggressive1", "427;entity.panda.ambient": "1;mob/panda/idle1", "435;entity.panda.bite": "1;mob/panda/bite1", "431;entity.panda.cant_breed": "1;mob/panda/cant_breed1", "428;entity.panda.death": "0.82;mob/panda/death1", "429;entity.panda.eat": "1;mob/panda/eat1", "434;entity.panda.hurt": "0.82;mob/panda/hurt1", "425;entity.panda.pre_sneeze": "1;mob/panda/pre_sneeze", "426;entity.panda.sneeze": "1;mob/panda/sneeze1", "430;entity.panda.step": "1;mob/panda/step1", "433;entity.panda.worried_ambient": "1;mob/panda/worried/worried2", "436;entity.parrot.ambient": "0.7;mob/parrot/idle1", "437;entity.parrot.death": "1;mob/parrot/death1", "438;entity.parrot.eat": "1;mob/parrot/eat1", "439;entity.parrot.fly": "1;mob/parrot/fly1", "440;entity.parrot.hurt": "1;mob/parrot/hurt1", "441;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "442;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "443;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "444;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "445;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "446;entity.parrot.imitate.enderman": "0.5;entity.enderman.ambient", "447;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "448;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "449;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "450;entity.parrot.imitate.guardian": "0.4;entity.guardian.ambient", "451;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "452;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "453;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "454;entity.parrot.imitate.panda": "0.4;entity.panda.ambient", "455;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "456;entity.parrot.imitate.pillager": "0.4;entity.pillager.ambient", "457;entity.parrot.imitate.polar_bear": "0.5;entity.polar_bear.ambient", "458;entity.parrot.imitate.ravager": "0.2;entity.ravager.ambient", "459;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "460;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "461;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "462;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "463;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "464;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "465;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "466;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "467;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "468;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "469;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "470;entity.parrot.imitate.wolf": "0.6;entity.wolf.ambient", "471;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "472;entity.parrot.imitate.zombie_pigman": "0.4;entity.zombie_pigman.ambient", "473;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "474;entity.parrot.step": "1;mob/parrot/step1", "475;entity.phantom.ambient": "0.8;mob/phantom/idle1", "476;entity.phantom.bite": "1;mob/phantom/bite1", "477;entity.phantom.death": "1;mob/phantom/death1", "478;entity.phantom.flap": "0.9;mob/phantom/flap1", "479;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "480;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "481;entity.pig.ambient": "1;mob/pig/say1", "482;entity.pig.death": "1;mob/pig/death", "483;entity.pig.hurt": "1;mob/pig/say1", "484;entity.pig.saddle": "1;mob/horse/leather", "485;entity.pig.step": "1;mob/pig/step1", "486;entity.pillager.ambient": "1;mob/pillager/idle1", "487;entity.pillager.celebrate": "1;mob/pillager/celebrate1", "488;entity.pillager.death": "1;mob/pillager/death1", "489;entity.pillager.hurt": "1;mob/pillager/hurt1", "492;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "493;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "494;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "495;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "496;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "497;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "498;entity.player.big_fall": "1;damage/fallbig", "499;entity.player.breath": "1;random/breath", "500;entity.player.burp": "1;random/burp", "501;entity.player.death": "1;damage/hit1", "502;entity.player.hurt": "1;damage/hit1", "503;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "504;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "505;entity.player.hurt_sweet_berry_bush": "1;entity/player/hurt/berrybush_hurt1", "506;entity.player.levelup": "1;random/levelup", "507;entity.player.small_fall": "1;damage/fallsmall", "508;entity.player.splash": "1;liquid/splash", "509;entity.player.splash.high_speed": "1;liquid/heavy_splash", "510;entity.player.swim": "1;liquid/swim5", "511;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "512;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "513;entity.polar_bear.death": "1;mob/polarbear/death1", "514;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "515;entity.polar_bear.step": "1;mob/polarbear/step1", "516;entity.polar_bear.warning": "1;mob/polarbear/warning3", "521;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "522;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "523;entity.puffer_fish.death": "1;entity/pufferfish/death1", "524;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "525;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "526;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "528;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "529;entity.rabbit.attack": "1;entity/rabbit/attack1", "530;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "531;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "532;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "314;entity.ravager.ambient": "1;mob/ravager/idle1", "315;entity.ravager.attack": "1;mob/ravager/bite1", "316;entity.ravager.celebrate": "1;mob/ravager/celebrate1", "317;entity.ravager.death": "1;mob/ravager/death1", "318;entity.ravager.hurt": "1;mob/ravager/hurt1", "321;entity.ravager.roar": "1;mob/ravager/roar1", "319;entity.ravager.step": "1;mob/ravager/step1", "320;entity.ravager.stunned": "1;mob/ravager/stun1", "548;entity.salmon.death": "1;entity/fish/hurt1", "549;entity.salmon.flop": "0.3;entity/fish/flop1", "550;entity.salmon.hurt": "1;entity/fish/hurt1", "561;entity.sheep.ambient": "1;mob/sheep/say1", "562;entity.sheep.death": "1;mob/sheep/say1", "563;entity.sheep.hurt": "1;mob/sheep/say1", "564;entity.sheep.shear": "1;mob/sheep/shear", "565;entity.sheep.step": "1;mob/sheep/step1", "569;entity.shulker.ambient": "1;entity/shulker/ambient1", "574;entity.shulker.close": "1;entity/shulker/close1", "575;entity.shulker.death": "1;entity/shulker/death1", "576;entity.shulker.hurt": "1;entity/shulker/hurt1", "577;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "578;entity.shulker.open": "1;entity/shulker/open1", "579;entity.shulker.shoot": "1;entity/shulker/shoot1", "580;entity.shulker.teleport": "1;mob/endermen/portal", "572;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "573;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "581;entity.silverfish.ambient": "1;mob/silverfish/say1", "582;entity.silverfish.death": "1;mob/silverfish/kill", "583;entity.silverfish.hurt": "1;mob/silverfish/hit1", "584;entity.silverfish.step": "1;mob/silverfish/step1", "585;entity.skeleton.ambient": "1;mob/skeleton/say1", "586;entity.skeleton.death": "1;mob/skeleton/death", "595;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "596;entity.skeleton.shoot": "1;random/bow", "597;entity.skeleton.step": "1;mob/skeleton/step1", "587;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "591;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "588;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "592;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "589;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "593;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "594;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "590;entity.skeleton_horse.swim": "0.4;liquid/swim9", "598;entity.slime.attack": "1;mob/slime/attack1", "599;entity.slime.death": "1;mob/slime/big1", "611;entity.slime.death_small": "1;mob/slime/small1", "600;entity.slime.hurt": "1;mob/slime/big1", "612;entity.slime.hurt_small": "1;mob/slime/small1", "601;entity.slime.jump": "1;mob/slime/big1", "602;entity.slime.squish": "1;mob/slime/big1", "620;entity.snow_golem.death": "1;entity/snowman/death1", "621;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "622;entity.snow_golem.shoot": "1;random/bow", "616;entity.snowball.throw": "1;random/bow", "626;entity.spider.ambient": "1;mob/spider/say1", "627;entity.spider.death": "1;mob/spider/death", "628;entity.spider.hurt": "1;mob/spider/say1", "629;entity.spider.step": "1;mob/spider/step1", "630;entity.splash_potion.break": "1;random/glass1", "631;entity.splash_potion.throw": "1;random/bow", "632;entity.squid.ambient": "1;entity/squid/ambient1", "633;entity.squid.death": "1;entity/squid/death1", "634;entity.squid.hurt": "1;entity/squid/hurt1", "635;entity.squid.squirt": "1;entity/squid/squirt1", "645;entity.stray.ambient": "1;mob/stray/idle1", "646;entity.stray.death": "1;mob/stray/death1", "647;entity.stray.hurt": "1;mob/stray/hurt1", "648;entity.stray.step": "1;mob/stray/step1", "653;entity.tnt.primed": "1;random/fuse", "668;entity.tropical_fish.death": "1;entity/fish/hurt1", "669;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "670;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "671;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "672;entity.turtle.death": "1;mob/turtle/death1", "673;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "674;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "675;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "676;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "677;entity.turtle.hurt": "1;mob/turtle/hurt1", "678;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "679;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "680;entity.turtle.shamble": "1;mob/turtle/walk1", "681;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "682;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "692;entity.vex.ambient": "1;mob/vex/idle1", "693;entity.vex.charge": "1;mob/vex/charge1", "694;entity.vex.death": "1;mob/vex/death1", "695;entity.vex.hurt": "1;mob/vex/hurt1", "696;entity.villager.ambient": "1;mob/villager/idle1", "697;entity.villager.celebrate": "1;mob/villager/yes1", "698;entity.villager.death": "1;mob/villager/death", "699;entity.villager.hurt": "1;mob/villager/hit1", "700;entity.villager.no": "1;mob/villager/no1", "701;entity.villager.trade": "1;mob/villager/haggle1", "703;entity.villager.work_armorer": "1;block/blastfurnace/blastfurnace1", "704;entity.villager.work_butcher": "1;block/smoker/smoker1", "705;entity.villager.work_cartographer": "1;ui/cartography_table/drawmap1", "706;entity.villager.work_cleric": "1;block/brewing_stand/brew1", "707;entity.villager.work_farmer": "1;block/composter/fill_success1", "708;entity.villager.work_fisherman": "1;block/barrel/open1", "709;entity.villager.work_fletcher": "1;block/fletching_table/fletching_table1", "710;entity.villager.work_leatherworker": "0.9;block/cauldron/dye1", "711;entity.villager.work_librarian": "2;item/book/open_flip1", "712;entity.villager.work_mason": "1;ui/stonecutter/cut1", "713;entity.villager.work_shepherd": "0.5;ui/loom/take_result1", "714;entity.villager.work_toolsmith": "1;block/smithing_table/smithing_table1", "715;entity.villager.work_weaponsmith": "0.5;block/grindstone/grindstone1", "702;entity.villager.yes": "1;mob/villager/yes1", "716;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "717;entity.vindicator.celebrate": "1;mob/vindication_illager/celebrate1", "718;entity.vindicator.death": "1;mob/vindication_illager/death1", "719;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "721;entity.wandering_trader.ambient": "1;mob/wandering_trader/idle1", "722;entity.wandering_trader.death": "1;mob/wandering_trader/death", "723;entity.wandering_trader.disappeared": "0.8;mob/wandering_trader/disappeared1", "724;entity.wandering_trader.drink_milk": "1;mob/wandering_trader/drink_milk1", "725;entity.wandering_trader.drink_potion": "0.65;random/drink", "726;entity.wandering_trader.hurt": "1;mob/wandering_trader/hurt1", "727;entity.wandering_trader.no": "1;mob/wandering_trader/no1", "728;entity.wandering_trader.reappeared": "0.8;mob/wandering_trader/reappeared1", "729;entity.wandering_trader.trade": "1;mob/wandering_trader/haggle1", "730;entity.wandering_trader.yes": "1;mob/wandering_trader/yes1", "734;entity.witch.ambient": "1;entity/witch/ambient5", "735;entity.witch.celebrate": "1;entity/witch/celebrate", "736;entity.witch.death": "1;entity/witch/death1", "737;entity.witch.drink": "1;entity/witch/drink1", "738;entity.witch.hurt": "1;entity/witch/hurt1", "739;entity.witch.throw": "1;entity/witch/throw1", "740;entity.wither.ambient": "1;mob/wither/idle1", "741;entity.wither.break_block": "1;mob/zombie/woodbreak", "742;entity.wither.death": "1;mob/wither/death", "743;entity.wither.hurt": "1;mob/wither/hurt1", "744;entity.wither.shoot": "1;mob/wither/shoot", "749;entity.wither.spawn": "1;mob/wither/spawn", "745;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "746;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "747;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "748;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "750;entity.wolf.ambient": "1;mob/wolf/bark1", "751;entity.wolf.death": "1;mob/wolf/death", "752;entity.wolf.growl": "1;mob/wolf/growl1", "753;entity.wolf.howl": "1;mob/wolf/howl1", "754;entity.wolf.hurt": "1;mob/wolf/hurt1", "755;entity.wolf.pant": "1;mob/wolf/panting", "756;entity.wolf.shake": "1;mob/wolf/shake", "757;entity.wolf.step": "1;mob/wolf/step1", "758;entity.wolf.whine": "1;mob/wolf/whine", "772;entity.zombie.ambient": "1;mob/zombie/say1", "774;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "773;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "775;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "776;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "777;entity.zombie.death": "1;mob/zombie/death", "778;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "782;entity.zombie.hurt": "1;mob/zombie/hurt1", "783;entity.zombie.infect": "1;mob/zombie/infect", "788;entity.zombie.step": "1;mob/zombie/step1", "779;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "780;entity.zombie_horse.death": "1;mob/horse/zombie/death", "781;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "784;entity.zombie_pigman.ambient": "1;mob/zombiepig/zpig1", "785;entity.zombie_pigman.angry": "1;mob/zombiepig/zpigangry1", "786;entity.zombie_pigman.death": "1;mob/zombiepig/zpigdeath", "787;entity.zombie_pigman.hurt": "1;mob/zombiepig/zpighurt1", "789;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "790;entity.zombie_villager.converted": "1;mob/zombie/unfect", "791;entity.zombie_villager.cure": "1;mob/zombie/remedy", "792;entity.zombie_villager.death": "1;mob/zombie_villager/death", "793;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "794;entity.zombie_villager.step": "1;mob/zombie/step1", "533;event.raid.horn": "0.01;event/raid/raidhorn_01", "15;item.armor.equip_chain": "1;item/armor/equip_chain1", "16;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "17;item.armor.equip_elytra": "1;item/armor/equip_leather1", "18;item.armor.equip_generic": "1;item/armor/equip_generic1", "19;item.armor.equip_gold": "1;item/armor/equip_gold1", "20;item.armor.equip_iron": "1;item/armor/equip_iron1", "21;item.armor.equip_leather": "1;item/armor/equip_leather1", "22;item.armor.equip_turtle": "1;mob/turtle/armor", "30;item.axe.strip": "0.9;item/axe/strip1", "59;item.book.page_turn": "2;item/book/open_flip1", "60;item.book.put": "1;item/book/close_put1", "65;item.bottle.empty": "1;item/bottle/empty1", "66;item.bottle.fill": "1;item/bottle/fill1", "67;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "74;item.bucket.empty": "1;item/bucket/empty1", "75;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "76;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "77;item.bucket.fill": "1;item/bucket/fill1", "78;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "79;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "100;item.chorus_fruit.teleport": "1;mob/endermen/portal", "129;item.crop.plant": "0.45;item/plant/crop1", "130;item.crossbow.hit": "1;random/bowhit1", "131;item.crossbow.loading_end": "1;item/crossbow/loading_end", "132;item.crossbow.loading_middle": "0.65;item/crossbow/loading_middle1", "133;item.crossbow.loading_start": "0.3;item/crossbow/loading_start", "134;item.crossbow.quick_charge_1": "0.65;item/crossbow/quick_charge/quick1_1", "135;item.crossbow.quick_charge_2": "0.65;item/crossbow/quick_charge/quick2_1", "136;item.crossbow.quick_charge_3": "0.65;item/crossbow/quick_charge/quick3_1", "137;item.crossbow.shoot": "0.9;item/crossbow/shoot1", "174;item.elytra.flying": "0.6;item/elytra/elytra_loop", "214;item.firecharge.use": "1;mob/ghast/fireball4", "226;item.flintandsteel.use": "1;fire/ignite", "289;item.hoe.till": "1;item/hoe/till1", "403;item.nether_wart.plant": "0.9;item/plant/netherwart1", "566;item.shield.block": "1;item/shield/block1", "567;item.shield.break": "1;random/break", "568;item.shovel.flatten": "1;item/shovel/flatten1", "651;item.sweet_berries.pick_from_bush": "1;item/sweet_berries/pick_from_bush1", "654;item.totem.use": "1;item/totem/use_totem", "655;item.trident.hit": "1;item/trident/pierce1", "656;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "657;item.trident.return": "0.8;item/trident/return1", "658;item.trident.riptide_1": "1;item/trident/riptide1", "659;item.trident.riptide_2": "1;item/trident/riptide2", "660;item.trident.riptide_3": "1;item/trident/riptide3", "661;item.trident.throw": "1;item/trident/throw1", "662;item.trident.thunder": "1;item/trident/thunder1", "394;music.creative": "1;music.game", "395;music.credits": "1;music/game/end/credits", "396;music.dragon": "1;music/game/end/boss", "397;music.end": "1;music/game/end/end", "398;music.game": "1;music/game/calm1", "399;music.menu": "1;music/menu/menu1", "400;music.nether": "1;music/game/nether/nether1", "401;music.under_water": "0.4;music/game/water/shuniji", "534;music_disc.11": "1;records/11", "535;music_disc.13": "1;records/13", "536;music_disc.blocks": "1;records/blocks", "537;music_disc.cat": "1;records/cat", "538;music_disc.chirp": "1;records/chirp", "539;music_disc.far": "1;records/far", "540;music_disc.mall": "1;records/mall", "541;music_disc.mellohi": "1;records/mellohi", "542;music_disc.stal": "1;records/stal", "543;music_disc.strad": "1;records/strad", "544;music_disc.wait": "1;records/wait", "545;music_disc.ward": "1;records/ward", "683;ui.button.click": "1;random/click_stereo", "686;ui.cartography_table.take_result": "1;ui/cartography_table/drawmap1", "684;ui.loom.select_pattern": "1;ui/loom/select_pattern1", "685;ui.loom.take_result": "0.5;ui/loom/take_result1", "688;ui.stonecutter.select_recipe": "1;random/click", "687;ui.stonecutter.take_result": "1;ui/stonecutter/cut1", "689;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "690;ui.toast.in": "0.4;ui/toast/in", "691;ui.toast.out": "0.4;ui/toast/out", "732;weather.rain": "1;ambient/weather/rain1", "733;weather.rain.above": "1;ambient/weather/rain1" }, "1.13.2": { "0;ambient.cave": "1;ambient/cave/cave1", "1;ambient.underwater.enter": "1;ambient/underwater/enter1", "2;ambient.underwater.exit": "1;ambient/underwater/exit1", "3;ambient.underwater.loop": "0.65;ambient/underwater/underwater_ambience", "4;ambient.underwater.loop.additions": "1;ambient/underwater/additions/bubbles1", "5;ambient.underwater.loop.additions.rare": "1;ambient/underwater/additions/animal1", "6;ambient.underwater.loop.additions.ultra_rare": "1;ambient/underwater/additions/animal2", "7;block.anvil.break": "1;dig/stone1", "8;block.anvil.destroy": "1;random/anvil_break", "9;block.anvil.fall": "1;step/stone1", "10;block.anvil.hit": "1;step/stone1", "11;block.anvil.land": "1;random/anvil_land", "12;block.anvil.place": "1;random/anvil_land", "13;block.anvil.step": "1;step/stone1", "14;block.anvil.use": "1;random/anvil_use", "15;block.beacon.activate": "1;block/beacon/activate", "16;block.beacon.ambient": "0.9;block/beacon/ambient", "17;block.beacon.deactivate": "1;block/beacon/deactivate", "18;block.beacon.power_select": "1;block/beacon/power1", "19;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "20;block.bubble_column.bubble_pop": "0.1;block/bubble_column/bubble1", "21;block.bubble_column.upwards_ambient": "0.6;block/bubble_column/upwards_ambient1", "22;block.bubble_column.upwards_inside": "1;block/bubble_column/upwards_inside", "23;block.bubble_column.whirlpool_ambient": "0.6;block/bubble_column/whirlpool_ambient1", "24;block.bubble_column.whirlpool_inside": "1;block/bubble_column/whirlpool_inside", "25;block.chest.close": "1;block/chest/close", "26;block.chest.locked": "1;block/wooden_door/close", "27;block.chest.open": "1;block/chest/open", "28;block.chorus_flower.death": "1;block/chorus_flower/death1", "29;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "35;block.comparator.click": "1;random/click", "36;block.conduit.activate": "0.9;block/conduit/activate", "37;block.conduit.ambient": "1;block/conduit/ambient", "38;block.conduit.ambient.short": "1;block/conduit/short1", "39;block.conduit.attack.target": "1;block/conduit/attack1", "40;block.conduit.deactivate": "0.7;block/conduit/deactivate", "70;block.coral_block.break": "1;dig/coral1", "71;block.coral_block.fall": "1;step/coral1", "72;block.coral_block.hit": "1;step/coral1", "73;block.coral_block.place": "1;dig/coral1", "74;block.coral_block.step": "1;step/coral1", "41;block.dispenser.dispense": "1;random/click", "42;block.dispenser.fail": "1;random/click", "43;block.dispenser.launch": "1;random/bow", "44;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "45;block.end_gateway.spawn": "1;random/explode1", "46;block.end_portal.spawn": "1;block/end_portal/endportal", "47;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "48;block.ender_chest.close": "1;block/enderchest/close", "49;block.ender_chest.open": "1;block/enderchest/open", "50;block.fence_gate.close": "1;block/fence_gate/close1", "51;block.fence_gate.open": "1;block/fence_gate/open1", "52;block.fire.ambient": "1;fire/fire", "53;block.fire.extinguish": "1;random/fizz", "54;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "55;block.glass.break": "1;random/glass1", "56;block.glass.fall": "1;step/stone1", "57;block.glass.hit": "1;step/stone1", "58;block.glass.place": "1;dig/stone1", "59;block.glass.step": "1;step/stone1", "60;block.grass.break": "1;dig/grass1", "61;block.grass.fall": "1;step/grass1", "62;block.grass.hit": "1;step/grass1", "63;block.grass.place": "1;dig/grass1", "64;block.grass.step": "1;step/grass1", "75;block.gravel.break": "1;dig/gravel1", "76;block.gravel.fall": "1;step/gravel1", "77;block.gravel.hit": "1;step/gravel1", "78;block.gravel.place": "1;dig/gravel1", "79;block.gravel.step": "1;step/gravel1", "80;block.iron_door.close": "1;block/iron_door/close1", "81;block.iron_door.open": "1;block/iron_door/open1", "82;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "83;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "84;block.ladder.break": "1;dig/wood1", "85;block.ladder.fall": "1;step/ladder1", "86;block.ladder.hit": "1;step/ladder1", "87;block.ladder.place": "1;dig/wood1", "88;block.ladder.step": "1;step/ladder1", "89;block.lava.ambient": "1;liquid/lava", "90;block.lava.extinguish": "1;random/fizz", "91;block.lava.pop": "1;liquid/lavapop", "92;block.lever.click": "1;random/click", "149;block.lily_pad.place": "1;block/waterlily/place1", "93;block.metal.break": "1;dig/stone1", "94;block.metal.fall": "1;step/stone1", "95;block.metal.hit": "1;step/stone1", "96;block.metal.place": "1;dig/stone1", "97;block.metal.step": "1;step/stone1", "98;block.metal_pressure_plate.click_off": "1;random/click", "99;block.metal_pressure_plate.click_on": "1;random/click", "100;block.note_block.basedrum": "1;note/bd", "101;block.note_block.bass": "1;note/bassattack", "102;block.note_block.bell": "1;note/bell", "103;block.note_block.chime": "1;note/icechime", "104;block.note_block.flute": "1;note/flute", "105;block.note_block.guitar": "1;note/guitar", "106;block.note_block.harp": "1;note/harp2", "107;block.note_block.hat": "1;note/hat", "108;block.note_block.pling": "1;note/pling", "109;block.note_block.snare": "1;note/snare", "110;block.note_block.xylophone": "1;note/xylobone", "111;block.piston.contract": "1;tile/piston/in", "112;block.piston.extend": "1;tile/piston/out", "113;block.portal.ambient": "1;portal/portal", "114;block.portal.travel": "1;portal/travel", "115;block.portal.trigger": "1;portal/trigger", "116;block.pumpkin.carve": "1;block/pumpkin/carve1", "117;block.redstone_torch.burnout": "1;random/fizz", "118;block.sand.break": "1;dig/sand1", "119;block.sand.fall": "1;step/sand1", "120;block.sand.hit": "1;step/sand1", "121;block.sand.place": "1;dig/sand1", "122;block.sand.step": "1;step/sand1", "123;block.shulker_box.close": "1;block/shulker_box/close", "124;block.shulker_box.open": "1;block/shulker_box/open", "125;block.slime_block.break": "1;mob/slime/big1", "126;block.slime_block.fall": "1;mob/slime/small1", "127;block.slime_block.hit": "1;mob/slime/small1", "128;block.slime_block.place": "1;mob/slime/big1", "129;block.slime_block.step": "1;mob/slime/small1", "130;block.snow.break": "1;dig/snow1", "131;block.snow.fall": "1;step/snow1", "132;block.snow.hit": "1;step/snow1", "133;block.snow.place": "1;dig/snow1", "134;block.snow.step": "1;step/snow1", "135;block.stone.break": "1;dig/stone1", "136;block.stone.fall": "1;step/stone1", "137;block.stone.hit": "1;step/stone1", "138;block.stone.place": "1;dig/stone1", "139;block.stone.step": "1;step/stone1", "140;block.stone_button.click_off": "1;random/click", "141;block.stone_button.click_on": "1;random/click", "142;block.stone_pressure_plate.click_off": "1;random/click", "143;block.stone_pressure_plate.click_on": "1;random/click", "144;block.tripwire.attach": "1;random/click", "145;block.tripwire.click_off": "1;random/click", "146;block.tripwire.click_on": "1;random/click", "147;block.tripwire.detach": "1;random/bowhit1", "148;block.water.ambient": "1;liquid/water", "65;block.wet_grass.break": "0.8;dig/wet_grass1", "66;block.wet_grass.fall": "1;step/wet_grass1", "67;block.wet_grass.hit": "1;step/wet_grass1", "68;block.wet_grass.place": "0.8;dig/wet_grass1", "69;block.wet_grass.step": "1;step/wet_grass1", "150;block.wood.break": "1;dig/wood1", "151;block.wood.fall": "1;step/wood1", "152;block.wood.hit": "1;step/wood1", "153;block.wood.place": "1;dig/wood1", "154;block.wood.step": "1;step/wood1", "155;block.wooden_button.click_off": "1;random/wood_click", "156;block.wooden_button.click_on": "1;random/wood_click", "159;block.wooden_door.close": "1;block/wooden_door/close2", "160;block.wooden_door.open": "1;block/wooden_door/open3", "157;block.wooden_pressure_plate.click_off": "1;random/click", "158;block.wooden_pressure_plate.click_on": "1;random/click", "161;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "162;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "30;block.wool.break": "1;dig/cloth1", "31;block.wool.fall": "1;step/cloth1", "32;block.wool.hit": "1;step/cloth1", "33;block.wool.place": "1;dig/cloth1", "34;block.wool.step": "1;step/cloth1", "163;enchant.thorns.hit": "1;enchant/thorns/hit1", "164;entity.armor_stand.break": "1;entity/armorstand/break1", "165;entity.armor_stand.fall": "1;dig/wood1", "166;entity.armor_stand.hit": "1;entity/armorstand/hit1", "167;entity.armor_stand.place": "1;dig/stone1", "168;entity.arrow.hit": "1;random/bowhit1", "169;entity.arrow.hit_player": "1;random/successful_hit", "170;entity.arrow.shoot": "1;random/bow", "171;entity.bat.ambient": "1;mob/bat/idle1", "172;entity.bat.death": "1;mob/bat/death", "173;entity.bat.hurt": "1;mob/bat/hurt1", "174;entity.bat.loop": "1;mob/bat/loop", "175;entity.bat.takeoff": "1;mob/bat/takeoff", "176;entity.blaze.ambient": "1;mob/blaze/breathe1", "177;entity.blaze.burn": "1;fire/fire", "178;entity.blaze.death": "1;mob/blaze/death", "179;entity.blaze.hurt": "1;mob/blaze/hit1", "180;entity.blaze.shoot": "1;mob/ghast/fireball4", "181;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "182;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "186;entity.cat.ambient": "1;mob/cat/meow1", "187;entity.cat.death": "1;mob/cat/hitt1", "188;entity.cat.hiss": "1;mob/cat/hiss1", "189;entity.cat.hurt": "1;mob/cat/hitt1", "190;entity.cat.purr": "1;mob/cat/purr1", "191;entity.cat.purreow": "1;mob/cat/purreow1", "192;entity.chicken.ambient": "1;mob/chicken/say1", "193;entity.chicken.death": "1;mob/chicken/hurt1", "194;entity.chicken.egg": "1;mob/chicken/plop", "195;entity.chicken.hurt": "1;mob/chicken/hurt1", "196;entity.chicken.step": "1;mob/chicken/step1", "198;entity.cod.death": "1;entity/fish/hurt1", "199;entity.cod.flop": "0.3;entity/fish/flop1", "200;entity.cod.hurt": "1;entity/fish/hurt1", "201;entity.cow.ambient": "1;mob/cow/say1", "202;entity.cow.death": "1;mob/cow/hurt1", "203;entity.cow.hurt": "1;mob/cow/hurt1", "204;entity.cow.milk": "1;entity/cow/milk1", "205;entity.cow.step": "1;mob/cow/step1", "206;entity.creeper.death": "1;mob/creeper/death", "207;entity.creeper.hurt": "1;mob/creeper/say1", "208;entity.creeper.primed": "1;random/fuse", "209;entity.dolphin.ambient": "1;mob/dolphin/idle1", "210;entity.dolphin.ambient_water": "0.8;mob/dolphin/idle_water1", "211;entity.dolphin.attack": "1;mob/dolphin/attack1", "212;entity.dolphin.death": "1;mob/dolphin/death1", "213;entity.dolphin.eat": "0.75;mob/dolphin/eat1", "214;entity.dolphin.hurt": "1;mob/dolphin/hurt1", "215;entity.dolphin.jump": "0.75;mob/dolphin/jump1", "216;entity.dolphin.play": "1;mob/dolphin/play1", "217;entity.dolphin.splash": "1;mob/dolphin/splash1", "218;entity.dolphin.swim": "1;mob/dolphin/swim1", "219;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "220;entity.donkey.angry": "1;mob/horse/donkey/angry1", "221;entity.donkey.chest": "1;mob/chicken/plop", "222;entity.donkey.death": "1;mob/horse/donkey/death", "223;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "248;entity.dragon_fireball.explode": "1;random/explode1", "224;entity.drowned.ambient": "0.9;mob/drowned/idle1", "225;entity.drowned.ambient_water": "0.9;mob/drowned/water/idle1", "226;entity.drowned.death": "0.9;mob/drowned/death1", "227;entity.drowned.death_water": "0.9;mob/drowned/water/death1", "228;entity.drowned.hurt": "0.9;mob/drowned/hurt1", "229;entity.drowned.hurt_water": "0.9;mob/drowned/water/hurt1", "230;entity.drowned.shoot": "1;item/trident/throw1", "231;entity.drowned.step": "1;mob/drowned/step1", "232;entity.drowned.swim": "1;liquid/swim1", "233;entity.egg.throw": "1;random/bow", "234;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "235;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "236;entity.elder_guardian.curse": "1;mob/guardian/curse", "237;entity.elder_guardian.death": "1;mob/guardian/elder_death", "238;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "239;entity.elder_guardian.flop": "1;mob/guardian/flop1", "240;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "241;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "242;entity.ender_dragon.ambient": "1;mob/enderdragon/growl1", "243;entity.ender_dragon.death": "1;mob/enderdragon/end", "244;entity.ender_dragon.flap": "1;mob/enderdragon/wings1", "245;entity.ender_dragon.growl": "1;mob/enderdragon/growl1", "246;entity.ender_dragon.hurt": "1;mob/enderdragon/hit1", "247;entity.ender_dragon.shoot": "1;mob/ghast/fireball4", "249;entity.ender_eye.death": "1.3;entity/endereye/dead1", "250;entity.ender_eye.launch": "1;entity/endereye/endereye_launch1", "261;entity.ender_pearl.throw": "1;random/bow", "251;entity.enderman.ambient": "1;mob/endermen/idle1", "252;entity.enderman.death": "1;mob/endermen/death", "253;entity.enderman.hurt": "1;mob/endermen/hit1", "254;entity.enderman.scream": "1;mob/endermen/scream1", "255;entity.enderman.stare": "1;mob/endermen/stare", "256;entity.enderman.teleport": "1;mob/endermen/portal", "257;entity.endermite.ambient": "1;mob/silverfish/say1", "258;entity.endermite.death": "1;mob/silverfish/kill", "259;entity.endermite.hurt": "1;mob/silverfish/hit1", "260;entity.endermite.step": "1;mob/silverfish/step1", "262;entity.evoker.ambient": "1;mob/evocation_illager/idle1", "263;entity.evoker.cast_spell": "1;mob/evocation_illager/cast1", "264;entity.evoker.death": "1;mob/evocation_illager/death1", "265;entity.evoker.hurt": "1;mob/evocation_illager/hurt1", "266;entity.evoker.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "267;entity.evoker.prepare_summon": "1;mob/evocation_illager/prepare_summon", "268;entity.evoker.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "269;entity.evoker_fangs.attack": "1;mob/evocation_illager/fangs", "270;entity.experience_bottle.throw": "1;random/bow", "271;entity.experience_orb.pickup": "1;random/orb", "272;entity.firework_rocket.blast": "1;fireworks/blast1", "273;entity.firework_rocket.blast_far": "1;fireworks/blast_far1", "274;entity.firework_rocket.large_blast": "1;fireworks/largeblast1", "275;entity.firework_rocket.large_blast_far": "1;fireworks/largeblast_far1", "276;entity.firework_rocket.launch": "1;fireworks/launch1", "277;entity.firework_rocket.shoot": "1;random/bow", "278;entity.firework_rocket.twinkle": "1;fireworks/twinkle1", "279;entity.firework_rocket.twinkle_far": "1;fireworks/twinkle_far1", "280;entity.fish.swim": "1;entity/fish/swim1", "183;entity.fishing_bobber.retrieve": "1;entity/bobber/retrieve1", "184;entity.fishing_bobber.splash": "1;random/splash", "185;entity.fishing_bobber.throw": "1;entity/bobber/castfast", "281;entity.generic.big_fall": "1;damage/fallbig", "282;entity.generic.burn": "1;random/fizz", "283;entity.generic.death": "1;damage/hit1", "284;entity.generic.drink": "1;random/drink", "285;entity.generic.eat": "1;random/eat1", "286;entity.generic.explode": "1;random/explode1", "287;entity.generic.extinguish_fire": "1;random/fizz", "288;entity.generic.hurt": "1;damage/hit1", "289;entity.generic.small_fall": "1;damage/fallsmall", "290;entity.generic.splash": "1;liquid/splash", "291;entity.generic.swim": "1;liquid/swim1", "292;entity.ghast.ambient": "1;mob/ghast/moan1", "293;entity.ghast.death": "1;mob/ghast/death", "294;entity.ghast.hurt": "1;mob/ghast/scream1", "295;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "296;entity.ghast.shoot": "1;mob/ghast/fireball4", "297;entity.ghast.warn": "1;mob/ghast/charge", "298;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "299;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "300;entity.guardian.attack": "1;mob/guardian/attack_loop", "301;entity.guardian.death": "1;mob/guardian/guardian_death", "302;entity.guardian.death_land": "1;mob/guardian/land_death", "303;entity.guardian.flop": "1;mob/guardian/flop1", "304;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "305;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "306;entity.horse.ambient": "1;mob/horse/idle1", "307;entity.horse.angry": "1;mob/horse/angry1", "308;entity.horse.armor": "1;mob/horse/armor", "309;entity.horse.breathe": "1;mob/horse/breathe1", "310;entity.horse.death": "1;mob/horse/death", "311;entity.horse.eat": "1;entity/horse/eat1", "312;entity.horse.gallop": "1;mob/horse/gallop1", "313;entity.horse.hurt": "1;mob/horse/hit1", "314;entity.horse.jump": "1;mob/horse/jump", "315;entity.horse.land": "1;mob/horse/land", "316;entity.horse.saddle": "1;mob/horse/leather", "317;entity.horse.step": "1;mob/horse/soft1", "318;entity.horse.step_wood": "1;mob/horse/wood1", "319;entity.hostile.big_fall": "1;damage/fallbig", "320;entity.hostile.death": "1;damage/hit1", "321;entity.hostile.hurt": "1;damage/hit1", "322;entity.hostile.small_fall": "1;damage/fallsmall", "323;entity.hostile.splash": "1;liquid/splash", "324;entity.hostile.swim": "1;liquid/swim1", "325;entity.husk.ambient": "1;mob/husk/idle1", "326;entity.husk.converted_to_zombie": "0.8;mob/husk/convert1", "327;entity.husk.death": "1;mob/husk/death1", "328;entity.husk.hurt": "1;mob/husk/hurt1", "329;entity.husk.step": "1;mob/husk/step1", "330;entity.illusioner.ambient": "1;mob/illusion_illager/idle1", "331;entity.illusioner.cast_spell": "1;mob/evocation_illager/cast1", "332;entity.illusioner.death": "1;mob/illusion_illager/death1", "333;entity.illusioner.hurt": "1;mob/illusion_illager/hurt1", "334;entity.illusioner.mirror_move": "1;mob/illusion_illager/mirror_move1", "335;entity.illusioner.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "336;entity.illusioner.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "337;entity.iron_golem.attack": "1;mob/irongolem/throw", "338;entity.iron_golem.death": "1;mob/irongolem/death", "339;entity.iron_golem.hurt": "1;mob/irongolem/hit1", "340;entity.iron_golem.step": "1;mob/irongolem/walk1", "341;entity.item.break": "1;random/break", "342;entity.item.pickup": "1;random/pop", "343;entity.item_frame.add_item": "1;entity/itemframe/add_item1", "344;entity.item_frame.break": "1;entity/itemframe/break1", "345;entity.item_frame.place": "1;entity/itemframe/place1", "346;entity.item_frame.remove_item": "1;entity/itemframe/remove_item1", "347;entity.item_frame.rotate_item": "1;entity/itemframe/rotate_item1", "348;entity.leash_knot.break": "1;entity/leashknot/break1", "349;entity.leash_knot.place": "1;entity/leashknot/place1", "350;entity.lightning_bolt.impact": "1;random/explode1", "351;entity.lightning_bolt.thunder": "1;ambient/weather/thunder1", "352;entity.lingering_potion.throw": "1;random/bow", "353;entity.llama.ambient": "1;mob/llama/idle1", "354;entity.llama.angry": "1;mob/llama/angry1", "355;entity.llama.chest": "1;mob/chicken/plop", "356;entity.llama.death": "1;mob/llama/death1", "357;entity.llama.eat": "1;mob/llama/eat1", "358;entity.llama.hurt": "1;mob/llama/hurt1", "359;entity.llama.spit": "1;mob/llama/spit1", "360;entity.llama.step": "1;mob/llama/step1", "361;entity.llama.swag": "1;mob/llama/swag", "362;entity.magma_cube.death": "1;mob/slime/big1", "498;entity.magma_cube.death_small": "1;mob/slime/small1", "363;entity.magma_cube.hurt": "1;mob/slime/big1", "499;entity.magma_cube.hurt_small": "1;mob/slime/small1", "364;entity.magma_cube.jump": "1;mob/magmacube/jump1", "365;entity.magma_cube.squish": "1;mob/magmacube/big1", "500;entity.magma_cube.squish_small": "1;mob/magmacube/small1", "366;entity.minecart.inside": "1;minecart/inside", "367;entity.minecart.riding": "1;minecart/base", "368;entity.mooshroom.shear": "1;mob/sheep/shear", "369;entity.mule.ambient": "1;mob/horse/donkey/idle1", "370;entity.mule.chest": "1;mob/chicken/plop", "371;entity.mule.death": "1;mob/horse/donkey/death", "372;entity.mule.hurt": "1;mob/horse/donkey/hit1", "373;entity.painting.break": "1;entity/painting/break1", "374;entity.painting.place": "1;entity/painting/place1", "375;entity.parrot.ambient": "0.7;mob/parrot/idle1", "376;entity.parrot.death": "1;mob/parrot/death1", "377;entity.parrot.eat": "1;mob/parrot/eat1", "378;entity.parrot.fly": "1;mob/parrot/fly1", "379;entity.parrot.hurt": "1;mob/parrot/hurt1", "380;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "381;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "382;entity.parrot.imitate.drowned": "0.6;entity.drowned.ambient", "383;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "384;entity.parrot.imitate.ender_dragon": "0.2;entity.ender_dragon.ambient", "385;entity.parrot.imitate.enderman": "0.5;entity.enderman.ambient", "386;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "387;entity.parrot.imitate.evoker": "0.6;entity.evoker.cast_spell", "388;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "389;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "390;entity.parrot.imitate.illusioner": "0.7;entity.illusioner.ambient", "391;entity.parrot.imitate.magma_cube": "0.6;entity.magma_cube.squish", "392;entity.parrot.imitate.phantom": "0.6;entity.phantom.ambient", "393;entity.parrot.imitate.polar_bear": "0.5;entity.polar_bear.ambient", "394;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "395;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "396;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "397;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "398;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "399;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "400;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "401;entity.parrot.imitate.vindicator": "0.6;entity.vindicator.ambient", "402;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "403;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "404;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "405;entity.parrot.imitate.wolf": "0.6;entity.wolf.ambient", "406;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "407;entity.parrot.imitate.zombie_pigman": "0.4;entity.zombie_pigman.ambient", "408;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "409;entity.parrot.step": "1;mob/parrot/step1", "410;entity.phantom.ambient": "0.8;mob/phantom/idle1", "411;entity.phantom.bite": "1;mob/phantom/bite1", "412;entity.phantom.death": "1;mob/phantom/death1", "413;entity.phantom.flap": "0.9;mob/phantom/flap1", "414;entity.phantom.hurt": "0.75;mob/phantom/hurt1", "415;entity.phantom.swoop": "0.7;mob/phantom/swoop1", "416;entity.pig.ambient": "1;mob/pig/say1", "417;entity.pig.death": "1;mob/pig/death", "418;entity.pig.hurt": "1;mob/pig/say1", "419;entity.pig.saddle": "1;mob/horse/leather", "420;entity.pig.step": "1;mob/pig/step1", "421;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "422;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "423;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "424;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "425;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "426;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "427;entity.player.big_fall": "1;damage/fallbig", "428;entity.player.breath": "1;random/breath", "429;entity.player.burp": "1;random/burp", "430;entity.player.death": "1;damage/hit1", "431;entity.player.hurt": "1;damage/hit1", "432;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "433;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "434;entity.player.levelup": "1;random/levelup", "435;entity.player.small_fall": "1;damage/fallsmall", "436;entity.player.splash": "1;liquid/splash", "437;entity.player.splash.high_speed": "1;liquid/heavy_splash", "438;entity.player.swim": "1;liquid/swim5", "439;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "440;entity.polar_bear.ambient_baby": "1;mob/polarbear_baby/idle1", "441;entity.polar_bear.death": "1;mob/polarbear/death1", "442;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "443;entity.polar_bear.step": "1;mob/polarbear/step1", "444;entity.polar_bear.warning": "1;mob/polarbear/warning3", "446;entity.puffer_fish.blow_out": "0.7;entity/pufferfish/blow_out1", "447;entity.puffer_fish.blow_up": "0.45;entity/pufferfish/blow_up1", "448;entity.puffer_fish.death": "1;entity/pufferfish/death1", "449;entity.puffer_fish.flop": "0.3;entity/pufferfish/flop1", "450;entity.puffer_fish.hurt": "1;entity/pufferfish/hurt1", "451;entity.puffer_fish.sting": "1;entity/pufferfish/sting1", "452;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "453;entity.rabbit.attack": "1;entity/rabbit/attack1", "454;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "455;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "456;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "458;entity.salmon.death": "1;entity/fish/hurt1", "459;entity.salmon.flop": "0.3;entity/fish/flop1", "460;entity.salmon.hurt": "1;entity/fish/hurt1", "461;entity.sheep.ambient": "1;mob/sheep/say1", "462;entity.sheep.death": "1;mob/sheep/say1", "463;entity.sheep.hurt": "1;mob/sheep/say1", "464;entity.sheep.shear": "1;mob/sheep/shear", "465;entity.sheep.step": "1;mob/sheep/step1", "466;entity.shulker.ambient": "1;entity/shulker/ambient1", "467;entity.shulker.close": "1;entity/shulker/close1", "468;entity.shulker.death": "1;entity/shulker/death1", "469;entity.shulker.hurt": "1;entity/shulker/hurt1", "470;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "471;entity.shulker.open": "1;entity/shulker/open1", "472;entity.shulker.shoot": "1;entity/shulker/shoot1", "473;entity.shulker.teleport": "1;mob/endermen/portal", "474;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "475;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "476;entity.silverfish.ambient": "1;mob/silverfish/say1", "477;entity.silverfish.death": "1;mob/silverfish/kill", "478;entity.silverfish.hurt": "1;mob/silverfish/hit1", "479;entity.silverfish.step": "1;mob/silverfish/step1", "480;entity.skeleton.ambient": "1;mob/skeleton/say1", "481;entity.skeleton.death": "1;mob/skeleton/death", "482;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "483;entity.skeleton.shoot": "1;random/bow", "484;entity.skeleton.step": "1;mob/skeleton/step1", "485;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "489;entity.skeleton_horse.ambient_water": "1;mob/horse/skeleton/water/idle1", "486;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "490;entity.skeleton_horse.gallop_water": "0.45;mob/horse/skeleton/water/gallop1", "487;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "491;entity.skeleton_horse.jump_water": "0.8;mob/horse/skeleton/water/jump", "492;entity.skeleton_horse.step_water": "0.6;mob/horse/skeleton/water/soft1", "488;entity.skeleton_horse.swim": "0.4;liquid/swim9", "493;entity.slime.attack": "1;mob/slime/attack1", "494;entity.slime.death": "1;mob/slime/big1", "501;entity.slime.death_small": "1;mob/slime/small1", "495;entity.slime.hurt": "1;mob/slime/big1", "502;entity.slime.hurt_small": "1;mob/slime/small1", "496;entity.slime.jump": "1;mob/slime/big1", "497;entity.slime.squish": "1;mob/slime/big1", "506;entity.snow_golem.death": "1;entity/snowman/death1", "507;entity.snow_golem.hurt": "1;entity/snowman/hurt1", "508;entity.snow_golem.shoot": "1;random/bow", "509;entity.snowball.throw": "1;random/bow", "510;entity.spider.ambient": "1;mob/spider/say1", "511;entity.spider.death": "1;mob/spider/death", "512;entity.spider.hurt": "1;mob/spider/say1", "513;entity.spider.step": "1;mob/spider/step1", "514;entity.splash_potion.break": "1;random/glass1", "515;entity.splash_potion.throw": "1;random/bow", "516;entity.squid.ambient": "1;entity/squid/ambient1", "517;entity.squid.death": "1;entity/squid/death1", "518;entity.squid.hurt": "1;entity/squid/hurt1", "519;entity.squid.squirt": "1;entity/squid/squirt1", "520;entity.stray.ambient": "1;mob/stray/idle1", "521;entity.stray.death": "1;mob/stray/death1", "522;entity.stray.hurt": "1;mob/stray/hurt1", "523;entity.stray.step": "1;mob/stray/step1", "524;entity.tnt.primed": "1;random/fuse", "526;entity.tropical_fish.death": "1;entity/fish/hurt1", "527;entity.tropical_fish.flop": "0.3;entity/fish/flop1", "528;entity.tropical_fish.hurt": "1;entity/fish/hurt1", "529;entity.turtle.ambient_land": "0.8;mob/turtle/idle1", "530;entity.turtle.death": "1;mob/turtle/death1", "531;entity.turtle.death_baby": "1;mob/turtle/baby/death1", "532;entity.turtle.egg_break": "1;mob/turtle/egg/egg_break1", "533;entity.turtle.egg_crack": "1;mob/turtle/egg/egg_crack1", "534;entity.turtle.egg_hatch": "1;mob/turtle/baby/egg_hatched1", "535;entity.turtle.hurt": "1;mob/turtle/hurt1", "536;entity.turtle.hurt_baby": "1;mob/turtle/baby/hurt1", "537;entity.turtle.lay_egg": "1;mob/turtle/egg/drop_egg1", "538;entity.turtle.shamble": "1;mob/turtle/walk1", "539;entity.turtle.shamble_baby": "1;mob/turtle/baby/shamble1", "540;entity.turtle.swim": "0.6;mob/turtle/swim/swim1", "541;entity.vex.ambient": "1;mob/vex/idle1", "542;entity.vex.charge": "1;mob/vex/charge1", "543;entity.vex.death": "1;mob/vex/death1", "544;entity.vex.hurt": "1;mob/vex/hurt1", "545;entity.villager.ambient": "1;mob/villager/idle1", "546;entity.villager.death": "1;mob/villager/death", "547;entity.villager.hurt": "1;mob/villager/hit1", "548;entity.villager.no": "1;mob/villager/no1", "549;entity.villager.trade": "1;mob/villager/haggle1", "550;entity.villager.yes": "1;mob/villager/yes1", "551;entity.vindicator.ambient": "1;mob/vindication_illager/idle1", "552;entity.vindicator.death": "1;mob/vindication_illager/death1", "553;entity.vindicator.hurt": "1;mob/vindication_illager/hurt1", "554;entity.witch.ambient": "1;entity/witch/ambient5", "555;entity.witch.death": "1;entity/witch/death1", "556;entity.witch.drink": "1;entity/witch/drink1", "557;entity.witch.hurt": "1;entity/witch/hurt1", "558;entity.witch.throw": "1;entity/witch/throw1", "559;entity.wither.ambient": "1;mob/wither/idle1", "560;entity.wither.break_block": "1;mob/zombie/woodbreak", "561;entity.wither.death": "1;mob/wither/death", "562;entity.wither.hurt": "1;mob/wither/hurt1", "563;entity.wither.shoot": "1;mob/wither/shoot", "564;entity.wither.spawn": "1;mob/wither/spawn", "565;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "566;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "567;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "568;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "569;entity.wolf.ambient": "1;mob/wolf/bark1", "570;entity.wolf.death": "1;mob/wolf/death", "571;entity.wolf.growl": "1;mob/wolf/growl1", "572;entity.wolf.howl": "1;mob/wolf/howl1", "573;entity.wolf.hurt": "1;mob/wolf/hurt1", "574;entity.wolf.pant": "1;mob/wolf/panting", "575;entity.wolf.shake": "1;mob/wolf/shake", "576;entity.wolf.step": "1;mob/wolf/step1", "577;entity.wolf.whine": "1;mob/wolf/whine", "578;entity.zombie.ambient": "1;mob/zombie/say1", "580;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "579;entity.zombie.attack_wooden_door": "1;mob/zombie/wood1", "581;entity.zombie.break_wooden_door": "1;mob/zombie/woodbreak", "582;entity.zombie.converted_to_drowned": "1;mob/drowned/convert1", "583;entity.zombie.death": "1;mob/zombie/death", "584;entity.zombie.destroy_egg": "1;mob/turtle/egg/jump_egg1", "585;entity.zombie.hurt": "1;mob/zombie/hurt1", "586;entity.zombie.infect": "1;mob/zombie/infect", "587;entity.zombie.step": "1;mob/zombie/step1", "588;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "589;entity.zombie_horse.death": "1;mob/horse/zombie/death", "590;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "591;entity.zombie_pigman.ambient": "1;mob/zombiepig/zpig1", "592;entity.zombie_pigman.angry": "1;mob/zombiepig/zpigangry1", "593;entity.zombie_pigman.death": "1;mob/zombiepig/zpigdeath", "594;entity.zombie_pigman.hurt": "1;mob/zombiepig/zpighurt1", "595;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "596;entity.zombie_villager.converted": "1;mob/zombie/unfect", "597;entity.zombie_villager.cure": "1;mob/zombie/remedy", "598;entity.zombie_villager.death": "1;mob/zombie_villager/death", "599;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "600;entity.zombie_villager.step": "1;mob/zombie/step1", "601;item.armor.equip_chain": "1;item/armor/equip_chain1", "602;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "603;item.armor.equip_elytra": "1;item/armor/equip_leather1", "604;item.armor.equip_generic": "1;item/armor/equip_generic1", "605;item.armor.equip_gold": "1;item/armor/equip_gold1", "606;item.armor.equip_iron": "1;item/armor/equip_iron1", "607;item.armor.equip_leather": "1;item/armor/equip_leather1", "608;item.armor.equip_turtle": "1;mob/turtle/armor", "609;item.axe.strip": "0.9;item/axe/strip1", "610;item.bottle.empty": "1;item/bottle/empty1", "611;item.bottle.fill": "1;item/bottle/fill1", "612;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "613;item.bucket.empty": "1;item/bucket/empty1", "614;item.bucket.empty_fish": "1;item/bucket/empty_fish1", "615;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "616;item.bucket.fill": "1;item/bucket/fill1", "617;item.bucket.fill_fish": "1;item/bucket/fill_fish1", "618;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "619;item.chorus_fruit.teleport": "1;mob/endermen/portal", "620;item.elytra.flying": "0.6;item/elytra/elytra_loop", "621;item.firecharge.use": "1;mob/ghast/fireball4", "622;item.flintandsteel.use": "1;fire/ignite", "623;item.hoe.till": "1;item/hoe/till1", "624;item.shield.block": "1;item/shield/block1", "625;item.shield.break": "1;random/break", "626;item.shovel.flatten": "1;item/shovel/flatten1", "627;item.totem.use": "1;item/totem/use_totem", "628;item.trident.hit": "1;item/trident/pierce1", "629;item.trident.hit_ground": "0.9;item/trident/ground_impact1", "630;item.trident.return": "0.8;item/trident/return1", "631;item.trident.riptide_1": "1;item/trident/riptide1", "632;item.trident.riptide_2": "1;item/trident/riptide2", "633;item.trident.riptide_3": "1;item/trident/riptide3", "634;item.trident.throw": "1;item/trident/throw1", "635;item.trident.thunder": "1;item/trident/thunder1", "636;music.creative": "1;music.game", "637;music.credits": "1;music/game/end/credits", "638;music.dragon": "1;music/game/end/boss", "639;music.end": "1;music/game/end/end", "640;music.game": "1;music/game/calm1", "641;music.menu": "1;music/menu/menu1", "642;music.nether": "1;music/game/nether/nether1", "643;music.under_water": "0.4;music/game/water/shuniji", "644;music_disc.11": "1;records/11", "645;music_disc.13": "1;records/13", "646;music_disc.blocks": "1;records/blocks", "647;music_disc.cat": "1;records/cat", "648;music_disc.chirp": "1;records/chirp", "649;music_disc.far": "1;records/far", "650;music_disc.mall": "1;records/mall", "651;music_disc.mellohi": "1;records/mellohi", "652;music_disc.stal": "1;records/stal", "653;music_disc.strad": "1;records/strad", "654;music_disc.wait": "1;records/wait", "655;music_disc.ward": "1;records/ward", "656;ui.button.click": "1;random/click", "657;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "658;ui.toast.in": "0.4;ui/toast/in", "659;ui.toast.out": "0.4;ui/toast/out", "660;weather.rain": "1;ambient/weather/rain1", "661;weather.rain.above": "1;ambient/weather/rain1" }, "1.12.2": { "0;ambient.cave": "1;ambient/cave/cave1", "1;block.anvil.break": "1;dig/stone1", "2;block.anvil.destroy": "1;random/anvil_break", "3;block.anvil.fall": "1;step/stone1", "4;block.anvil.hit": "1;step/stone1", "5;block.anvil.land": "1;random/anvil_land", "6;block.anvil.place": "1;random/anvil_land", "7;block.anvil.step": "1;step/stone1", "8;block.anvil.use": "1;random/anvil_use", "9;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "10;block.chest.close": "1;block/chest/close", "11;block.chest.locked": "1;block/wooden_door/close", "12;block.chest.open": "1;block/chest/open", "13;block.chorus_flower.death": "1;block/chorus_flower/death1", "14;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "15;block.cloth.break": "1;dig/cloth1", "16;block.cloth.fall": "1;step/cloth1", "17;block.cloth.hit": "1;step/cloth1", "18;block.cloth.place": "1;dig/cloth1", "19;block.cloth.step": "1;step/cloth1", "20;block.comparator.click": "1;random/click", "21;block.dispenser.dispense": "1;random/click", "22;block.dispenser.fail": "1;random/click", "23;block.dispenser.launch": "1;random/bow", "24;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "25;block.end_gateway.spawn": "1;random/explode1", "26;block.end_portal.spawn": "1;block/end_portal/endportal", "27;block.end_portal_frame.fill": "1;block/end_portal/eyeplace1", "28;block.enderchest.close": "1;block/enderchest/close", "29;block.enderchest.open": "1;block/enderchest/open", "30;block.fence_gate.close": "1;block/fence_gate/close1", "31;block.fence_gate.open": "1;block/fence_gate/open1", "32;block.fire.ambient": "1;fire/fire", "33;block.fire.extinguish": "1;random/fizz", "34;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "35;block.glass.break": "1;random/glass1", "36;block.glass.fall": "1;step/stone1", "37;block.glass.hit": "1;step/stone1", "38;block.glass.place": "1;dig/stone1", "39;block.glass.step": "1;step/stone1", "40;block.grass.break": "1;dig/grass1", "41;block.grass.fall": "1;step/grass1", "42;block.grass.hit": "1;step/grass1", "43;block.grass.place": "1;dig/grass1", "44;block.grass.step": "1;step/grass1", "45;block.gravel.break": "1;dig/gravel1", "46;block.gravel.fall": "1;step/gravel1", "47;block.gravel.hit": "1;step/gravel1", "48;block.gravel.place": "1;dig/gravel1", "49;block.gravel.step": "1;step/gravel1", "50;block.iron_door.close": "1;block/iron_door/close1", "51;block.iron_door.open": "1;block/iron_door/open1", "52;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "53;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "54;block.ladder.break": "1;dig/wood1", "55;block.ladder.fall": "1;step/ladder1", "56;block.ladder.hit": "1;step/ladder1", "57;block.ladder.place": "1;dig/wood1", "58;block.ladder.step": "1;step/ladder1", "59;block.lava.ambient": "1;liquid/lava", "60;block.lava.extinguish": "1;random/fizz", "61;block.lava.pop": "1;liquid/lavapop", "62;block.lever.click": "1;random/click", "63;block.metal.break": "1;dig/stone1", "64;block.metal.fall": "1;step/stone1", "65;block.metal.hit": "1;step/stone1", "66;block.metal.place": "1;dig/stone1", "67;block.metal.step": "1;step/stone1", "68;block.metal_pressureplate.click_off": "1;random/click", "69;block.metal_pressureplate.click_on": "1;random/click", "70;block.note.basedrum": "1;note/bd", "71;block.note.bass": "1;note/bassattack", "72;block.note.bell": "1;note/bell", "73;block.note.chime": "1;note/icechime", "74;block.note.flute": "1;note/flute", "75;block.note.guitar": "1;note/guitar", "76;block.note.harp": "1;note/harp2", "77;block.note.hat": "1;note/hat", "78;block.note.pling": "1;note/pling", "79;block.note.snare": "1;note/snare", "80;block.note.xylophone": "1;note/xylobone", "81;block.piston.contract": "1;tile/piston/in", "82;block.piston.extend": "1;tile/piston/out", "83;block.portal.ambient": "1;portal/portal", "84;block.portal.travel": "1;portal/travel", "85;block.portal.trigger": "1;portal/trigger", "86;block.redstone_torch.burnout": "1;random/fizz", "87;block.sand.break": "1;dig/sand1", "88;block.sand.fall": "1;step/sand1", "89;block.sand.hit": "1;step/sand1", "90;block.sand.place": "1;dig/sand1", "91;block.sand.step": "1;step/sand1", "92;block.shulker_box.close": "1;block/shulker_box/close", "93;block.shulker_box.open": "1;block/shulker_box/open", "94;block.slime.break": "1;mob/slime/big1", "95;block.slime.fall": "1;mob/slime/small1", "96;block.slime.hit": "1;mob/slime/small1", "97;block.slime.place": "1;mob/slime/big1", "98;block.slime.step": "1;mob/slime/small1", "99;block.snow.break": "1;dig/snow1", "100;block.snow.fall": "1;step/snow1", "101;block.snow.hit": "1;step/snow1", "102;block.snow.place": "1;dig/snow1", "103;block.snow.step": "1;step/snow1", "104;block.stone.break": "1;dig/stone1", "105;block.stone.fall": "1;step/stone1", "106;block.stone.hit": "1;step/stone1", "107;block.stone.place": "1;dig/stone1", "108;block.stone.step": "1;step/stone1", "109;block.stone_button.click_off": "1;random/click", "110;block.stone_button.click_on": "1;random/click", "111;block.stone_pressureplate.click_off": "1;random/click", "112;block.stone_pressureplate.click_on": "1;random/click", "113;block.tripwire.attach": "1;random/click", "114;block.tripwire.click_off": "1;random/click", "115;block.tripwire.click_on": "1;random/click", "116;block.tripwire.detach": "1;random/bowhit1", "117;block.water.ambient": "1;liquid/water", "118;block.waterlily.place": "1;block/waterlily/place1", "119;block.wood.break": "1;dig/wood1", "120;block.wood.fall": "1;step/wood1", "121;block.wood.hit": "1;step/wood1", "122;block.wood.place": "1;dig/wood1", "123;block.wood.step": "1;step/wood1", "124;block.wood_button.click_off": "1;random/wood_click", "125;block.wood_button.click_on": "1;random/wood_click", "126;block.wood_pressureplate.click_off": "1;random/click", "127;block.wood_pressureplate.click_on": "1;random/click", "128;block.wooden_door.close": "1;block/wooden_door/close", "129;block.wooden_door.open": "1;block/wooden_door/open", "130;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "131;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "132;enchant.thorns.hit": "1;enchant/thorns/hit1", "133;entity.armorstand.break": "1;entity/armorstand/break1", "134;entity.armorstand.fall": "1;dig/wood1", "135;entity.armorstand.hit": "1;entity/armorstand/hit1", "136;entity.armorstand.place": "1;dig/stone1", "137;entity.arrow.hit": "1;random/bowhit1", "138;entity.arrow.hit_player": "1;random/successful_hit", "139;entity.arrow.shoot": "1;random/bow", "140;entity.bat.ambient": "1;mob/bat/idle1", "141;entity.bat.death": "1;mob/bat/death", "142;entity.bat.hurt": "1;mob/bat/hurt1", "143;entity.bat.loop": "1;mob/bat/loop", "144;entity.bat.takeoff": "1;mob/bat/takeoff", "145;entity.blaze.ambient": "1;mob/blaze/breathe1", "146;entity.blaze.burn": "1;fire/fire", "147;entity.blaze.death": "1;mob/blaze/death", "148;entity.blaze.hurt": "1;mob/blaze/hit1", "149;entity.blaze.shoot": "1;mob/ghast/fireball4", "150;entity.boat.paddle_land": "1;entity/boat/paddle_land1", "151;entity.boat.paddle_water": "0.8;entity/boat/paddle_water1", "152;entity.bobber.retrieve": "1;entity/bobber/retrieve1", "153;entity.bobber.splash": "1;random/splash", "154;entity.bobber.throw": "1;entity/bobber/castfast", "155;entity.cat.ambient": "1;mob/cat/meow1", "156;entity.cat.death": "1;mob/cat/hitt1", "157;entity.cat.hiss": "1;mob/cat/hiss1", "158;entity.cat.hurt": "1;mob/cat/hitt1", "159;entity.cat.purr": "1;mob/cat/purr1", "160;entity.cat.purreow": "1;mob/cat/purreow1", "161;entity.chicken.ambient": "1;mob/chicken/say1", "162;entity.chicken.death": "1;mob/chicken/hurt1", "163;entity.chicken.egg": "1;mob/chicken/plop", "164;entity.chicken.hurt": "1;mob/chicken/hurt1", "165;entity.chicken.step": "1;mob/chicken/step1", "166;entity.cow.ambient": "1;mob/cow/say1", "167;entity.cow.death": "1;mob/cow/hurt1", "168;entity.cow.hurt": "1;mob/cow/hurt1", "169;entity.cow.milk": "1;entity/cow/milk1", "170;entity.cow.step": "1;mob/cow/step1", "171;entity.creeper.death": "1;mob/creeper/death", "172;entity.creeper.hurt": "1;mob/creeper/say1", "173;entity.creeper.primed": "1;random/fuse", "174;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "175;entity.donkey.angry": "1;mob/horse/donkey/angry1", "176;entity.donkey.chest": "1;mob/chicken/plop", "177;entity.donkey.death": "1;mob/horse/donkey/death", "178;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "179;entity.egg.throw": "1;random/bow", "180;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "181;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "182;entity.elder_guardian.curse": "1;mob/guardian/curse", "183;entity.elder_guardian.death": "1;mob/guardian/elder_death", "184;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "185;entity.elder_guardian.flop": "1;mob/guardian/flop1", "186;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "187;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "188;entity.enderdragon.ambient": "1;mob/enderdragon/growl1", "189;entity.enderdragon.death": "1;mob/enderdragon/end", "190;entity.enderdragon.flap": "1;mob/enderdragon/wings1", "191;entity.enderdragon.growl": "1;mob/enderdragon/growl1", "192;entity.enderdragon.hurt": "1;mob/enderdragon/hit1", "193;entity.enderdragon.shoot": "1;mob/ghast/fireball4", "194;entity.enderdragon_fireball.explode": "1;random/explode1", "195;entity.endereye.death": "1.3;entity/endereye/dead1", "196;entity.endereye.launch": "1;entity/endereye/endereye_launch1", "197;entity.endermen.ambient": "1;mob/endermen/idle1", "198;entity.endermen.death": "1;mob/endermen/death", "199;entity.endermen.hurt": "1;mob/endermen/hit1", "200;entity.endermen.scream": "1;mob/endermen/scream1", "201;entity.endermen.stare": "1;mob/endermen/stare", "202;entity.endermen.teleport": "1;mob/endermen/portal", "203;entity.endermite.ambient": "1;mob/silverfish/say1", "204;entity.endermite.death": "1;mob/silverfish/kill", "205;entity.endermite.hurt": "1;mob/silverfish/hit1", "206;entity.endermite.step": "1;mob/silverfish/step1", "207;entity.enderpearl.throw": "1;random/bow", "208;entity.evocation_fangs.attack": "1;mob/evocation_illager/fangs", "209;entity.evocation_illager.ambient": "1;mob/evocation_illager/idle1", "210;entity.evocation_illager.cast_spell": "1;mob/evocation_illager/cast1", "211;entity.evocation_illager.death": "1;mob/evocation_illager/death1", "212;entity.evocation_illager.hurt": "1;mob/evocation_illager/hurt1", "213;entity.evocation_illager.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "214;entity.evocation_illager.prepare_summon": "1;mob/evocation_illager/prepare_summon", "215;entity.evocation_illager.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "216;entity.experience_bottle.throw": "1;random/bow", "217;entity.experience_orb.pickup": "1;random/orb", "218;entity.firework.blast": "1;fireworks/blast1", "219;entity.firework.blast_far": "1;fireworks/blast_far1", "220;entity.firework.large_blast": "1;fireworks/largeblast1", "221;entity.firework.large_blast_far": "1;fireworks/largeblast_far1", "222;entity.firework.launch": "1;fireworks/launch1", "223;entity.firework.shoot": "1;random/bow", "224;entity.firework.twinkle": "1;fireworks/twinkle1", "225;entity.firework.twinkle_far": "1;fireworks/twinkle_far1", "226;entity.generic.big_fall": "1;damage/fallbig", "227;entity.generic.burn": "1;random/fizz", "228;entity.generic.death": "1;damage/hit1", "229;entity.generic.drink": "1;random/drink", "230;entity.generic.eat": "1;random/eat1", "231;entity.generic.explode": "1;random/explode1", "232;entity.generic.extinguish_fire": "1;random/fizz", "233;entity.generic.hurt": "1;damage/hit1", "234;entity.generic.small_fall": "1;damage/fallsmall", "235;entity.generic.splash": "1;liquid/splash", "236;entity.generic.swim": "1;liquid/swim1", "237;entity.ghast.ambient": "1;mob/ghast/moan1", "238;entity.ghast.death": "1;mob/ghast/death", "239;entity.ghast.hurt": "1;mob/ghast/scream1", "240;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "241;entity.ghast.shoot": "1;mob/ghast/fireball4", "242;entity.ghast.warn": "1;mob/ghast/charge", "243;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "244;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "245;entity.guardian.attack": "1;mob/guardian/attack_loop", "246;entity.guardian.death": "1;mob/guardian/guardian_death", "247;entity.guardian.death_land": "1;mob/guardian/land_death", "248;entity.guardian.flop": "1;mob/guardian/flop1", "249;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "250;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "251;entity.horse.ambient": "1;mob/horse/idle1", "252;entity.horse.angry": "1;mob/horse/angry1", "253;entity.horse.armor": "1;mob/horse/armor", "254;entity.horse.breathe": "1;mob/horse/breathe1", "255;entity.horse.death": "1;mob/horse/death", "256;entity.horse.eat": "1;entity/horse/eat1", "257;entity.horse.gallop": "1;mob/horse/gallop1", "258;entity.horse.hurt": "1;mob/horse/hit1", "259;entity.horse.jump": "1;mob/horse/jump", "260;entity.horse.land": "1;mob/horse/land", "261;entity.horse.saddle": "1;mob/horse/leather", "262;entity.horse.step": "1;mob/horse/soft1", "263;entity.horse.step_wood": "1;mob/horse/wood1", "264;entity.hostile.big_fall": "1;damage/fallbig", "265;entity.hostile.death": "1;damage/hit1", "266;entity.hostile.hurt": "1;damage/hit1", "267;entity.hostile.small_fall": "1;damage/fallsmall", "268;entity.hostile.splash": "1;liquid/splash", "269;entity.hostile.swim": "1;liquid/swim1", "270;entity.husk.ambient": "1;mob/husk/idle1", "271;entity.husk.death": "1;mob/husk/death1", "272;entity.husk.hurt": "1;mob/husk/hurt1", "273;entity.husk.step": "1;mob/husk/step1", "274;entity.illusion_illager.ambient": "1;mob/illusion_illager/idle1", "275;entity.illusion_illager.cast_spell": "1;mob/evocation_illager/cast1", "276;entity.illusion_illager.death": "1;mob/illusion_illager/death1", "277;entity.illusion_illager.hurt": "1;mob/illusion_illager/hurt1", "278;entity.illusion_illager.mirror_move": "1;mob/illusion_illager/mirror_move1", "279;entity.illusion_illager.prepare_blindness": "1;mob/illusion_illager/prepare_blind", "280;entity.illusion_illager.prepare_mirror": "1;mob/illusion_illager/prepare_mirror", "281;entity.irongolem.attack": "1;mob/irongolem/throw", "282;entity.irongolem.death": "1;mob/irongolem/death", "283;entity.irongolem.hurt": "1;mob/irongolem/hit1", "284;entity.irongolem.step": "1;mob/irongolem/walk1", "285;entity.item.break": "1;random/break", "286;entity.item.pickup": "1;random/pop", "287;entity.itemframe.add_item": "1;entity/itemframe/add_item1", "288;entity.itemframe.break": "1;entity/itemframe/break1", "289;entity.itemframe.place": "1;entity/itemframe/place1", "290;entity.itemframe.remove_item": "1;entity/itemframe/remove_item1", "291;entity.itemframe.rotate_item": "1;entity/itemframe/rotate_item1", "292;entity.leashknot.break": "1;entity/leashknot/break1", "293;entity.leashknot.place": "1;entity/leashknot/place1", "294;entity.lightning.impact": "1;random/explode1", "295;entity.lightning.thunder": "1;ambient/weather/thunder1", "296;entity.lingeringpotion.throw": "1;random/bow", "297;entity.llama.ambient": "1;mob/llama/idle1", "298;entity.llama.angry": "1;mob/llama/angry1", "299;entity.llama.chest": "1;mob/chicken/plop", "300;entity.llama.death": "1;mob/llama/death1", "301;entity.llama.eat": "1;mob/llama/eat1", "302;entity.llama.hurt": "1;mob/llama/hurt1", "303;entity.llama.spit": "1;mob/llama/spit1", "304;entity.llama.step": "1;mob/llama/step1", "305;entity.llama.swag": "1;mob/llama/swag", "306;entity.magmacube.death": "1;mob/slime/big1", "307;entity.magmacube.hurt": "1;mob/slime/big1", "308;entity.magmacube.jump": "1;mob/magmacube/jump1", "309;entity.magmacube.squish": "1;mob/magmacube/big1", "310;entity.minecart.inside": "1;minecart/inside", "311;entity.minecart.riding": "1;minecart/base", "312;entity.mooshroom.shear": "1;mob/sheep/shear", "313;entity.mule.ambient": "1;mob/horse/donkey/idle1", "314;entity.mule.chest": "1;mob/chicken/plop", "315;entity.mule.death": "1;mob/horse/donkey/death", "316;entity.mule.hurt": "1;mob/horse/donkey/hit1", "317;entity.painting.break": "1;entity/painting/break1", "318;entity.painting.place": "1;entity/painting/place1", "319;entity.parrot.ambient": "0.7;mob/parrot/idle1", "320;entity.parrot.death": "1;mob/parrot/death1", "321;entity.parrot.eat": "1;mob/parrot/eat1", "322;entity.parrot.fly": "1;mob/parrot/fly1", "323;entity.parrot.hurt": "1;mob/parrot/hurt1", "324;entity.parrot.imitate.blaze": "0.4;entity.blaze.ambient", "325;entity.parrot.imitate.creeper": "0.6;entity.creeper.primed", "326;entity.parrot.imitate.elder_guardian": "0.7;entity.elder_guardian.ambient_land", "327;entity.parrot.imitate.enderdragon": "0.2;entity.enderdragon.ambient", "328;entity.parrot.imitate.enderman": "0.5;entity.endermen.ambient", "329;entity.parrot.imitate.endermite": "0.7;entity.endermite.ambient", "330;entity.parrot.imitate.evocation_illager": "0.6;entity.evocation_illager.ambient", "331;entity.parrot.imitate.ghast": "0.7;entity.ghast.ambient", "332;entity.parrot.imitate.husk": "0.6;entity.husk.ambient", "333;entity.parrot.imitate.illusion_illager": "0.7;entity.illusion_illager.ambient", "334;entity.parrot.imitate.magmacube": "0.6;entity.magmacube.squish", "335;entity.parrot.imitate.polar_bear": "0.7;entity.polar_bear.ambient", "336;entity.parrot.imitate.shulker": "0.4;entity.shulker.ambient", "337;entity.parrot.imitate.silverfish": "0.7;entity.silverfish.ambient", "338;entity.parrot.imitate.skeleton": "1;entity.skeleton.ambient", "339;entity.parrot.imitate.slime": "0.6;entity.slime.squish", "340;entity.parrot.imitate.spider": "0.6;entity.spider.ambient", "341;entity.parrot.imitate.stray": "0.6;entity.stray.ambient", "342;entity.parrot.imitate.vex": "0.8;entity.vex.ambient", "343;entity.parrot.imitate.vindication_illager": "0.6;entity.vindication_illager.ambient", "344;entity.parrot.imitate.witch": "0.5;entity.witch.ambient", "345;entity.parrot.imitate.wither": "0.2;entity.wither.ambient", "346;entity.parrot.imitate.wither_skeleton": "0.7;entity.wither_skeleton.ambient", "347;entity.parrot.imitate.wolf": "0.6;entity.wolf.ambient", "348;entity.parrot.imitate.zombie": "0.6;entity.zombie.ambient", "349;entity.parrot.imitate.zombie_pigman": "0.4;entity.zombie_pig.ambient", "350;entity.parrot.imitate.zombie_villager": "0.6;entity.zombie_villager.ambient", "351;entity.parrot.step": "1;mob/parrot/step1", "352;entity.pig.ambient": "1;mob/pig/say1", "353;entity.pig.death": "1;mob/pig/death", "354;entity.pig.hurt": "1;mob/pig/say1", "355;entity.pig.saddle": "1;mob/horse/leather", "356;entity.pig.step": "1;mob/pig/step1", "357;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "358;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "359;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "360;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "361;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "362;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "363;entity.player.big_fall": "1;damage/fallbig", "364;entity.player.breath": "1;random/breath", "365;entity.player.burp": "1;random/burp", "366;entity.player.death": "1;damage/hit1", "367;entity.player.hurt": "1;damage/hit1", "368;entity.player.hurt_drown": "1;entity/player/hurt/drown1", "369;entity.player.hurt_on_fire": "1;entity/player/hurt/fire_hurt1", "370;entity.player.levelup": "1;random/levelup", "371;entity.player.small_fall": "1;damage/fallsmall", "372;entity.player.splash": "1;liquid/splash", "373;entity.player.swim": "1;liquid/swim1", "374;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "375;entity.polar_bear.baby_ambient": "1;mob/polarbear_baby/idle1", "376;entity.polar_bear.death": "1;mob/polarbear/death1", "377;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "378;entity.polar_bear.step": "1;mob/polarbear/step1", "379;entity.polar_bear.warning": "1;mob/polarbear/warning3", "380;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "381;entity.rabbit.attack": "1;entity/rabbit/attack1", "382;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "383;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "384;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "385;entity.sheep.ambient": "1;mob/sheep/say1", "386;entity.sheep.death": "1;mob/sheep/say1", "387;entity.sheep.hurt": "1;mob/sheep/say1", "388;entity.sheep.shear": "1;mob/sheep/shear", "389;entity.sheep.step": "1;mob/sheep/step1", "390;entity.shulker.ambient": "1;entity/shulker/ambient1", "391;entity.shulker.close": "1;entity/shulker/close1", "392;entity.shulker.death": "1;entity/shulker/death1", "393;entity.shulker.hurt": "1;entity/shulker/hurt1", "394;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "395;entity.shulker.open": "1;entity/shulker/open1", "396;entity.shulker.shoot": "1;entity/shulker/shoot1", "397;entity.shulker.teleport": "1;mob/endermen/portal", "398;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "399;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "400;entity.silverfish.ambient": "1;mob/silverfish/say1", "401;entity.silverfish.death": "1;mob/silverfish/kill", "402;entity.silverfish.hurt": "1;mob/silverfish/hit1", "403;entity.silverfish.step": "1;mob/silverfish/step1", "404;entity.skeleton.ambient": "1;mob/skeleton/say1", "405;entity.skeleton.death": "1;mob/skeleton/death", "406;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "407;entity.skeleton.shoot": "1;random/bow", "408;entity.skeleton.step": "1;mob/skeleton/step1", "409;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "410;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "411;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "412;entity.slime.attack": "1;mob/slime/attack1", "413;entity.slime.death": "1;mob/slime/big1", "414;entity.slime.hurt": "1;mob/slime/big1", "415;entity.slime.jump": "1;mob/slime/big1", "416;entity.slime.squish": "1;mob/slime/big1", "417;entity.small_magmacube.death": "1;mob/slime/small1", "418;entity.small_magmacube.hurt": "1;mob/slime/small1", "419;entity.small_magmacube.squish": "1;mob/magmacube/small1", "420;entity.small_slime.death": "1;mob/slime/small1", "421;entity.small_slime.hurt": "1;mob/slime/small1", "424;entity.snowball.throw": "1;random/bow", "426;entity.snowman.death": "1;entity/snowman/death1", "427;entity.snowman.hurt": "1;entity/snowman/hurt1", "428;entity.snowman.shoot": "1;random/bow", "429;entity.spider.ambient": "1;mob/spider/say1", "430;entity.spider.death": "1;mob/spider/death", "431;entity.spider.hurt": "1;mob/spider/say1", "432;entity.spider.step": "1;mob/spider/step1", "433;entity.splash_potion.break": "1;random/glass1", "434;entity.splash_potion.throw": "1;random/bow", "435;entity.squid.ambient": "1;entity/squid/ambient1", "436;entity.squid.death": "1;entity/squid/death1", "437;entity.squid.hurt": "1;entity/squid/hurt1", "438;entity.stray.ambient": "1;mob/stray/idle1", "439;entity.stray.death": "1;mob/stray/death1", "440;entity.stray.hurt": "1;mob/stray/hurt1", "441;entity.stray.step": "1;mob/stray/step1", "442;entity.tnt.primed": "1;random/fuse", "443;entity.vex.ambient": "1;mob/vex/idle1", "444;entity.vex.charge": "1;mob/vex/charge1", "445;entity.vex.death": "1;mob/vex/death1", "446;entity.vex.hurt": "1;mob/vex/hurt1", "447;entity.villager.ambient": "1;mob/villager/idle1", "448;entity.villager.death": "1;mob/villager/death", "449;entity.villager.hurt": "1;mob/villager/hit1", "450;entity.villager.no": "1;mob/villager/no1", "451;entity.villager.trading": "1;mob/villager/haggle1", "452;entity.villager.yes": "1;mob/villager/yes1", "453;entity.vindication_illager.ambient": "1;mob/vindication_illager/idle1", "454;entity.vindication_illager.death": "1;mob/vindication_illager/death1", "455;entity.vindication_illager.hurt": "1;mob/vindication_illager/hurt1", "456;entity.witch.ambient": "1;entity/witch/ambient5", "457;entity.witch.death": "1;entity/witch/death1", "458;entity.witch.drink": "1;entity/witch/drink1", "459;entity.witch.hurt": "1;entity/witch/hurt1", "460;entity.witch.throw": "1;entity/witch/throw1", "461;entity.wither.ambient": "1;mob/wither/idle1", "462;entity.wither.break_block": "1;mob/zombie/woodbreak", "463;entity.wither.death": "1;mob/wither/death", "464;entity.wither.hurt": "1;mob/wither/hurt1", "465;entity.wither.shoot": "1;mob/wither/shoot", "466;entity.wither.spawn": "1;mob/wither/spawn", "467;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "468;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "469;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "470;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "471;entity.wolf.ambient": "1;mob/wolf/bark1", "472;entity.wolf.death": "1;mob/wolf/death", "473;entity.wolf.growl": "1;mob/wolf/growl1", "474;entity.wolf.howl": "1;mob/wolf/howl1", "475;entity.wolf.hurt": "1;mob/wolf/hurt1", "476;entity.wolf.pant": "1;mob/wolf/panting", "477;entity.wolf.shake": "1;mob/wolf/shake", "478;entity.wolf.step": "1;mob/wolf/step1", "479;entity.wolf.whine": "1;mob/wolf/whine", "480;entity.zombie.ambient": "1;mob/zombie/say1", "481;entity.zombie.attack_door_wood": "1;mob/zombie/wood1", "482;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "483;entity.zombie.break_door_wood": "1;mob/zombie/woodbreak", "484;entity.zombie.death": "1;mob/zombie/death", "485;entity.zombie.hurt": "1;mob/zombie/hurt1", "486;entity.zombie.infect": "1;mob/zombie/infect", "487;entity.zombie.step": "1;mob/zombie/step1", "488;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "489;entity.zombie_horse.death": "1;mob/horse/zombie/death", "490;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "491;entity.zombie_pig.ambient": "1;mob/zombiepig/zpig1", "492;entity.zombie_pig.angry": "1;mob/zombiepig/zpigangry1", "493;entity.zombie_pig.death": "1;mob/zombiepig/zpigdeath", "494;entity.zombie_pig.hurt": "1;mob/zombiepig/zpighurt1", "495;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "496;entity.zombie_villager.converted": "1;mob/zombie/unfect", "497;entity.zombie_villager.cure": "1;mob/zombie/remedy", "498;entity.zombie_villager.death": "1;mob/zombie_villager/death", "499;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "500;entity.zombie_villager.step": "1;mob/zombie/step1", "501;item.armor.equip_chain": "1;item/armor/equip_chain1", "502;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "503;item.armor.equip_elytra": "1;item/armor/equip_leather1", "504;item.armor.equip_generic": "1;item/armor/equip_generic1", "505;item.armor.equip_gold": "1;item/armor/equip_gold1", "506;item.armor.equip_iron": "1;item/armor/equip_iron1", "507;item.armor.equip_leather": "1;item/armor/equip_leather1", "508;item.bottle.empty": "1;item/bottle/empty1", "509;item.bottle.fill": "1;item/bottle/fill1", "510;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "511;item.bucket.empty": "1;item/bucket/empty1", "512;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "513;item.bucket.fill": "1;item/bucket/fill1", "514;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "515;item.chorus_fruit.teleport": "1;mob/endermen/portal", "516;item.elytra.flying": "0.6;item/elytra/elytra_loop", "517;item.firecharge.use": "1;mob/ghast/fireball4", "518;item.flintandsteel.use": "1;fire/ignite", "519;item.hoe.till": "1;item/hoe/till1", "520;item.shield.block": "1;item/shield/block1", "521;item.shield.break": "1;random/break", "522;item.shovel.flatten": "1;item/shovel/flatten1", "523;item.totem.use": "1;item/totem/use_totem", "524;music.creative": "1;music.game", "525;music.credits": "1;music/game/end/credits", "526;music.dragon": "1;music/game/end/boss", "527;music.end": "1;music/game/end/end", "528;music.game": "1;music/game/calm1", "529;music.menu": "1;music/menu/menu1", "530;music.nether": "1;music/game/nether/nether1", "531;record.11": "1;records/11", "532;record.13": "1;records/13", "533;record.blocks": "1;records/blocks", "534;record.cat": "1;records/cat", "535;record.chirp": "1;records/chirp", "536;record.far": "1;records/far", "537;record.mall": "1;records/mall", "538;record.mellohi": "1;records/mellohi", "539;record.stal": "1;records/stal", "540;record.strad": "1;records/strad", "541;record.wait": "1;records/wait", "542;record.ward": "1;records/ward", "543;ui.button.click": "1;random/click", "546;ui.toast.challenge_complete": "0.6;ui/toast/challenge_complete", "544;ui.toast.in": "0.4;ui/toast/in", "545;ui.toast.out": "0.4;ui/toast/out", "547;weather.rain": "1;ambient/weather/rain1", "548;weather.rain.above": "1;ambient/weather/rain1" }, "1.11.2": { "0;ambient.cave": "1;ambient/cave/cave1", "1;block.anvil.break": "1;dig/stone1", "2;block.anvil.destroy": "1;random/anvil_break", "3;block.anvil.fall": "1;step/stone1", "4;block.anvil.hit": "1;step/stone1", "5;block.anvil.land": "1;random/anvil_land", "6;block.anvil.place": "1;random/anvil_land", "7;block.anvil.step": "1;step/stone1", "8;block.anvil.use": "1;random/anvil_use", "9;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "10;block.chest.close": "1;block/chest/close", "11;block.chest.locked": "1;block/wooden_door/close", "12;block.chest.open": "1;block/chest/open", "13;block.chorus_flower.death": "1;block/chorus_flower/death1", "14;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "15;block.cloth.break": "1;dig/cloth1", "16;block.cloth.fall": "1;step/cloth1", "17;block.cloth.hit": "1;step/cloth1", "18;block.cloth.place": "1;dig/cloth1", "19;block.cloth.step": "1;step/cloth1", "20;block.comparator.click": "1;random/click", "21;block.dispenser.dispense": "1;random/click", "22;block.dispenser.fail": "1;random/click", "23;block.dispenser.launch": "1;random/bow", "24;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "25;block.end_gateway.spawn": "1;random/explode1", "26;block.enderchest.close": "1;block/enderchest/close", "27;block.enderchest.open": "1;block/enderchest/open", "28;block.fence_gate.close": "1;block/fence_gate/close1", "29;block.fence_gate.open": "1;block/fence_gate/open1", "30;block.fire.ambient": "1;fire/fire", "31;block.fire.extinguish": "1;random/fizz", "32;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "33;block.glass.break": "1;random/glass1", "34;block.glass.fall": "1;step/stone1", "35;block.glass.hit": "1;step/stone1", "36;block.glass.place": "1;dig/stone1", "37;block.glass.step": "1;step/stone1", "38;block.grass.break": "1;dig/grass1", "39;block.grass.fall": "1;step/grass1", "40;block.grass.hit": "1;step/grass1", "41;block.grass.place": "1;dig/grass1", "42;block.grass.step": "1;step/grass1", "43;block.gravel.break": "1;dig/gravel1", "44;block.gravel.fall": "1;step/gravel1", "45;block.gravel.hit": "1;step/gravel1", "46;block.gravel.place": "1;dig/gravel1", "47;block.gravel.step": "1;step/gravel1", "48;block.iron_door.close": "1;block/iron_door/close1", "49;block.iron_door.open": "1;block/iron_door/open1", "50;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "51;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "52;block.ladder.break": "1;dig/wood1", "53;block.ladder.fall": "1;step/ladder1", "54;block.ladder.hit": "1;step/ladder1", "55;block.ladder.place": "1;dig/wood1", "56;block.ladder.step": "1;step/ladder1", "57;block.lava.ambient": "1;liquid/lava", "58;block.lava.extinguish": "1;random/fizz", "59;block.lava.pop": "1;liquid/lavapop", "60;block.lever.click": "1;random/click", "61;block.metal.break": "1;dig/stone1", "62;block.metal.fall": "1;step/stone1", "63;block.metal.hit": "1;step/stone1", "64;block.metal.place": "1;dig/stone1", "65;block.metal.step": "1;step/stone1", "66;block.metal_pressureplate.click_off": "1;random/click", "67;block.metal_pressureplate.click_on": "1;random/click", "68;block.note.basedrum": "1;note/bd", "69;block.note.bass": "1;note/bassattack", "70;block.note.harp": "1;note/harp", "71;block.note.hat": "1;note/hat", "72;block.note.pling": "1;note/pling", "73;block.note.snare": "1;note/snare", "74;block.piston.contract": "1;tile/piston/in", "75;block.piston.extend": "1;tile/piston/out", "76;block.portal.ambient": "1;portal/portal", "77;block.portal.travel": "1;portal/travel", "78;block.portal.trigger": "1;portal/trigger", "79;block.redstone_torch.burnout": "1;random/fizz", "80;block.sand.break": "1;dig/sand1", "81;block.sand.fall": "1;step/sand1", "82;block.sand.hit": "1;step/sand1", "83;block.sand.place": "1;dig/sand1", "84;block.sand.step": "1;step/sand1", "85;block.shulker_box.close": "1;block/shulker_box/close", "86;block.shulker_box.open": "1;block/shulker_box/open", "87;block.slime.break": "1;mob/slime/big1", "88;block.slime.fall": "1;mob/slime/small1", "89;block.slime.hit": "1;mob/slime/small1", "90;block.slime.place": "1;mob/slime/big1", "91;block.slime.step": "1;mob/slime/small1", "92;block.snow.break": "1;dig/snow1", "93;block.snow.fall": "1;step/snow1", "94;block.snow.hit": "1;step/snow1", "95;block.snow.place": "1;dig/snow1", "96;block.snow.step": "1;step/snow1", "97;block.stone.break": "1;dig/stone1", "98;block.stone.fall": "1;step/stone1", "99;block.stone.hit": "1;step/stone1", "100;block.stone.place": "1;dig/stone1", "101;block.stone.step": "1;step/stone1", "102;block.stone_button.click_off": "1;random/click", "103;block.stone_button.click_on": "1;random/click", "104;block.stone_pressureplate.click_off": "1;random/click", "105;block.stone_pressureplate.click_on": "1;random/click", "106;block.tripwire.attach": "1;random/click", "107;block.tripwire.click_off": "1;random/click", "108;block.tripwire.click_on": "1;random/click", "109;block.tripwire.detach": "1;random/bowhit1", "110;block.water.ambient": "1;liquid/water", "111;block.waterlily.place": "1;block/waterlily/place1", "112;block.wood.break": "1;dig/wood1", "113;block.wood.fall": "1;step/wood1", "114;block.wood.hit": "1;step/wood1", "115;block.wood.place": "1;dig/wood1", "116;block.wood.step": "1;step/wood1", "117;block.wood_button.click_off": "1;random/wood_click", "118;block.wood_button.click_on": "1;random/wood_click", "119;block.wood_pressureplate.click_off": "1;random/click", "120;block.wood_pressureplate.click_on": "1;random/click", "121;block.wooden_door.close": "1;block/wooden_door/close", "122;block.wooden_door.open": "1;block/wooden_door/open", "123;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "124;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "125;enchant.thorns.hit": "1;enchant/thorns/hit1", "126;entity.armorstand.break": "1;entity/armorstand/break1", "127;entity.armorstand.fall": "1;dig/wood1", "128;entity.armorstand.hit": "1;entity/armorstand/hit1", "129;entity.armorstand.place": "1;dig/stone1", "130;entity.arrow.hit": "1;random/bowhit1", "131;entity.arrow.hit_player": "1;random/successful_hit", "132;entity.arrow.shoot": "1;random/bow", "133;entity.bat.ambient": "1;mob/bat/idle1", "134;entity.bat.death": "1;mob/bat/death", "135;entity.bat.hurt": "1;mob/bat/hurt1", "136;entity.bat.loop": "1;mob/bat/loop", "137;entity.bat.takeoff": "1;mob/bat/takeoff", "138;entity.blaze.ambient": "1;mob/blaze/breathe1", "139;entity.blaze.burn": "1;fire/fire", "140;entity.blaze.death": "1;mob/blaze/death", "141;entity.blaze.hurt": "1;mob/blaze/hit1", "142;entity.blaze.shoot": "1;mob/ghast/fireball4", "143;entity.bobber.splash": "1;random/splash", "144;entity.bobber.throw": "1;random/bow", "145;entity.cat.ambient": "1;mob/cat/meow1", "146;entity.cat.death": "1;mob/cat/hitt1", "147;entity.cat.hiss": "1;mob/cat/hiss1", "148;entity.cat.hurt": "1;mob/cat/hitt1", "149;entity.cat.purr": "1;mob/cat/purr1", "150;entity.cat.purreow": "1;mob/cat/purreow1", "151;entity.chicken.ambient": "1;mob/chicken/say1", "152;entity.chicken.death": "1;mob/chicken/hurt1", "153;entity.chicken.egg": "1;mob/chicken/plop", "154;entity.chicken.hurt": "1;mob/chicken/hurt1", "155;entity.chicken.step": "1;mob/chicken/step1", "156;entity.cow.ambient": "1;mob/cow/say1", "157;entity.cow.death": "1;mob/cow/hurt1", "158;entity.cow.hurt": "1;mob/cow/hurt1", "159;entity.cow.milk": "1;entity/cow/milk1", "160;entity.cow.step": "1;mob/cow/step1", "161;entity.creeper.death": "1;mob/creeper/death", "162;entity.creeper.hurt": "1;mob/creeper/say1", "163;entity.creeper.primed": "1;random/fuse", "164;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "165;entity.donkey.angry": "1;mob/horse/donkey/angry1", "166;entity.donkey.chest": "1;mob/chicken/plop", "167;entity.donkey.death": "1;mob/horse/donkey/death", "168;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "169;entity.egg.throw": "1;random/bow", "170;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "171;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "172;entity.elder_guardian.curse": "1;mob/guardian/curse", "173;entity.elder_guardian.death": "1;mob/guardian/elder_death", "174;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "176;entity.elder_guardian.flop": "1;mob/guardian/flop1", "175;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "177;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "178;entity.enderdragon.ambient": "1;mob/enderdragon/growl1", "179;entity.enderdragon.death": "1;mob/enderdragon/end", "180;entity.enderdragon.flap": "1;mob/enderdragon/wings1", "181;entity.enderdragon.growl": "1;mob/enderdragon/growl1", "182;entity.enderdragon.hurt": "1;mob/enderdragon/hit1", "183;entity.enderdragon.shoot": "1;mob/ghast/fireball4", "184;entity.enderdragon_fireball.explode": "1;random/explode1", "185;entity.endereye.launch": "1;random/bow", "186;entity.endermen.ambient": "1;mob/endermen/idle1", "187;entity.endermen.death": "1;mob/endermen/death", "188;entity.endermen.hurt": "1;mob/endermen/hit1", "189;entity.endermen.scream": "1;mob/endermen/scream1", "190;entity.endermen.stare": "1;mob/endermen/stare", "191;entity.endermen.teleport": "1;mob/endermen/portal", "192;entity.endermite.ambient": "1;mob/silverfish/say1", "193;entity.endermite.death": "1;mob/silverfish/kill", "194;entity.endermite.hurt": "1;mob/silverfish/hit1", "195;entity.endermite.step": "1;mob/silverfish/step1", "196;entity.enderpearl.throw": "1;random/bow", "197;entity.evocation_fangs.attack": "1;mob/evocation_illager/fangs", "198;entity.evocation_illager.ambient": "1;mob/evocation_illager/idle1", "199;entity.evocation_illager.cast_spell": "1;mob/evocation_illager/cast1", "200;entity.evocation_illager.death": "1;mob/evocation_illager/death1", "201;entity.evocation_illager.hurt": "1;mob/evocation_illager/hurt1", "202;entity.evocation_illager.prepare_attack": "1;mob/evocation_illager/prepare_attack1", "203;entity.evocation_illager.prepare_summon": "1;mob/evocation_illager/prepare_summon", "204;entity.evocation_illager.prepare_wololo": "1;mob/evocation_illager/prepare_wololo", "205;entity.experience_bottle.throw": "1;random/bow", "206;entity.experience_orb.pickup": "1;random/orb", "207;entity.firework.blast": "1;fireworks/blast1", "208;entity.firework.blast_far": "1;fireworks/blast_far1", "209;entity.firework.large_blast": "1;fireworks/largeblast1", "210;entity.firework.large_blast_far": "1;fireworks/largeblast_far1", "211;entity.firework.launch": "1;fireworks/launch1", "212;entity.firework.shoot": "1;random/bow", "213;entity.firework.twinkle": "1;fireworks/twinkle1", "214;entity.firework.twinkle_far": "1;fireworks/twinkle_far1", "215;entity.generic.big_fall": "1;damage/fallbig", "216;entity.generic.burn": "1;random/fizz", "217;entity.generic.death": "1;damage/hit1", "218;entity.generic.drink": "1;random/drink", "219;entity.generic.eat": "1;random/eat1", "220;entity.generic.explode": "1;random/explode1", "221;entity.generic.extinguish_fire": "1;random/fizz", "222;entity.generic.hurt": "1;damage/hit1", "223;entity.generic.small_fall": "1;damage/fallsmall", "224;entity.generic.splash": "1;liquid/splash", "225;entity.generic.swim": "1;liquid/swim1", "226;entity.ghast.ambient": "1;mob/ghast/moan1", "227;entity.ghast.death": "1;mob/ghast/death", "228;entity.ghast.hurt": "1;mob/ghast/scream1", "229;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "230;entity.ghast.shoot": "1;mob/ghast/fireball4", "231;entity.ghast.warn": "1;mob/ghast/charge", "232;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "233;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "234;entity.guardian.attack": "1;mob/guardian/attack_loop", "235;entity.guardian.death": "1;mob/guardian/guardian_death", "236;entity.guardian.death_land": "1;mob/guardian/land_death", "237;entity.guardian.flop": "1;mob/guardian/flop1", "238;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "239;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "240;entity.horse.ambient": "1;mob/horse/idle1", "241;entity.horse.angry": "1;mob/horse/angry1", "242;entity.horse.armor": "1;mob/horse/armor", "243;entity.horse.breathe": "1;mob/horse/breathe1", "244;entity.horse.death": "1;mob/horse/death", "245;entity.horse.eat": "1;entity/horse/eat1", "246;entity.horse.gallop": "1;mob/horse/gallop1", "247;entity.horse.hurt": "1;mob/horse/hit1", "248;entity.horse.jump": "1;mob/horse/jump", "249;entity.horse.land": "1;mob/horse/land", "250;entity.horse.saddle": "1;mob/horse/leather", "251;entity.horse.step": "1;mob/horse/soft1", "252;entity.horse.step_wood": "1;mob/horse/wood1", "253;entity.hostile.big_fall": "1;damage/fallbig", "254;entity.hostile.death": "1;damage/hit1", "255;entity.hostile.hurt": "1;damage/hit1", "256;entity.hostile.small_fall": "1;damage/fallsmall", "257;entity.hostile.splash": "1;liquid/splash", "258;entity.hostile.swim": "1;liquid/swim1", "259;entity.husk.ambient": "1;mob/husk/idle1", "260;entity.husk.death": "1;mob/husk/death1", "261;entity.husk.hurt": "1;mob/husk/hurt1", "262;entity.husk.step": "1;mob/husk/step1", "263;entity.irongolem.attack": "1;mob/irongolem/throw", "264;entity.irongolem.death": "1;mob/irongolem/death", "265;entity.irongolem.hurt": "1;mob/irongolem/hit1", "266;entity.irongolem.step": "1;mob/irongolem/walk1", "267;entity.item.break": "1;random/break", "268;entity.item.pickup": "1;random/pop", "269;entity.itemframe.add_item": "1;entity/itemframe/add_item1", "270;entity.itemframe.break": "1;entity/itemframe/break1", "271;entity.itemframe.place": "1;entity/itemframe/place1", "272;entity.itemframe.remove_item": "1;entity/itemframe/remove_item1", "273;entity.itemframe.rotate_item": "1;entity/itemframe/rotate_item1", "274;entity.leashknot.break": "1;entity/leashknot/break1", "275;entity.leashknot.place": "1;entity/leashknot/place1", "276;entity.lightning.impact": "1;random/explode1", "277;entity.lightning.thunder": "1;ambient/weather/thunder1", "278;entity.lingeringpotion.throw": "1;random/bow", "279;entity.llama.ambient": "1;mob/llama/idle1", "280;entity.llama.angry": "1;mob/llama/angry1", "281;entity.llama.chest": "1;mob/chicken/plop", "282;entity.llama.death": "1;mob/llama/death1", "283;entity.llama.eat": "1;mob/llama/eat1", "284;entity.llama.hurt": "1;mob/llama/hurt1", "285;entity.llama.spit": "1;mob/llama/spit1", "286;entity.llama.step": "1;mob/llama/step1", "287;entity.llama.swag": "1;mob/llama/swag", "288;entity.magmacube.death": "1;mob/slime/big1", "289;entity.magmacube.hurt": "1;mob/slime/big1", "290;entity.magmacube.jump": "1;mob/magmacube/jump1", "291;entity.magmacube.squish": "1;mob/magmacube/big1", "292;entity.minecart.inside": "1;minecart/inside", "293;entity.minecart.riding": "1;minecart/base", "294;entity.mooshroom.shear": "1;mob/sheep/shear", "295;entity.mule.ambient": "1;mob/horse/donkey/idle1", "296;entity.mule.chest": "1;mob/chicken/plop", "297;entity.mule.death": "1;mob/horse/donkey/death", "298;entity.mule.hurt": "1;mob/horse/donkey/hit1", "299;entity.painting.break": "1;entity/painting/break1", "300;entity.painting.place": "1;entity/painting/place1", "301;entity.pig.ambient": "1;mob/pig/say1", "302;entity.pig.death": "1;mob/pig/death", "303;entity.pig.hurt": "1;mob/pig/say1", "304;entity.pig.saddle": "1;mob/horse/leather", "305;entity.pig.step": "1;mob/pig/step1", "306;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "307;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "308;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "309;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "310;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "311;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "312;entity.player.big_fall": "1;damage/fallbig", "313;entity.player.breath": "1;random/breath", "314;entity.player.burp": "1;random/burp", "315;entity.player.death": "1;damage/hit1", "316;entity.player.hurt": "1;damage/hit1", "317;entity.player.levelup": "1;random/levelup", "318;entity.player.small_fall": "1;damage/fallsmall", "319;entity.player.splash": "1;liquid/splash", "320;entity.player.swim": "1;liquid/swim1", "321;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "322;entity.polar_bear.baby_ambient": "1;mob/polarbear_baby/idle1", "323;entity.polar_bear.death": "1;mob/polarbear/death1", "324;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "325;entity.polar_bear.step": "1;mob/polarbear/step1", "326;entity.polar_bear.warning": "1;mob/polarbear/warning3", "327;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "328;entity.rabbit.attack": "1;entity/rabbit/attack1", "329;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "330;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "331;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "332;entity.sheep.ambient": "1;mob/sheep/say1", "333;entity.sheep.death": "1;mob/sheep/say1", "334;entity.sheep.hurt": "1;mob/sheep/say1", "335;entity.sheep.shear": "1;mob/sheep/shear", "336;entity.sheep.step": "1;mob/sheep/step1", "337;entity.shulker.ambient": "1;entity/shulker/ambient1", "338;entity.shulker.close": "1;entity/shulker/close1", "339;entity.shulker.death": "1;entity/shulker/death1", "340;entity.shulker.hurt": "1;entity/shulker/hurt1", "341;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "342;entity.shulker.open": "1;entity/shulker/open1", "343;entity.shulker.shoot": "1;entity/shulker/shoot1", "344;entity.shulker.teleport": "1;mob/endermen/portal", "345;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "346;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "347;entity.silverfish.ambient": "1;mob/silverfish/say1", "348;entity.silverfish.death": "1;mob/silverfish/kill", "349;entity.silverfish.hurt": "1;mob/silverfish/hit1", "350;entity.silverfish.step": "1;mob/silverfish/step1", "351;entity.skeleton.ambient": "1;mob/skeleton/say1", "352;entity.skeleton.death": "1;mob/skeleton/death", "353;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "354;entity.skeleton.shoot": "1;random/bow", "355;entity.skeleton.step": "1;mob/skeleton/step1", "356;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "357;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "358;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "359;entity.slime.attack": "1;mob/slime/attack1", "360;entity.slime.death": "1;mob/slime/big1", "361;entity.slime.hurt": "1;mob/slime/big1", "362;entity.slime.jump": "1;mob/slime/big1", "363;entity.slime.squish": "1;mob/slime/big1", "364;entity.small_magmacube.death": "1;mob/slime/small1", "365;entity.small_magmacube.hurt": "1;mob/slime/small1", "366;entity.small_magmacube.squish": "1;mob/magmacube/small1", "367;entity.small_slime.death": "1;mob/slime/small1", "368;entity.small_slime.hurt": "1;mob/slime/small1", "371;entity.snowball.throw": "1;random/bow", "373;entity.snowman.death": "1;entity/snowman/death1", "374;entity.snowman.hurt": "1;entity/snowman/hurt1", "375;entity.snowman.shoot": "1;random/bow", "376;entity.spider.ambient": "1;mob/spider/say1", "377;entity.spider.death": "1;mob/spider/death", "378;entity.spider.hurt": "1;mob/spider/say1", "379;entity.spider.step": "1;mob/spider/step1", "380;entity.splash_potion.break": "1;random/glass1", "381;entity.splash_potion.throw": "1;random/bow", "382;entity.squid.ambient": "1;entity/squid/ambient1", "383;entity.squid.death": "1;entity/squid/death1", "384;entity.squid.hurt": "1;entity/squid/hurt1", "385;entity.stray.ambient": "1;mob/stray/idle1", "386;entity.stray.death": "1;mob/stray/death1", "387;entity.stray.hurt": "1;mob/stray/hurt1", "388;entity.stray.step": "1;mob/stray/step1", "389;entity.tnt.primed": "1;random/fuse", "390;entity.vex.ambient": "1;mob/vex/idle1", "391;entity.vex.charge": "1;mob/vex/charge1", "392;entity.vex.death": "1;mob/vex/death1", "393;entity.vex.hurt": "1;mob/vex/hurt1", "394;entity.villager.ambient": "1;mob/villager/idle1", "395;entity.villager.death": "1;mob/villager/death", "396;entity.villager.hurt": "1;mob/villager/hit1", "397;entity.villager.no": "1;mob/villager/no1", "398;entity.villager.trading": "1;mob/villager/haggle1", "399;entity.villager.yes": "1;mob/villager/yes1", "400;entity.vindication_illager.ambient": "1;mob/vindication_illager/idle1", "401;entity.vindication_illager.death": "1;mob/vindication_illager/death1", "402;entity.vindication_illager.hurt": "1;mob/vindication_illager/hurt1", "403;entity.witch.ambient": "1;entity/witch/ambient5", "404;entity.witch.death": "1;entity/witch/death1", "405;entity.witch.drink": "1;entity/witch/drink1", "406;entity.witch.hurt": "1;entity/witch/hurt1", "407;entity.witch.throw": "1;entity/witch/throw1", "408;entity.wither.ambient": "1;mob/wither/idle1", "409;entity.wither.break_block": "1;mob/zombie/woodbreak", "410;entity.wither.death": "1;mob/wither/death", "411;entity.wither.hurt": "1;mob/wither/hurt1", "412;entity.wither.shoot": "1;mob/wither/shoot", "413;entity.wither.spawn": "1;mob/wither/spawn", "414;entity.wither_skeleton.ambient": "1;mob/wither_skeleton/idle1", "415;entity.wither_skeleton.death": "1;mob/wither_skeleton/death1", "416;entity.wither_skeleton.hurt": "1;mob/wither_skeleton/hurt1", "417;entity.wither_skeleton.step": "1;mob/wither_skeleton/step1", "418;entity.wolf.ambient": "1;mob/wolf/bark1", "419;entity.wolf.death": "1;mob/wolf/death", "420;entity.wolf.growl": "1;mob/wolf/growl1", "421;entity.wolf.howl": "1;mob/wolf/howl1", "422;entity.wolf.hurt": "1;mob/wolf/hurt1", "423;entity.wolf.pant": "1;mob/wolf/panting", "424;entity.wolf.shake": "1;mob/wolf/shake", "425;entity.wolf.step": "1;mob/wolf/step1", "426;entity.wolf.whine": "1;mob/wolf/whine", "427;entity.zombie.ambient": "1;mob/zombie/say1", "428;entity.zombie.attack_door_wood": "1;mob/zombie/wood1", "429;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "430;entity.zombie.break_door_wood": "1;mob/zombie/woodbreak", "431;entity.zombie.death": "1;mob/zombie/death", "432;entity.zombie.hurt": "1;mob/zombie/hurt1", "433;entity.zombie.infect": "1;mob/zombie/infect", "434;entity.zombie.step": "1;mob/zombie/step1", "435;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "436;entity.zombie_horse.death": "1;mob/horse/zombie/death", "437;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "438;entity.zombie_pig.ambient": "1;mob/zombiepig/zpig1", "439;entity.zombie_pig.angry": "1;mob/zombiepig/zpigangry1", "440;entity.zombie_pig.death": "1;mob/zombiepig/zpigdeath", "441;entity.zombie_pig.hurt": "1;mob/zombiepig/zpighurt1", "442;entity.zombie_villager.ambient": "1;mob/zombie_villager/say1", "443;entity.zombie_villager.converted": "1;mob/zombie/unfect", "444;entity.zombie_villager.cure": "1;mob/zombie/remedy", "445;entity.zombie_villager.death": "1;mob/zombie_villager/death", "446;entity.zombie_villager.hurt": "1;mob/zombie_villager/hurt1", "447;entity.zombie_villager.step": "1;mob/zombie/step1", "448;item.armor.equip_chain": "1;item/armor/equip_chain1", "449;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "450;item.armor.equip_elytra": "1;item/armor/equip_leather1", "451;item.armor.equip_generic": "1;item/armor/equip_generic1", "452;item.armor.equip_gold": "1;item/armor/equip_gold1", "453;item.armor.equip_iron": "1;item/armor/equip_iron1", "454;item.armor.equip_leather": "1;item/armor/equip_leather1", "455;item.bottle.empty": "1;item/bottle/empty1", "456;item.bottle.fill": "1;item/bottle/fill1", "457;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "458;item.bucket.empty": "1;item/bucket/empty1", "459;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "460;item.bucket.fill": "1;item/bucket/fill1", "461;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "462;item.chorus_fruit.teleport": "1;mob/endermen/portal", "463;item.elytra.flying": "0.6;item/elytra/elytra_loop", "464;item.firecharge.use": "1;mob/ghast/fireball4", "465;item.flintandsteel.use": "1;fire/ignite", "466;item.hoe.till": "1;item/hoe/till1", "467;item.shield.block": "1;item/shield/block1", "468;item.shield.break": "1;random/break", "469;item.shovel.flatten": "1;item/shovel/flatten1", "470;item.totem.use": "1;item/totem/use_totem", "471;music.creative": "1;music.game", "472;music.credits": "1;music/game/end/credits", "473;music.dragon": "1;music/game/end/boss", "474;music.end": "1;music/game/end/end", "475;music.game": "1;music/game/calm1", "476;music.menu": "1;music/menu/menu1", "477;music.nether": "1;music/game/nether/nether1", "478;record.11": "1;records/11", "479;record.13": "1;records/13", "480;record.blocks": "1;records/blocks", "481;record.cat": "1;records/cat", "482;record.chirp": "1;records/chirp", "483;record.far": "1;records/far", "484;record.mall": "1;records/mall", "485;record.mellohi": "1;records/mellohi", "486;record.stal": "1;records/stal", "487;record.strad": "1;records/strad", "488;record.wait": "1;records/wait", "489;record.ward": "1;records/ward", "490;ui.button.click": "1;random/click", "491;weather.rain": "1;ambient/weather/rain1", "492;weather.rain.above": "1;ambient/weather/rain1" }, "1.10.2": { "0;ambient.cave": "1;ambient/cave/cave1", "1;block.anvil.break": "1;dig/stone1", "2;block.anvil.destroy": "1;random/anvil_break", "3;block.anvil.fall": "1;step/stone1", "4;block.anvil.hit": "1;step/stone1", "5;block.anvil.land": "1;random/anvil_land", "6;block.anvil.place": "1;random/anvil_land", "7;block.anvil.step": "1;step/stone1", "8;block.anvil.use": "1;random/anvil_use", "9;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "10;block.chest.close": "1;block/chest/close", "11;block.chest.locked": "1;block/wooden_door/close", "12;block.chest.open": "1;block/chest/open", "13;block.chorus_flower.death": "1;block/chorus_flower/death1", "14;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "15;block.cloth.break": "1;dig/cloth1", "16;block.cloth.fall": "1;step/cloth1", "17;block.cloth.hit": "1;step/cloth1", "18;block.cloth.place": "1;dig/cloth1", "19;block.cloth.step": "1;step/cloth1", "20;block.comparator.click": "1;random/click", "21;block.dispenser.dispense": "1;random/click", "22;block.dispenser.fail": "1;random/click", "23;block.dispenser.launch": "1;random/bow", "24;block.enchantment_table.use": "1;block/enchantment_table/enchant1", "25;block.end_gateway.spawn": "1;random/explode1", "26;block.enderchest.close": "1;block/enderchest/close", "27;block.enderchest.open": "1;block/enderchest/open", "28;block.fence_gate.close": "1;block/fence_gate/close1", "29;block.fence_gate.open": "1;block/fence_gate/open1", "30;block.fire.ambient": "1;fire/fire", "31;block.fire.extinguish": "1;random/fizz", "32;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "33;block.glass.break": "1;random/glass1", "34;block.glass.fall": "1;step/stone1", "35;block.glass.hit": "1;step/stone1", "36;block.glass.place": "1;dig/stone1", "37;block.glass.step": "1;step/stone1", "38;block.grass.break": "1;dig/grass1", "39;block.grass.fall": "1;step/grass1", "40;block.grass.hit": "1;step/grass1", "41;block.grass.place": "1;dig/grass1", "42;block.grass.step": "1;step/grass1", "43;block.gravel.break": "1;dig/gravel1", "44;block.gravel.fall": "1;step/gravel1", "45;block.gravel.hit": "1;step/gravel1", "46;block.gravel.place": "1;dig/gravel1", "47;block.gravel.step": "1;step/gravel1", "48;block.iron_door.close": "1;block/iron_door/close1", "49;block.iron_door.open": "1;block/iron_door/open1", "50;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "51;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "52;block.ladder.break": "1;dig/wood1", "53;block.ladder.fall": "1;step/ladder1", "54;block.ladder.hit": "1;step/ladder1", "55;block.ladder.place": "1;dig/wood1", "56;block.ladder.step": "1;step/ladder1", "57;block.lava.ambient": "1;liquid/lava", "58;block.lava.extinguish": "1;random/fizz", "59;block.lava.pop": "1;liquid/lavapop", "60;block.lever.click": "1;random/click", "61;block.metal.break": "1;dig/stone1", "62;block.metal.fall": "1;step/stone1", "63;block.metal.hit": "1;step/stone1", "64;block.metal.place": "1;dig/stone1", "65;block.metal.step": "1;step/stone1", "66;block.metal_pressureplate.click_off": "1;random/click", "67;block.metal_pressureplate.click_on": "1;random/click", "68;block.note.basedrum": "1;note/bd", "69;block.note.bass": "1;note/bassattack", "70;block.note.harp": "1;note/harp", "71;block.note.hat": "1;note/hat", "72;block.note.pling": "1;note/pling", "73;block.note.snare": "1;note/snare", "74;block.piston.contract": "1;tile/piston/in", "75;block.piston.extend": "1;tile/piston/out", "76;block.portal.ambient": "1;portal/portal", "77;block.portal.travel": "1;portal/travel", "78;block.portal.trigger": "1;portal/trigger", "79;block.redstone_torch.burnout": "1;random/fizz", "80;block.sand.break": "1;dig/sand1", "81;block.sand.fall": "1;step/sand1", "82;block.sand.hit": "1;step/sand1", "83;block.sand.place": "1;dig/sand1", "84;block.sand.step": "1;step/sand1", "85;block.slime.break": "1;mob/slime/big1", "86;block.slime.fall": "1;mob/slime/small1", "87;block.slime.hit": "1;mob/slime/small1", "88;block.slime.place": "1;mob/slime/big1", "89;block.slime.step": "1;mob/slime/small1", "90;block.snow.break": "1;dig/snow1", "91;block.snow.fall": "1;step/snow1", "92;block.snow.hit": "1;step/snow1", "93;block.snow.place": "1;dig/snow1", "94;block.snow.step": "1;step/snow1", "95;block.stone.break": "1;dig/stone1", "96;block.stone.fall": "1;step/stone1", "97;block.stone.hit": "1;step/stone1", "98;block.stone.place": "1;dig/stone1", "99;block.stone.step": "1;step/stone1", "100;block.stone_button.click_off": "1;random/click", "101;block.stone_button.click_on": "1;random/click", "102;block.stone_pressureplate.click_off": "1;random/click", "103;block.stone_pressureplate.click_on": "1;random/click", "104;block.tripwire.attach": "1;random/click", "105;block.tripwire.click_off": "1;random/click", "106;block.tripwire.click_on": "1;random/click", "107;block.tripwire.detach": "1;random/bowhit1", "108;block.water.ambient": "1;liquid/water", "109;block.waterlily.place": "1;block/waterlily/place1", "110;block.wood.break": "1;dig/wood1", "111;block.wood.fall": "1;step/wood1", "112;block.wood.hit": "1;step/wood1", "113;block.wood.place": "1;dig/wood1", "114;block.wood.step": "1;step/wood1", "115;block.wood_button.click_off": "1;random/wood_click", "116;block.wood_button.click_on": "1;random/wood_click", "117;block.wood_pressureplate.click_off": "1;random/click", "118;block.wood_pressureplate.click_on": "1;random/click", "119;block.wooden_door.close": "1;block/wooden_door/close", "120;block.wooden_door.open": "1;block/wooden_door/open", "121;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "122;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "123;enchant.thorns.hit": "1;enchant/thorns/hit1", "124;entity.armorstand.break": "1;entity/armorstand/break1", "125;entity.armorstand.fall": "1;dig/wood1", "126;entity.armorstand.hit": "1;entity/armorstand/hit1", "127;entity.armorstand.place": "1;dig/stone1", "128;entity.arrow.hit": "1;random/bowhit1", "129;entity.arrow.hit_player": "1;random/successful_hit", "130;entity.arrow.shoot": "1;random/bow", "131;entity.bat.ambient": "1;mob/bat/idle1", "132;entity.bat.death": "1;mob/bat/death", "133;entity.bat.hurt": "1;mob/bat/hurt1", "134;entity.bat.loop": "1;mob/bat/loop", "135;entity.bat.takeoff": "1;mob/bat/takeoff", "136;entity.blaze.ambient": "1;mob/blaze/breathe1", "137;entity.blaze.burn": "1;fire/fire", "138;entity.blaze.death": "1;mob/blaze/death", "139;entity.blaze.hurt": "1;mob/blaze/hit1", "140;entity.blaze.shoot": "1;mob/ghast/fireball4", "141;entity.bobber.splash": "1;random/splash", "142;entity.bobber.throw": "1;random/bow", "143;entity.cat.ambient": "1;mob/cat/meow1", "144;entity.cat.death": "1;mob/cat/hitt1", "145;entity.cat.hiss": "1;mob/cat/hiss1", "146;entity.cat.hurt": "1;mob/cat/hitt1", "147;entity.cat.purr": "1;mob/cat/purr1", "148;entity.cat.purreow": "1;mob/cat/purreow1", "149;entity.chicken.ambient": "1;mob/chicken/say1", "150;entity.chicken.death": "1;mob/chicken/hurt1", "151;entity.chicken.egg": "1;mob/chicken/plop", "152;entity.chicken.hurt": "1;mob/chicken/hurt1", "153;entity.chicken.step": "1;mob/chicken/step1", "154;entity.cow.ambient": "1;mob/cow/say1", "155;entity.cow.death": "1;mob/cow/hurt1", "156;entity.cow.hurt": "1;mob/cow/hurt1", "157;entity.cow.milk": "1;entity/cow/milk1", "158;entity.cow.step": "1;mob/cow/step1", "159;entity.creeper.death": "1;mob/creeper/death", "160;entity.creeper.hurt": "1;mob/creeper/say1", "161;entity.creeper.primed": "1;random/fuse", "162;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "163;entity.donkey.angry": "1;mob/horse/donkey/angry1", "164;entity.donkey.chest": "1;mob/chicken/plop", "165;entity.donkey.death": "1;mob/horse/donkey/death", "166;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "167;entity.egg.throw": "1;random/bow", "168;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "169;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "170;entity.elder_guardian.curse": "1;mob/guardian/curse", "171;entity.elder_guardian.death": "1;mob/guardian/elder_death", "172;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "173;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "174;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "175;entity.enderdragon.ambient": "1;mob/enderdragon/growl1", "176;entity.enderdragon.death": "1;mob/enderdragon/end", "177;entity.enderdragon.flap": "1;mob/enderdragon/wings1", "178;entity.enderdragon.growl": "1;mob/enderdragon/growl1", "179;entity.enderdragon.hurt": "1;mob/enderdragon/hit1", "180;entity.enderdragon.shoot": "1;mob/ghast/fireball4", "181;entity.enderdragon_fireball.explode": "1;random/explode1", "182;entity.endereye.launch": "1;random/bow", "183;entity.endermen.ambient": "1;mob/endermen/idle1", "184;entity.endermen.death": "1;mob/endermen/death", "185;entity.endermen.hurt": "1;mob/endermen/hit1", "186;entity.endermen.scream": "1;mob/endermen/scream1", "187;entity.endermen.stare": "1;mob/endermen/stare", "188;entity.endermen.teleport": "1;mob/endermen/portal", "189;entity.endermite.ambient": "1;mob/silverfish/say1", "190;entity.endermite.death": "1;mob/silverfish/kill", "191;entity.endermite.hurt": "1;mob/silverfish/hit1", "192;entity.endermite.step": "1;mob/silverfish/step1", "193;entity.enderpearl.throw": "1;random/bow", "194;entity.experience_bottle.throw": "1;random/bow", "195;entity.experience_orb.pickup": "1;random/orb", "196;entity.experience_orb.touch": "1;random/orb", "197;entity.firework.blast": "1;fireworks/blast1", "198;entity.firework.blast_far": "1;fireworks/blast_far1", "199;entity.firework.large_blast": "1;fireworks/largeBlast1", "200;entity.firework.large_blast_far": "1;fireworks/largeBlast_far1", "201;entity.firework.launch": "1;fireworks/launch1", "202;entity.firework.shoot": "1;random/bow", "203;entity.firework.twinkle": "1;fireworks/twinkle1", "204;entity.firework.twinkle_far": "1;fireworks/twinkle_far1", "205;entity.generic.big_fall": "1;damage/fallbig", "206;entity.generic.burn": "1;random/fizz", "207;entity.generic.death": "1;damage/hit1", "208;entity.generic.drink": "1;random/drink", "209;entity.generic.eat": "1;random/eat1", "210;entity.generic.explode": "1;random/explode1", "211;entity.generic.extinguish_fire": "1;random/fizz", "212;entity.generic.hurt": "1;damage/hit1", "213;entity.generic.small_fall": "1;damage/fallsmall", "214;entity.generic.splash": "1;liquid/splash", "215;entity.generic.swim": "1;liquid/swim1", "216;entity.ghast.ambient": "1;mob/ghast/moan1", "217;entity.ghast.death": "1;mob/ghast/death", "218;entity.ghast.hurt": "1;mob/ghast/scream1", "219;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "220;entity.ghast.shoot": "1;mob/ghast/fireball4", "221;entity.ghast.warn": "1;mob/ghast/charge", "222;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "223;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "224;entity.guardian.attack": "1;mob/guardian/attack_loop", "225;entity.guardian.death": "1;mob/guardian/guardian_death", "226;entity.guardian.death_land": "1;mob/guardian/land_death", "227;entity.guardian.flop": "1;mob/guardian/flop1", "228;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "229;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "230;entity.horse.ambient": "1;mob/horse/idle1", "231;entity.horse.angry": "1;mob/horse/angry1", "232;entity.horse.armor": "1;mob/horse/armor", "233;entity.horse.breathe": "1;mob/horse/breathe1", "234;entity.horse.death": "1;mob/horse/death", "235;entity.horse.eat": "1;entity/horse/eat1", "236;entity.horse.gallop": "1;mob/horse/gallop1", "237;entity.horse.hurt": "1;mob/horse/hit1", "238;entity.horse.jump": "1;mob/horse/jump", "239;entity.horse.land": "1;mob/horse/land", "240;entity.horse.saddle": "1;mob/horse/leather", "241;entity.horse.step": "1;mob/horse/soft1", "242;entity.horse.step_wood": "1;mob/horse/wood1", "243;entity.hostile.big_fall": "1;damage/fallbig", "244;entity.hostile.death": "1;damage/hit1", "245;entity.hostile.hurt": "1;damage/hit1", "246;entity.hostile.small_fall": "1;damage/fallsmall", "247;entity.hostile.splash": "1;liquid/splash", "248;entity.hostile.swim": "1;liquid/swim1", "249;entity.husk.ambient": "1;mob/husk/idle1", "250;entity.husk.death": "1;mob/husk/death1", "251;entity.husk.hurt": "1;mob/husk/hurt1", "252;entity.husk.step": "1;mob/husk/step1", "253;entity.irongolem.attack": "1;mob/irongolem/throw", "254;entity.irongolem.death": "1;mob/irongolem/death", "255;entity.irongolem.hurt": "1;mob/irongolem/hit1", "256;entity.irongolem.step": "1;mob/irongolem/walk1", "257;entity.item.break": "1;random/break", "258;entity.item.pickup": "1;random/pop", "259;entity.itemframe.add_item": "1;entity/itemframe/add_item1", "260;entity.itemframe.break": "1;entity/itemframe/break1", "261;entity.itemframe.place": "1;entity/itemframe/place1", "262;entity.itemframe.remove_item": "1;entity/itemframe/remove_item1", "263;entity.itemframe.rotate_item": "1;entity/itemframe/rotate_item1", "264;entity.leashknot.break": "1;entity/leashknot/break1", "265;entity.leashknot.place": "1;entity/leashknot/place1", "266;entity.lightning.impact": "1;random/explode1", "267;entity.lightning.thunder": "1;ambient/weather/thunder1", "268;entity.lingeringpotion.throw": "1;random/bow", "269;entity.magmacube.death": "1;mob/slime/big1", "270;entity.magmacube.hurt": "1;mob/slime/big1", "271;entity.magmacube.jump": "1;mob/magmacube/jump1", "272;entity.magmacube.squish": "1;mob/magmacube/big1", "273;entity.minecart.inside": "1;minecart/inside", "274;entity.minecart.riding": "1;minecart/base", "275;entity.mooshroom.shear": "1;mob/sheep/shear", "276;entity.mule.ambient": "1;mob/horse/donkey/idle1", "277;entity.mule.death": "1;mob/horse/donkey/death", "278;entity.mule.hurt": "1;mob/horse/donkey/hit1", "279;entity.painting.break": "1;entity/painting/break1", "280;entity.painting.place": "1;entity/painting/place1", "281;entity.pig.ambient": "1;mob/pig/say1", "282;entity.pig.death": "1;mob/pig/death", "283;entity.pig.hurt": "1;mob/pig/say1", "284;entity.pig.saddle": "1;mob/horse/leather", "285;entity.pig.step": "1;mob/pig/step1", "286;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "287;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "288;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "289;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "290;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "291;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "292;entity.player.big_fall": "1;damage/fallbig", "293;entity.player.breath": "1;random/breath", "294;entity.player.burp": "1;random/burp", "295;entity.player.death": "1;damage/hit1", "296;entity.player.hurt": "1;damage/hit1", "297;entity.player.levelup": "1;random/levelup", "298;entity.player.small_fall": "1;damage/fallsmall", "299;entity.player.splash": "1;liquid/splash", "300;entity.player.swim": "1;liquid/swim1", "301;entity.polar_bear.ambient": "1;mob/polarbear/idle1", "302;entity.polar_bear.baby_ambient": "1;mob/polarbear_baby/idle1", "303;entity.polar_bear.death": "1;mob/polarbear/death1", "304;entity.polar_bear.hurt": "1;mob/polarbear/hurt1", "305;entity.polar_bear.step": "1;mob/polarbear/step1", "306;entity.polar_bear.warning": "1;mob/polarbear/warning3", "307;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "308;entity.rabbit.attack": "1;entity/rabbit/attack1", "309;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "310;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "311;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "312;entity.sheep.ambient": "1;mob/sheep/say1", "313;entity.sheep.death": "1;mob/sheep/say1", "314;entity.sheep.hurt": "1;mob/sheep/say1", "315;entity.sheep.shear": "1;mob/sheep/shear", "316;entity.sheep.step": "1;mob/sheep/step1", "317;entity.shulker.ambient": "1;entity/shulker/ambient1", "318;entity.shulker.close": "1;entity/shulker/close1", "319;entity.shulker.death": "1;entity/shulker/death1", "320;entity.shulker.hurt": "1;entity/shulker/hurt1", "321;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "322;entity.shulker.open": "1;entity/shulker/open1", "323;entity.shulker.shoot": "1;entity/shulker/shoot1", "324;entity.shulker.teleport": "1;mob/endermen/portal", "325;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "326;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "327;entity.silverfish.ambient": "1;mob/silverfish/say1", "328;entity.silverfish.death": "1;mob/silverfish/kill", "329;entity.silverfish.hurt": "1;mob/silverfish/hit1", "330;entity.silverfish.step": "1;mob/silverfish/step1", "331;entity.skeleton.ambient": "1;mob/skeleton/say1", "332;entity.skeleton.death": "1;mob/skeleton/death", "333;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "334;entity.skeleton.shoot": "1;random/bow", "335;entity.skeleton.step": "1;mob/skeleton/step1", "336;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "337;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "338;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "339;entity.slime.attack": "1;mob/slime/attack1", "340;entity.slime.death": "1;mob/slime/big1", "341;entity.slime.hurt": "1;mob/slime/big1", "342;entity.slime.jump": "1;mob/slime/big1", "343;entity.slime.squish": "1;mob/slime/big1", "344;entity.small_magmacube.death": "1;mob/slime/small1", "345;entity.small_magmacube.hurt": "1;mob/slime/small1", "346;entity.small_magmacube.squish": "1;mob/magmacube/small1", "347;entity.small_slime.death": "1;mob/slime/small1", "348;entity.small_slime.hurt": "1;mob/slime/small1", "351;entity.snowball.throw": "1;random/bow", "353;entity.snowman.death": "1;entity/snowman/death1", "354;entity.snowman.hurt": "1;entity/snowman/hurt1", "355;entity.snowman.shoot": "1;random/bow", "356;entity.spider.ambient": "1;mob/spider/say1", "357;entity.spider.death": "1;mob/spider/death", "358;entity.spider.hurt": "1;mob/spider/say1", "359;entity.spider.step": "1;mob/spider/step1", "360;entity.splash_potion.break": "1;random/glass1", "361;entity.splash_potion.throw": "1;random/bow", "362;entity.squid.ambient": "1;entity/squid/ambient1", "363;entity.squid.death": "1;entity/squid/death1", "364;entity.squid.hurt": "1;entity/squid/hurt1", "365;entity.stray.ambient": "1;mob/stray/idle1", "366;entity.stray.death": "1;mob/stray/death1", "367;entity.stray.hurt": "1;mob/stray/hurt1", "368;entity.stray.step": "1;mob/stray/step1", "369;entity.tnt.primed": "1;random/fuse", "370;entity.villager.ambient": "1;mob/villager/idle1", "371;entity.villager.death": "1;mob/villager/death", "372;entity.villager.hurt": "1;mob/villager/hit1", "373;entity.villager.no": "1;mob/villager/no1", "374;entity.villager.trading": "1;mob/villager/haggle1", "375;entity.villager.yes": "1;mob/villager/yes1", "376;entity.witch.ambient": "1;entity/witch/ambient5", "377;entity.witch.death": "1;entity/witch/death1", "378;entity.witch.drink": "1;entity/witch/drink1", "379;entity.witch.hurt": "1;entity/witch/hurt1", "380;entity.witch.throw": "1;entity/witch/throw1", "381;entity.wither.ambient": "1;mob/wither/idle1", "382;entity.wither.break_block": "1;mob/zombie/woodbreak", "383;entity.wither.death": "1;mob/wither/death", "384;entity.wither.hurt": "1;mob/wither/hurt1", "385;entity.wither.shoot": "1;mob/wither/shoot", "386;entity.wither.spawn": "1;mob/wither/spawn", "387;entity.wither_skeleton.ambient": "1;mob/skeleton/say1", "388;entity.wither_skeleton.death": "1;mob/skeleton/death", "389;entity.wither_skeleton.hurt": "1;mob/skeleton/hurt1", "390;entity.wither_skeleton.step": "1;mob/skeleton/step1", "391;entity.wolf.ambient": "1;mob/wolf/bark1", "392;entity.wolf.death": "1;mob/wolf/death", "393;entity.wolf.growl": "1;mob/wolf/growl1", "394;entity.wolf.howl": "1;mob/wolf/howl1", "395;entity.wolf.hurt": "1;mob/wolf/hurt1", "396;entity.wolf.pant": "1;mob/wolf/panting", "397;entity.wolf.shake": "1;mob/wolf/shake", "398;entity.wolf.step": "1;mob/wolf/step1", "399;entity.wolf.whine": "1;mob/wolf/whine", "400;entity.zombie.ambient": "1;mob/zombie/say1", "401;entity.zombie.attack_door_wood": "1;mob/zombie/wood1", "402;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "403;entity.zombie.break_door_wood": "1;mob/zombie/woodbreak", "404;entity.zombie.death": "1;mob/zombie/death", "405;entity.zombie.hurt": "1;mob/zombie/hurt1", "406;entity.zombie.infect": "1;mob/zombie/infect", "407;entity.zombie.step": "1;mob/zombie/step1", "408;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "409;entity.zombie_horse.death": "1;mob/horse/zombie/death", "410;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "411;entity.zombie_pig.ambient": "1;mob/zombiepig/zpig1", "412;entity.zombie_pig.angry": "1;mob/zombiepig/zpigangry1", "413;entity.zombie_pig.death": "1;mob/zombiepig/zpigdeath", "414;entity.zombie_pig.hurt": "1;mob/zombiepig/zpighurt1", "415;entity.zombie_villager.ambient": "1;mob/zombie/say1", "416;entity.zombie_villager.converted": "1;mob/zombie/unfect", "417;entity.zombie_villager.cure": "1;mob/zombie/remedy", "418;entity.zombie_villager.death": "1;mob/zombie/death", "419;entity.zombie_villager.hurt": "1;mob/zombie/hurt1", "420;entity.zombie_villager.step": "1;mob/zombie/step1", "421;item.armor.equip_chain": "1;item/armor/equip_chain1", "422;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "423;item.armor.equip_generic": "1;item/armor/equip_generic1", "424;item.armor.equip_gold": "1;item/armor/equip_gold1", "425;item.armor.equip_iron": "1;item/armor/equip_iron1", "426;item.armor.equip_leather": "1;item/armor/equip_leather1", "427;item.bottle.fill": "1;item/bottle/fill1", "428;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "429;item.bucket.empty": "1;item/bucket/empty1", "430;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "431;item.bucket.fill": "1;item/bucket/fill1", "432;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "433;item.chorus_fruit.teleport": "1;mob/endermen/portal", "434;item.elytra.flying": "0.6;item/elytra/elytra_loop", "435;item.firecharge.use": "1;mob/ghast/fireball4", "436;item.flintandsteel.use": "1;fire/ignite", "437;item.hoe.till": "1;item/hoe/till1", "438;item.shield.block": "1;item/shield/block1", "439;item.shield.break": "1;random/break", "440;item.shovel.flatten": "1;item/shovel/flatten1", "441;music.creative": "1;music.game", "442;music.credits": "1;music/game/end/credits", "443;music.dragon": "1;music/game/end/boss", "444;music.end": "1;music/game/end/end", "445;music.game": "1;music/game/calm1", "446;music.menu": "1;music/menu/menu1", "447;music.nether": "1;music/game/nether/nether1", "448;record.11": "1;records/11", "449;record.13": "1;records/13", "450;record.blocks": "1;records/blocks", "451;record.cat": "1;records/cat", "452;record.chirp": "1;records/chirp", "453;record.far": "1;records/far", "454;record.mall": "1;records/mall", "455;record.mellohi": "1;records/mellohi", "456;record.stal": "1;records/stal", "457;record.strad": "1;records/strad", "458;record.wait": "1;records/wait", "459;record.ward": "1;records/ward", "460;ui.button.click": "1;random/click", "461;weather.rain": "1;ambient/weather/rain1", "462;weather.rain.above": "1;ambient/weather/rain1" }, "1.9.4": { "0;ambient.cave": "1;ambient/cave/cave1", "1;block.anvil.break": "1;dig/stone1", "2;block.anvil.destroy": "1;random/anvil_break", "3;block.anvil.fall": "1;step/stone1", "4;block.anvil.hit": "1;step/stone1", "5;block.anvil.land": "1;random/anvil_land", "6;block.anvil.place": "1;random/anvil_land", "7;block.anvil.step": "1;step/stone1", "8;block.anvil.use": "1;random/anvil_use", "9;block.brewing_stand.brew": "1;block/brewing_stand/brew1", "10;block.chest.close": "1;block/chest/close", "11;block.chest.locked": "1;block/wooden_door/close", "12;block.chest.open": "1;block/chest/open", "13;block.chorus_flower.death": "1;block/chorus_flower/death1", "14;block.chorus_flower.grow": "1;block/chorus_flower/grow1", "15;block.cloth.break": "1;dig/cloth1", "16;block.cloth.fall": "1;step/cloth1", "17;block.cloth.hit": "1;step/cloth1", "18;block.cloth.place": "1;dig/cloth1", "19;block.cloth.step": "1;step/cloth1", "20;block.comparator.click": "1;random/click", "21;block.dispenser.dispense": "1;random/click", "22;block.dispenser.fail": "1;random/click", "23;block.dispenser.launch": "1;random/bow", "24;block.end_gateway.spawn": "1;random/explode1", "25;block.enderchest.close": "1;random/chestclosed", "26;block.enderchest.open": "1;random/chestopen", "27;block.fence_gate.close": "1;block/fence_gate/close1", "28;block.fence_gate.open": "1;block/fence_gate/open1", "29;block.fire.ambient": "1;fire/fire", "30;block.fire.extinguish": "1;random/fizz", "31;block.furnace.fire_crackle": "1;block/furnace/fire_crackle1", "32;block.glass.break": "1;random/glass1", "33;block.glass.fall": "1;step/stone1", "34;block.glass.hit": "1;step/stone1", "35;block.glass.place": "1;dig/stone1", "36;block.glass.step": "1;step/stone1", "37;block.grass.break": "1;dig/grass1", "38;block.grass.fall": "1;step/grass1", "39;block.grass.hit": "1;step/grass1", "40;block.grass.place": "1;dig/grass1", "41;block.grass.step": "1;step/grass1", "42;block.gravel.break": "1;dig/gravel1", "43;block.gravel.fall": "1;step/gravel1", "44;block.gravel.hit": "1;step/gravel1", "45;block.gravel.place": "1;dig/gravel1", "46;block.gravel.step": "1;step/gravel1", "47;block.iron_door.close": "1;block/iron_door/close1", "48;block.iron_door.open": "1;block/iron_door/open1", "49;block.iron_trapdoor.close": "1;block/iron_trapdoor/close1", "50;block.iron_trapdoor.open": "1;block/iron_trapdoor/open1", "51;block.ladder.break": "1;dig/wood1", "52;block.ladder.fall": "1;step/ladder1", "53;block.ladder.hit": "1;step/ladder1", "54;block.ladder.place": "1;dig/wood1", "55;block.ladder.step": "1;step/ladder1", "56;block.lava.ambient": "1;liquid/lava", "57;block.lava.extinguish": "1;random/fizz", "58;block.lava.pop": "1;liquid/lavapop", "59;block.lever.click": "1;random/click", "60;block.metal.break": "1;dig/stone1", "61;block.metal.fall": "1;step/stone1", "62;block.metal.hit": "1;step/stone1", "63;block.metal.place": "1;dig/stone1", "64;block.metal.step": "1;step/stone1", "65;block.metal_pressureplate.click_off": "1;random/click", "66;block.metal_pressureplate.click_on": "1;random/click", "67;block.note.basedrum": "1;note/bd", "68;block.note.bass": "1;note/bassattack", "69;block.note.harp": "1;note/harp", "70;block.note.hat": "1;note/hat", "71;block.note.pling": "1;note/pling", "72;block.note.snare": "1;note/snare", "73;block.piston.contract": "1;tile/piston/in", "74;block.piston.extend": "1;tile/piston/out", "75;block.portal.ambient": "1;portal/portal", "76;block.portal.travel": "1;portal/travel", "77;block.portal.trigger": "1;portal/trigger", "78;block.redstone_torch.burnout": "1;random/fizz", "79;block.sand.break": "1;dig/sand1", "80;block.sand.fall": "1;step/sand1", "81;block.sand.hit": "1;step/sand1", "82;block.sand.place": "1;dig/sand1", "83;block.sand.step": "1;step/sand1", "84;block.slime.break": "1;mob/slime/big1", "85;block.slime.fall": "1;mob/slime/small1", "86;block.slime.hit": "1;mob/slime/small1", "87;block.slime.place": "1;mob/slime/big1", "88;block.slime.step": "1;mob/slime/small1", "89;block.snow.break": "1;dig/snow1", "90;block.snow.fall": "1;step/snow1", "91;block.snow.hit": "1;step/snow1", "92;block.snow.place": "1;dig/snow1", "93;block.snow.step": "1;step/snow1", "94;block.stone.break": "1;dig/stone1", "95;block.stone.fall": "1;step/stone1", "96;block.stone.hit": "1;step/stone1", "97;block.stone.place": "1;dig/stone1", "98;block.stone.step": "1;step/stone1", "99;block.stone_button.click_off": "1;random/click", "100;block.stone_button.click_on": "1;random/click", "101;block.stone_pressureplate.click_off": "1;random/click", "102;block.stone_pressureplate.click_on": "1;random/click", "103;block.tripwire.attach": "1;random/click", "104;block.tripwire.click_off": "1;random/click", "105;block.tripwire.click_on": "1;random/click", "106;block.tripwire.detach": "1;random/bowhit1", "107;block.water.ambient": "1;liquid/water", "108;block.waterlily.place": "1;block/waterlily/place1", "109;block.wood.break": "1;dig/wood1", "110;block.wood.fall": "1;step/wood1", "111;block.wood.hit": "1;step/wood1", "112;block.wood.place": "1;dig/wood1", "113;block.wood.step": "1;step/wood1", "114;block.wood_button.click_off": "1;random/wood_click", "115;block.wood_button.click_on": "1;random/wood_click", "116;block.wood_pressureplate.click_off": "1;random/click", "117;block.wood_pressureplate.click_on": "1;random/click", "118;block.wooden_door.close": "1;block/wooden_door/close", "119;block.wooden_door.open": "1;block/wooden_door/open", "120;block.wooden_trapdoor.close": "1;block/wooden_trapdoor/close1", "121;block.wooden_trapdoor.open": "1;block/wooden_trapdoor/open1", "122;enchant.thorns.hit": "1;enchant/thorns/hit1", "123;entity.armorstand.break": "1;entity/armorstand/break1", "124;entity.armorstand.fall": "1;dig/wood1", "125;entity.armorstand.hit": "1;entity/armorstand/hit1", "126;entity.armorstand.place": "1;dig/stone1", "127;entity.arrow.hit": "1;random/bowhit1", "128;entity.arrow.hit_player": "1;random/successful_hit", "129;entity.arrow.shoot": "1;random/bow", "130;entity.bat.ambient": "1;mob/bat/idle1", "131;entity.bat.death": "1;mob/bat/death", "132;entity.bat.hurt": "1;mob/bat/hurt1", "133;entity.bat.loop": "1;mob/bat/loop", "134;entity.bat.takeoff": "1;mob/bat/takeoff", "135;entity.blaze.ambient": "1;mob/blaze/breathe1", "136;entity.blaze.burn": "1;fire/fire", "137;entity.blaze.death": "1;mob/blaze/death", "138;entity.blaze.hurt": "1;mob/blaze/hit1", "139;entity.blaze.shoot": "1;mob/ghast/fireball4", "140;entity.bobber.splash": "1;random/splash", "141;entity.bobber.throw": "1;random/bow", "142;entity.cat.ambient": "1;mob/cat/meow1", "143;entity.cat.death": "1;mob/cat/hitt1", "144;entity.cat.hiss": "1;mob/cat/hiss1", "145;entity.cat.hurt": "1;mob/cat/hitt1", "146;entity.cat.purr": "1;mob/cat/purr1", "147;entity.cat.purreow": "1;mob/cat/purreow1", "148;entity.chicken.ambient": "1;mob/chicken/say1", "149;entity.chicken.death": "1;mob/chicken/hurt1", "150;entity.chicken.egg": "1;mob/chicken/plop", "151;entity.chicken.hurt": "1;mob/chicken/hurt1", "152;entity.chicken.step": "1;mob/chicken/step1", "153;entity.cow.ambient": "1;mob/cow/say1", "154;entity.cow.death": "1;mob/cow/hurt1", "155;entity.cow.hurt": "1;mob/cow/hurt1", "156;entity.cow.milk": "1;entity/cow/milk1", "157;entity.cow.step": "1;mob/cow/step1", "158;entity.creeper.death": "1;mob/creeper/death", "159;entity.creeper.hurt": "1;mob/creeper/say1", "160;entity.creeper.primed": "1;random/fuse", "161;entity.donkey.ambient": "1;mob/horse/donkey/idle1", "162;entity.donkey.angry": "1;mob/horse/donkey/angry1", "163;entity.donkey.chest": "1;mob/chicken/plop", "164;entity.donkey.death": "1;mob/horse/donkey/death", "165;entity.donkey.hurt": "1;mob/horse/donkey/hit1", "166;entity.egg.throw": "1;random/bow", "167;entity.elder_guardian.ambient": "1;mob/guardian/elder_idle1", "168;entity.elder_guardian.ambient_land": "1;mob/guardian/land_idle1", "169;entity.elder_guardian.curse": "1;mob/guardian/curse", "170;entity.elder_guardian.death": "1;mob/guardian/elder_death", "171;entity.elder_guardian.death_land": "1;mob/guardian/land_death", "172;entity.elder_guardian.hurt": "1;mob/guardian/elder_hit1", "173;entity.elder_guardian.hurt_land": "1;mob/guardian/land_hit1", "174;entity.enderdragon.ambient": "1;mob/enderdragon/growl1", "175;entity.enderdragon.death": "1;mob/enderdragon/end", "176;entity.enderdragon.flap": "1;mob/enderdragon/wings1", "177;entity.enderdragon.growl": "1;mob/enderdragon/growl1", "178;entity.enderdragon.hurt": "1;mob/enderdragon/hit1", "179;entity.enderdragon.shoot": "1;mob/ghast/fireball4", "180;entity.enderdragon_fireball.explode": "1;random/explode1", "181;entity.endereye.launch": "1;random/bow", "182;entity.endermen.ambient": "1;mob/endermen/idle1", "183;entity.endermen.death": "1;mob/endermen/death", "184;entity.endermen.hurt": "1;mob/endermen/hit1", "185;entity.endermen.scream": "1;mob/endermen/scream1", "186;entity.endermen.stare": "1;mob/endermen/stare", "187;entity.endermen.teleport": "1;mob/endermen/portal", "188;entity.endermite.ambient": "1;mob/silverfish/say1", "189;entity.endermite.death": "1;mob/silverfish/kill", "190;entity.endermite.hurt": "1;mob/silverfish/hit1", "191;entity.endermite.step": "1;mob/silverfish/step1", "192;entity.enderpearl.throw": "1;random/bow", "193;entity.experience_bottle.throw": "1;random/bow", "194;entity.experience_orb.pickup": "1;random/orb", "195;entity.experience_orb.touch": "1;random/orb", "196;entity.firework.blast": "1;fireworks/blast1", "197;entity.firework.blast_far": "1;fireworks/blast_far1", "198;entity.firework.large_blast": "1;fireworks/largeBlast1", "199;entity.firework.large_blast_far": "1;fireworks/largeBlast_far1", "200;entity.firework.launch": "1;fireworks/launch1", "201;entity.firework.shoot": "1;random/bow", "202;entity.firework.twinkle": "1;fireworks/twinkle1", "203;entity.firework.twinkle_far": "1;fireworks/twinkle_far1", "204;entity.generic.big_fall": "1;damage/fallbig", "205;entity.generic.burn": "1;random/fizz", "206;entity.generic.death": "1;damage/hit1", "207;entity.generic.drink": "1;random/drink", "208;entity.generic.eat": "1;random/eat1", "209;entity.generic.explode": "1;random/explode1", "210;entity.generic.extinguish_fire": "1;random/fizz", "211;entity.generic.hurt": "1;damage/hit1", "212;entity.generic.small_fall": "1;damage/fallsmall", "213;entity.generic.splash": "1;liquid/splash", "214;entity.generic.swim": "1;liquid/swim1", "215;entity.ghast.ambient": "1;mob/ghast/moan1", "216;entity.ghast.death": "1;mob/ghast/death", "217;entity.ghast.hurt": "1;mob/ghast/scream1", "218;entity.ghast.scream": "1;mob/ghast/affectionate_scream", "219;entity.ghast.shoot": "1;mob/ghast/fireball4", "220;entity.ghast.warn": "1;mob/ghast/charge", "221;entity.guardian.ambient": "0.1;entity/guardian/ambient1", "222;entity.guardian.ambient_land": "1;mob/guardian/land_idle1", "223;entity.guardian.attack": "1;mob/guardian/attack_loop", "224;entity.guardian.death": "1;mob/guardian/guardian_death", "225;entity.guardian.death_land": "1;mob/guardian/land_death", "226;entity.guardian.flop": "1;mob/guardian/flop1", "227;entity.guardian.hurt": "1;mob/guardian/guardian_hit1", "228;entity.guardian.hurt_land": "1;mob/guardian/land_hit1", "229;entity.horse.ambient": "1;mob/horse/idle1", "230;entity.horse.angry": "1;mob/horse/angry1", "231;entity.horse.armor": "1;mob/horse/armor", "232;entity.horse.breathe": "1;mob/horse/breathe1", "233;entity.horse.death": "1;mob/horse/death", "234;entity.horse.eat": "1;entity/horse/eat1", "235;entity.horse.gallop": "1;mob/horse/gallop1", "236;entity.horse.hurt": "1;mob/horse/hit1", "237;entity.horse.jump": "1;mob/horse/jump", "238;entity.horse.land": "1;mob/horse/land", "239;entity.horse.saddle": "1;mob/horse/leather", "240;entity.horse.step": "1;mob/horse/soft1", "241;entity.horse.step_wood": "1;mob/horse/wood1", "242;entity.hostile.big_fall": "1;damage/fallbig", "243;entity.hostile.death": "1;damage/hit1", "244;entity.hostile.hurt": "1;damage/hit1", "245;entity.hostile.small_fall": "1;damage/fallsmall", "246;entity.hostile.splash": "1;liquid/splash", "247;entity.hostile.swim": "1;liquid/swim1", "248;entity.irongolem.attack": "1;mob/irongolem/throw", "249;entity.irongolem.death": "1;mob/irongolem/death", "250;entity.irongolem.hurt": "1;mob/irongolem/hit1", "251;entity.irongolem.step": "1;mob/irongolem/walk1", "252;entity.item.break": "1;random/break", "253;entity.item.pickup": "1;random/pop", "254;entity.itemframe.add_item": "1;entity/itemframe/add_item1", "255;entity.itemframe.break": "1;entity/itemframe/break1", "256;entity.itemframe.place": "1;entity/itemframe/place1", "257;entity.itemframe.remove_item": "1;entity/itemframe/remove_item1", "258;entity.itemframe.rotate_item": "1;entity/itemframe/rotate_item1", "259;entity.leashknot.break": "1;entity/leashknot/break1", "260;entity.leashknot.place": "1;entity/leashknot/place1", "261;entity.lightning.impact": "1;random/explode1", "262;entity.lightning.thunder": "1;ambient/weather/thunder1", "263;entity.lingeringpotion.throw": "1;random/bow", "264;entity.magmacube.death": "1;mob/slime/big1", "265;entity.magmacube.hurt": "1;mob/slime/big1", "266;entity.magmacube.jump": "1;mob/magmacube/jump1", "267;entity.magmacube.squish": "1;mob/magmacube/big1", "268;entity.minecart.inside": "1;minecart/inside", "269;entity.minecart.riding": "1;minecart/base", "270;entity.mooshroom.shear": "1;mob/sheep/shear", "271;entity.mule.ambient": "1;mob/horse/donkey/idle1", "272;entity.mule.death": "1;mob/horse/donkey/death", "273;entity.mule.hurt": "1;mob/horse/donkey/hit1", "274;entity.painting.break": "1;entity/painting/break1", "275;entity.painting.place": "1;entity/painting/place1", "276;entity.pig.ambient": "1;mob/pig/say1", "277;entity.pig.death": "1;mob/pig/death", "278;entity.pig.hurt": "1;mob/pig/say1", "279;entity.pig.saddle": "1;mob/horse/leather", "280;entity.pig.step": "1;mob/pig/step1", "281;entity.player.attack.crit": "0.7;entity/player/attack/crit1", "282;entity.player.attack.knockback": "0.7;entity/player/attack/knockback1", "283;entity.player.attack.nodamage": "0.7;entity/player/attack/weak1", "284;entity.player.attack.strong": "0.6;entity/player/attack/strong1", "285;entity.player.attack.sweep": "0.7;entity/player/attack/sweep1", "286;entity.player.attack.weak": "0.7;entity/player/attack/weak1", "287;entity.player.big_fall": "1;damage/fallbig", "288;entity.player.breath": "1;random/breath", "289;entity.player.burp": "1;random/burp", "290;entity.player.death": "1;damage/hit1", "291;entity.player.hurt": "1;damage/hit1", "292;entity.player.levelup": "1;random/levelup", "293;entity.player.small_fall": "1;damage/fallsmall", "294;entity.player.splash": "1;liquid/splash", "295;entity.player.swim": "1;liquid/swim1", "296;entity.rabbit.ambient": "0.25;mob/rabbit/idle1", "297;entity.rabbit.attack": "1;entity/rabbit/attack1", "298;entity.rabbit.death": "0.5;mob/rabbit/bunnymurder", "299;entity.rabbit.hurt": "0.5;mob/rabbit/hurt1", "300;entity.rabbit.jump": "0.1;mob/rabbit/hop1", "301;entity.sheep.ambient": "1;mob/sheep/say1", "302;entity.sheep.death": "1;mob/sheep/say1", "303;entity.sheep.hurt": "1;mob/sheep/say1", "304;entity.sheep.shear": "1;mob/sheep/shear", "305;entity.sheep.step": "1;mob/sheep/step1", "306;entity.shulker.ambient": "1;entity/shulker/ambient1", "307;entity.shulker.close": "1;entity/shulker/close1", "308;entity.shulker.death": "1;entity/shulker/death1", "309;entity.shulker.hurt": "1;entity/shulker/hurt1", "310;entity.shulker.hurt_closed": "1;entity/shulker/hurt_closed1", "311;entity.shulker.open": "1;entity/shulker/open1", "312;entity.shulker.shoot": "1;entity/shulker/shoot1", "313;entity.shulker.teleport": "1;mob/endermen/portal", "314;entity.shulker_bullet.hit": "1;entity/shulker_bullet/hit1", "315;entity.shulker_bullet.hurt": "1;entity/shulker_bullet/hit1", "316;entity.silverfish.ambient": "1;mob/silverfish/say1", "317;entity.silverfish.death": "1;mob/silverfish/kill", "318;entity.silverfish.hurt": "1;mob/silverfish/hit1", "319;entity.silverfish.step": "1;mob/silverfish/step1", "320;entity.skeleton.ambient": "1;mob/skeleton/say1", "321;entity.skeleton.death": "1;mob/skeleton/death", "322;entity.skeleton.hurt": "1;mob/skeleton/hurt1", "323;entity.skeleton.shoot": "1;random/bow", "324;entity.skeleton.step": "1;mob/skeleton/step1", "325;entity.skeleton_horse.ambient": "1;mob/horse/skeleton/idle1", "326;entity.skeleton_horse.death": "1;mob/horse/skeleton/death", "327;entity.skeleton_horse.hurt": "1;mob/horse/skeleton/hit1", "328;entity.slime.attack": "1;mob/slime/attack1", "329;entity.slime.death": "1;mob/slime/big1", "330;entity.slime.hurt": "1;mob/slime/big1", "331;entity.slime.jump": "1;mob/slime/big1", "332;entity.slime.squish": "1;mob/slime/big1", "333;entity.small_magmacube.death": "1;mob/slime/small1", "334;entity.small_magmacube.hurt": "1;mob/slime/small1", "335;entity.small_magmacube.squish": "1;mob/magmacube/small1", "336;entity.small_slime.death": "1;mob/slime/small1", "337;entity.small_slime.hurt": "1;mob/slime/small1", "340;entity.snowball.throw": "1;random/bow", "342;entity.snowman.death": "1;entity/snowman/death1", "343;entity.snowman.hurt": "1;entity/snowman/hurt1", "344;entity.snowman.shoot": "1;random/bow", "345;entity.spider.ambient": "1;mob/spider/say1", "346;entity.spider.death": "1;mob/spider/death", "347;entity.spider.hurt": "1;mob/spider/say1", "348;entity.spider.step": "1;mob/spider/step1", "349;entity.splash_potion.break": "1;random/glass1", "350;entity.splash_potion.throw": "1;random/bow", "351;entity.squid.ambient": "1;entity/squid/ambient1", "352;entity.squid.death": "1;entity/squid/death1", "353;entity.squid.hurt": "1;entity/squid/hurt1", "354;entity.tnt.primed": "1;random/fuse", "355;entity.villager.ambient": "1;mob/villager/idle1", "356;entity.villager.death": "1;mob/villager/death", "357;entity.villager.hurt": "1;mob/villager/hit1", "358;entity.villager.no": "1;mob/villager/no1", "359;entity.villager.trading": "1;mob/villager/haggle1", "360;entity.villager.yes": "1;mob/villager/yes1", "361;entity.witch.ambient": "1;entity/witch/ambient5", "362;entity.witch.death": "1;entity/witch/death1", "363;entity.witch.drink": "1;entity/witch/drink1", "364;entity.witch.hurt": "1;entity/witch/hurt1", "365;entity.witch.throw": "1;entity/witch/throw1", "366;entity.wither.ambient": "1;mob/wither/idle1", "367;entity.wither.break_block": "1;mob/zombie/woodbreak", "368;entity.wither.death": "1;mob/wither/death", "369;entity.wither.hurt": "1;mob/wither/hurt1", "370;entity.wither.shoot": "1;mob/wither/shoot", "371;entity.wither.spawn": "1;mob/wither/spawn", "372;entity.wolf.ambient": "1;mob/wolf/bark1", "373;entity.wolf.death": "1;mob/wolf/death", "374;entity.wolf.growl": "1;mob/wolf/growl1", "375;entity.wolf.howl": "1;mob/wolf/howl1", "376;entity.wolf.hurt": "1;mob/wolf/hurt1", "377;entity.wolf.pant": "1;mob/wolf/panting", "378;entity.wolf.shake": "1;mob/wolf/shake", "379;entity.wolf.step": "1;mob/wolf/step1", "380;entity.wolf.whine": "1;mob/wolf/whine", "381;entity.zombie.ambient": "1;mob/zombie/say1", "382;entity.zombie.attack_door_wood": "1;mob/zombie/wood1", "383;entity.zombie.attack_iron_door": "1;mob/zombie/metal1", "384;entity.zombie.break_door_wood": "1;mob/zombie/woodbreak", "385;entity.zombie.death": "1;mob/zombie/death", "386;entity.zombie.hurt": "1;mob/zombie/hurt1", "387;entity.zombie.infect": "1;mob/zombie/infect", "388;entity.zombie.step": "1;mob/zombie/step1", "389;entity.zombie_horse.ambient": "1;mob/horse/zombie/idle1", "390;entity.zombie_horse.death": "1;mob/horse/zombie/death", "391;entity.zombie_horse.hurt": "1;mob/horse/zombie/hit1", "392;entity.zombie_pig.ambient": "1;mob/zombiepig/zpig1", "393;entity.zombie_pig.angry": "1;mob/zombiepig/zpigangry1", "394;entity.zombie_pig.death": "1;mob/zombiepig/zpigdeath", "395;entity.zombie_pig.hurt": "1;mob/zombiepig/zpighurt1", "396;entity.zombie_villager.ambient": "1;mob/zombie/say1", "397;entity.zombie_villager.converted": "1;mob/zombie/unfect", "398;entity.zombie_villager.cure": "1;mob/zombie/remedy", "399;entity.zombie_villager.death": "1;mob/zombie/death", "400;entity.zombie_villager.hurt": "1;mob/zombie/hurt1", "401;entity.zombie_villager.step": "1;mob/zombie/step1", "402;item.armor.equip_chain": "1;item/armor/equip_chain1", "403;item.armor.equip_diamond": "1;item/armor/equip_diamond1", "404;item.armor.equip_generic": "1;item/armor/equip_generic1", "405;item.armor.equip_gold": "1;item/armor/equip_gold1", "406;item.armor.equip_iron": "1;item/armor/equip_iron1", "407;item.armor.equip_leather": "1;item/armor/equip_leather1", "408;item.bottle.fill": "1;item/bottle/fill1", "409;item.bottle.fill_dragonbreath": "1;item/bottle/fill_dragonbreath1", "410;item.bucket.empty": "1;item/bucket/empty1", "411;item.bucket.empty_lava": "1;item/bucket/empty_lava1", "412;item.bucket.fill": "1;item/bucket/fill1", "413;item.bucket.fill_lava": "1;item/bucket/fill_lava1", "414;item.chorus_fruit.teleport": "1;mob/endermen/portal", "415;item.elytra.flying": "0.6;item/elytra/elytra_loop", "416;item.firecharge.use": "1;mob/ghast/fireball4", "417;item.flintandsteel.use": "1;fire/ignite", "418;item.hoe.till": "1;item/hoe/till1", "419;item.shield.block": "1;item/shield/block1", "420;item.shield.break": "1;random/break", "421;item.shovel.flatten": "1;item/shovel/flatten1", "422;music.creative": "1;music.game", "423;music.credits": "1;music/game/end/credits", "424;music.dragon": "1;music/game/end/boss", "425;music.end": "1;music/game/end/end", "426;music.game": "1;music/game/calm1", "427;music.menu": "1;music/menu/menu1", "428;music.nether": "1;music/game/nether/nether1", "429;record.11": "1;records/11", "430;record.13": "1;records/13", "431;record.blocks": "1;records/blocks", "432;record.cat": "1;records/cat", "433;record.chirp": "1;records/chirp", "434;record.far": "1;records/far", "435;record.mall": "1;records/mall", "436;record.mellohi": "1;records/mellohi", "437;record.stal": "1;records/stal", "438;record.strad": "1;records/strad", "439;record.wait": "1;records/wait", "440;record.ward": "1;records/ward", "441;ui.button.click": "1;random/click", "442;weather.rain": "1;ambient/weather/rain1", "443;weather.rain.above": "1;ambient/weather/rain1" }, "1.8.9": {} }; - window.allSoundsVersionedMap = { "1.19.2": ["block/amethyst/resonate1", "block/amethyst/resonate2", "block/amethyst/resonate3", "block/amethyst/resonate4", "block/bamboo_wood_button/bamboo_wood_button", "block/bamboo_wood_door/toggle1", "block/bamboo_wood_door/toggle2", "block/bamboo_wood_door/toggle3", "block/bamboo_wood_door/toggle4", "block/bamboo_wood_fence/toggle1", "block/bamboo_wood_fence/toggle2", "block/bamboo_wood_fence/toggle3", "block/bamboo_wood_fence/toggle4", "block/bamboo_wood_hanging_sign/break1", "block/bamboo_wood_hanging_sign/break2", "block/bamboo_wood_hanging_sign/break3", "block/bamboo_wood_hanging_sign/break4", "block/bamboo_wood_hanging_sign/step1", "block/bamboo_wood_hanging_sign/step2", "block/bamboo_wood_hanging_sign/step3", "block/bamboo_wood_hanging_sign/step4", "block/bamboo_wood_trapdoor/toggle1", "block/bamboo_wood_trapdoor/toggle2", "block/bamboo_wood_trapdoor/toggle3", "block/bamboo_wood_trapdoor/toggle4", "block/bamboo_wood/break1", "block/bamboo_wood/break2", "block/bamboo_wood/break3", "block/bamboo_wood/break4", "block/bamboo_wood/break5", "block/bamboo_wood/step1", "block/bamboo_wood/step2", "block/bamboo_wood/step3", "block/bamboo_wood/step4", "block/bamboo_wood/step5", "block/bamboo_wood/step6", "block/cherry_leaves/break1", "block/cherry_leaves/break2", "block/cherry_leaves/break3", "block/cherry_leaves/break4", "block/cherry_leaves/break5", "block/cherry_leaves/step1", "block/cherry_leaves/step2", "block/cherry_leaves/step3", "block/cherry_leaves/step4", "block/cherry_leaves/step5", "block/cherry_wood_hanging_sign/break1", "block/cherry_wood_hanging_sign/break2", "block/cherry_wood_hanging_sign/break3", "block/cherry_wood_hanging_sign/break4", "block/cherry_wood_hanging_sign/step1", "block/cherry_wood_hanging_sign/step2", "block/cherry_wood_hanging_sign/step3", "block/cherry_wood_hanging_sign/step4", "block/cherry_wood/break1", "block/cherry_wood/break2", "block/cherry_wood/break3", "block/cherry_wood/break4", "block/cherry_wood/break5", "block/cherry_wood/step1", "block/cherry_wood/step2", "block/cherry_wood/step3", "block/cherry_wood/step4", "block/cherry_wood/step5", "block/cherry_wood/step6", "block/cherrywood_button/cherrywood_click", "block/cherrywood_door/toggle1", "block/cherrywood_door/toggle2", "block/cherrywood_door/toggle3", "block/cherrywood_door/toggle4", "block/cherrywood_fence_gate/toggle1", "block/cherrywood_fence_gate/toggle2", "block/cherrywood_fence_gate/toggle3", "block/cherrywood_trapdoor/toggle1", "block/cherrywood_trapdoor/toggle2", "block/cherrywood_trapdoor/toggle3", "block/chest/close_locked", "block/chest/close1", "block/chest/open_locked", "block/chiseled_bookshelf/break1", "block/chiseled_bookshelf/break2", "block/chiseled_bookshelf/break3", "block/chiseled_bookshelf/break4", "block/chiseled_bookshelf/break5", "block/chiseled_bookshelf/break6", "block/chiseled_bookshelf/insert_enchanted1", "block/chiseled_bookshelf/insert_enchanted2", "block/chiseled_bookshelf/insert_enchanted3", "block/chiseled_bookshelf/insert_enchanted4", "block/chiseled_bookshelf/insert1", "block/chiseled_bookshelf/insert2", "block/chiseled_bookshelf/insert3", "block/chiseled_bookshelf/insert4", "block/chiseled_bookshelf/pickup_enchanted1", "block/chiseled_bookshelf/pickup_enchanted2", "block/chiseled_bookshelf/pickup_enchanted3", "block/chiseled_bookshelf/pickup1", "block/chiseled_bookshelf/pickup2", "block/chiseled_bookshelf/pickup3", "block/chiseled_bookshelf/step1", "block/chiseled_bookshelf/step2", "block/chiseled_bookshelf/step3", "block/chiseled_bookshelf/step4", "block/chiseled_bookshelf/step5", "block/decorated_pot/break1", "block/decorated_pot/break2", "block/decorated_pot/break3", "block/decorated_pot/break4", "block/decorated_pot/shatter1", "block/decorated_pot/shatter2", "block/decorated_pot/shatter3", "block/decorated_pot/shatter4", "block/decorated_pot/shatter5", "block/decorated_pot/shatter6", "block/decorated_pot/step1", "block/decorated_pot/step2", "block/decorated_pot/step3", "block/decorated_pot/step4", "block/decorated_pot/step5", "block/hanging_sign/break1", "block/hanging_sign/break2", "block/hanging_sign/break3", "block/hanging_sign/break4", "block/hanging_sign/step1", "block/hanging_sign/step2", "block/hanging_sign/step3", "block/hanging_sign/step4", "block/nether_wood_button/nether_wood_button", "block/nether_wood_door/toggle1", "block/nether_wood_door/toggle2", "block/nether_wood_door/toggle3", "block/nether_wood_door/toggle4", "block/nether_wood_fence/toggle1", "block/nether_wood_fence/toggle2", "block/nether_wood_fence/toggle3", "block/nether_wood_fence/toggle4", "block/nether_wood_hanging_sign/break1", "block/nether_wood_hanging_sign/break2", "block/nether_wood_hanging_sign/break3", "block/nether_wood_hanging_sign/break4", "block/nether_wood_hanging_sign/step1", "block/nether_wood_hanging_sign/step2", "block/nether_wood_hanging_sign/step3", "block/nether_wood_hanging_sign/step4", "block/nether_wood_trapdoor/toggle1", "block/nether_wood_trapdoor/toggle2", "block/nether_wood_trapdoor/toggle3", "block/nether_wood_trapdoor/toggle4", "block/nether_wood/break1", "block/nether_wood/break2", "block/nether_wood/break3", "block/nether_wood/break4", "block/nether_wood/step1", "block/nether_wood/step2", "block/nether_wood/step3", "block/nether_wood/step4", "block/nether_wood/step5", "block/sign/waxed_interact_fail1", "block/sign/waxed_interact_fail2", "block/sign/waxed_interact_fail3", "block/suspicious_gravel/break1", "block/suspicious_gravel/break2", "block/suspicious_gravel/break3", "block/suspicious_gravel/break4", "block/suspicious_gravel/break5", "block/suspicious_gravel/break6", "block/suspicious_gravel/place1", "block/suspicious_gravel/place2", "block/suspicious_gravel/place3", "block/suspicious_gravel/place4", "block/suspicious_gravel/step1", "block/suspicious_gravel/step2", "block/suspicious_gravel/step3", "block/suspicious_gravel/step4", "block/suspicious_sand/break1", "block/suspicious_sand/break2", "block/suspicious_sand/break3", "block/suspicious_sand/break4", "block/suspicious_sand/break5", "block/suspicious_sand/break6", "block/suspicious_sand/place1", "block/suspicious_sand/place2", "block/suspicious_sand/place3", "block/suspicious_sand/place4", "block/suspicious_sand/place5", "block/suspicious_sand/step1", "block/suspicious_sand/step2", "block/suspicious_sand/step3", "block/suspicious_sand/step4", "block/suspicious_sand/step5", "block/wooden_door/close1", "block/wooden_door/open1", "item/brush/brush_sand_complete1", "item/brush/brush_sand_complete2", "item/brush/brush_sand_complete3", "item/brush/brush_sand_complete4", "item/brush/brush_sand_complete5", "item/brush/brushing_generic1", "item/brush/brushing_generic2", "item/brush/brushing_generic3", "item/brush/brushing_generic4", "item/brush/brushing_gravel_complete1", "item/brush/brushing_gravel_complete2", "item/brush/brushing_gravel_complete3", "item/brush/brushing_gravel_complete4", "item/brush/brushing_gravel1", "item/brush/brushing_gravel2", "item/brush/brushing_gravel3", "item/brush/brushing_gravel4", "item/brush/brushing_sand1", "item/brush/brushing_sand2", "item/brush/brushing_sand3", "item/brush/brushing_sand4", "mob/camel/ambient1", "mob/camel/ambient2", "mob/camel/ambient3", "mob/camel/ambient4", "mob/camel/ambient5", "mob/camel/ambient6", "mob/camel/ambient7", "mob/camel/ambient8", "mob/camel/dash_ready1", "mob/camel/dash1", "mob/camel/dash2", "mob/camel/dash3", "mob/camel/dash4", "mob/camel/dash5", "mob/camel/dash6", "mob/camel/death1", "mob/camel/death2", "mob/camel/eat1", "mob/camel/eat2", "mob/camel/eat3", "mob/camel/eat4", "mob/camel/eat5", "mob/camel/hurt1", "mob/camel/hurt2", "mob/camel/hurt3", "mob/camel/hurt4", "mob/camel/sit1", "mob/camel/sit2", "mob/camel/sit3", "mob/camel/sit4", "mob/camel/stand1", "mob/camel/stand2", "mob/camel/stand3", "mob/camel/stand4", "mob/camel/stand5", "mob/camel/step_sand1", "mob/camel/step_sand2", "mob/camel/step_sand3", "mob/camel/step_sand4", "mob/camel/step_sand5", "mob/camel/step_sand6", "mob/camel/step1", "mob/camel/step2", "mob/camel/step3", "mob/camel/step4", "mob/camel/step5", "mob/camel/step6", "mob/sniffer/death1", "mob/sniffer/death2", "mob/sniffer/digging_stop1", "mob/sniffer/digging_stop2", "mob/sniffer/eat1", "mob/sniffer/eat2", "mob/sniffer/eat3", "mob/sniffer/happy1", "mob/sniffer/happy2", "mob/sniffer/happy3", "mob/sniffer/happy4", "mob/sniffer/happy5", "mob/sniffer/hurt1", "mob/sniffer/hurt2", "mob/sniffer/hurt3", "mob/sniffer/idle1", "mob/sniffer/idle10", "mob/sniffer/idle11", "mob/sniffer/idle2", "mob/sniffer/idle3", "mob/sniffer/idle4", "mob/sniffer/idle5", "mob/sniffer/idle6", "mob/sniffer/idle7", "mob/sniffer/idle8", "mob/sniffer/idle9", "mob/sniffer/longdig1", "mob/sniffer/longdig2", "mob/sniffer/scenting1", "mob/sniffer/scenting2", "mob/sniffer/scenting3", "mob/sniffer/searching1", "mob/sniffer/searching2", "mob/sniffer/searching3", "mob/sniffer/searching4", "mob/sniffer/searching5", "mob/sniffer/searching6", "mob/sniffer/sniffing1", "mob/sniffer/sniffing2", "mob/sniffer/sniffing3", "mob/sniffer/step1", "mob/sniffer/step2", "mob/sniffer/step3", "mob/sniffer/step4", "mob/sniffer/step5", "mob/sniffer/step6", "music/game/a_familiar_room", "music/game/bromeliad", "music/game/crescent_dunes", "music/game/echo_in_the_wind", "records/relic", "block/wooden_door/close2", "block/wooden_door/close3", "block/wooden_door/open2"], "1.18.2": ["block/froglight/break1", "block/froglight/break2", "block/froglight/break3", "block/froglight/break4", "block/froglight/step1", "block/froglight/step2", "block/froglight/step3", "block/froglight/step4", "block/froglight/step5", "block/froglight/step6", "block/frogspawn/break1", "block/frogspawn/break2", "block/frogspawn/break3", "block/frogspawn/break4", "block/frogspawn/hatch1", "block/frogspawn/hatch2", "block/frogspawn/hatch3", "block/frogspawn/hatch4", "block/frogspawn/hatch5", "block/frogspawn/step1", "block/frogspawn/step2", "block/frogspawn/step3", "block/frogspawn/step4", "block/frogspawn/step5", "block/frogspawn/step6", "block/mangrove_roots/break1", "block/mangrove_roots/break2", "block/mangrove_roots/break3", "block/mangrove_roots/break4", "block/mangrove_roots/break5", "block/mangrove_roots/break6", "block/mangrove_roots/step1", "block/mangrove_roots/step2", "block/mangrove_roots/step3", "block/mangrove_roots/step4", "block/mangrove_roots/step5", "block/mangrove_roots/step6", "block/mud_bricks/break1", "block/mud_bricks/break2", "block/mud_bricks/break3", "block/mud_bricks/break4", "block/mud_bricks/break5", "block/mud_bricks/break6", "block/mud_bricks/step1", "block/mud_bricks/step2", "block/mud_bricks/step3", "block/mud_bricks/step4", "block/mud_bricks/step5", "block/mud_bricks/step6", "block/mud/break1", "block/mud/break2", "block/mud/break3", "block/mud/break4", "block/mud/break5", "block/mud/break6", "block/mud/step1", "block/mud/step2", "block/mud/step3", "block/mud/step4", "block/mud/step5", "block/mud/step6", "block/muddy_mangrove_roots/break1", "block/muddy_mangrove_roots/break2", "block/muddy_mangrove_roots/break3", "block/muddy_mangrove_roots/break4", "block/muddy_mangrove_roots/break5", "block/muddy_mangrove_roots/break6", "block/muddy_mangrove_roots/step1", "block/muddy_mangrove_roots/step2", "block/muddy_mangrove_roots/step3", "block/muddy_mangrove_roots/step4", "block/muddy_mangrove_roots/step5", "block/muddy_mangrove_roots/step6", "block/packed_mud/break1", "block/packed_mud/break2", "block/packed_mud/break3", "block/packed_mud/break4", "block/packed_mud/break5", "block/packed_mud/break6", "block/packed_mud/step1", "block/packed_mud/step2", "block/packed_mud/step3", "block/packed_mud/step4", "block/packed_mud/step5", "block/packed_mud/step6", "block/sculk_catalyst/break1", "block/sculk_catalyst/break10", "block/sculk_catalyst/break2", "block/sculk_catalyst/break3", "block/sculk_catalyst/break4", "block/sculk_catalyst/break5", "block/sculk_catalyst/break6", "block/sculk_catalyst/break7", "block/sculk_catalyst/break8", "block/sculk_catalyst/break9", "block/sculk_catalyst/place1", "block/sculk_catalyst/place2", "block/sculk_catalyst/place3", "block/sculk_catalyst/place4", "block/sculk_catalyst/place5", "block/sculk_catalyst/step1", "block/sculk_catalyst/step2", "block/sculk_catalyst/step3", "block/sculk_catalyst/step4", "block/sculk_catalyst/step5", "block/sculk_catalyst/step6", "block/sculk_shrieker/break1", "block/sculk_shrieker/break2", "block/sculk_shrieker/break3", "block/sculk_shrieker/break4", "block/sculk_shrieker/break5", "block/sculk_shrieker/break6", "block/sculk_shrieker/place1", "block/sculk_shrieker/place2", "block/sculk_shrieker/place3", "block/sculk_shrieker/place4", "block/sculk_shrieker/place5", "block/sculk_shrieker/shriek1", "block/sculk_shrieker/shriek2", "block/sculk_shrieker/shriek3", "block/sculk_shrieker/shriek4", "block/sculk_shrieker/shriek5", "block/sculk_vein/break1", "block/sculk_vein/break2", "block/sculk_vein/break3", "block/sculk_vein/break4", "block/sculk_vein/break5", "block/sculk/break1", "block/sculk/break10", "block/sculk/break11", "block/sculk/break12", "block/sculk/break13", "block/sculk/break14", "block/sculk/break2", "block/sculk/break3", "block/sculk/break4", "block/sculk/break5", "block/sculk/break6", "block/sculk/break7", "block/sculk/break8", "block/sculk/break9", "block/sculk/charge1", "block/sculk/charge2", "block/sculk/charge3", "block/sculk/charge4", "block/sculk/charge5", "block/sculk/place1", "block/sculk/place2", "block/sculk/place3", "block/sculk/place4", "block/sculk/place5", "block/sculk/spread1", "block/sculk/spread2", "block/sculk/spread3", "block/sculk/spread4", "block/sculk/spread5", "item/goat_horn/call0", "item/goat_horn/call1", "item/goat_horn/call2", "item/goat_horn/call3", "item/goat_horn/call4", "item/goat_horn/call5", "item/goat_horn/call6", "item/goat_horn/call7", "mob/allay/death1", "mob/allay/death2", "mob/allay/hurt1", "mob/allay/hurt2", "mob/allay/idle_with_item1", "mob/allay/idle_with_item2", "mob/allay/idle_with_item3", "mob/allay/idle_with_item4", "mob/allay/idle_without_item1", "mob/allay/idle_without_item2", "mob/allay/idle_without_item3", "mob/allay/idle_without_item4", "mob/allay/item_given1", "mob/allay/item_given2", "mob/allay/item_given3", "mob/allay/item_given4", "mob/allay/item_taken1", "mob/allay/item_taken2", "mob/allay/item_taken3", "mob/allay/item_taken4", "mob/allay/item_thrown1", "mob/frog/death1", "mob/frog/death2", "mob/frog/death3", "mob/frog/eat1", "mob/frog/eat2", "mob/frog/eat3", "mob/frog/eat4", "mob/frog/hurt1", "mob/frog/hurt2", "mob/frog/hurt3", "mob/frog/hurt4", "mob/frog/hurt5", "mob/frog/idle1", "mob/frog/idle2", "mob/frog/idle3", "mob/frog/idle4", "mob/frog/idle5", "mob/frog/idle6", "mob/frog/idle7", "mob/frog/idle8", "mob/frog/lay_spawn1", "mob/frog/lay_spawn2", "mob/frog/long_jump1", "mob/frog/long_jump2", "mob/frog/long_jump3", "mob/frog/long_jump4", "mob/frog/step1", "mob/frog/step2", "mob/frog/step3", "mob/frog/step4", "mob/frog/tongue1", "mob/frog/tongue2", "mob/frog/tongue3", "mob/frog/tongue4", "mob/goat/horn_break1", "mob/goat/horn_break2", "mob/goat/horn_break3", "mob/goat/horn_break4", "mob/tadpole/death1", "mob/tadpole/death2", "mob/tadpole/hurt1", "mob/tadpole/hurt2", "mob/tadpole/hurt3", "mob/tadpole/hurt4", "mob/warden/agitated_1", "mob/warden/agitated_2", "mob/warden/agitated_3", "mob/warden/agitated_4", "mob/warden/agitated_5", "mob/warden/agitated_6", "mob/warden/ambient_1", "mob/warden/ambient_10", "mob/warden/ambient_11", "mob/warden/ambient_12", "mob/warden/ambient_2", "mob/warden/ambient_3", "mob/warden/ambient_4", "mob/warden/ambient_5", "mob/warden/ambient_6", "mob/warden/ambient_7", "mob/warden/ambient_8", "mob/warden/ambient_9", "mob/warden/angry_1", "mob/warden/angry_2", "mob/warden/angry_3", "mob/warden/angry_4", "mob/warden/angry_5", "mob/warden/angry_6", "mob/warden/attack_impact_1", "mob/warden/attack_impact_2", "mob/warden/death_1", "mob/warden/death_2", "mob/warden/dig", "mob/warden/emerge", "mob/warden/heartbeat_1", "mob/warden/heartbeat_2", "mob/warden/heartbeat_3", "mob/warden/heartbeat_4", "mob/warden/hurt_1", "mob/warden/hurt_2", "mob/warden/hurt_3", "mob/warden/hurt_4", "mob/warden/listening_1", "mob/warden/listening_2", "mob/warden/listening_3", "mob/warden/listening_4", "mob/warden/listening_5", "mob/warden/listening_angry_1", "mob/warden/listening_angry_2", "mob/warden/listening_angry_3", "mob/warden/listening_angry_4", "mob/warden/listening_angry_5", "mob/warden/nearby_close_1", "mob/warden/nearby_close_2", "mob/warden/nearby_close_3", "mob/warden/nearby_close_4", "mob/warden/nearby_closer_1", "mob/warden/nearby_closer_2", "mob/warden/nearby_closer_3", "mob/warden/nearby_closest_1", "mob/warden/nearby_closest_2", "mob/warden/nearby_closest_3", "mob/warden/roar_1", "mob/warden/roar_2", "mob/warden/roar_3", "mob/warden/roar_4", "mob/warden/roar_5", "mob/warden/sniff_1", "mob/warden/sniff_2", "mob/warden/sniff_3", "mob/warden/sniff_4", "mob/warden/sonic_boom1", "mob/warden/sonic_boom2", "mob/warden/sonic_boom3", "mob/warden/sonic_boom4", "mob/warden/sonic_charge1", "mob/warden/sonic_charge2", "mob/warden/sonic_charge3", "mob/warden/sonic_charge4", "mob/warden/step_1", "mob/warden/step_2", "mob/warden/step_3", "mob/warden/step_4", "mob/warden/tendril_clicks_1", "mob/warden/tendril_clicks_2", "mob/warden/tendril_clicks_3", "mob/warden/tendril_clicks_4", "mob/warden/tendril_clicks_5", "mob/warden/tendril_clicks_6", "music/game/ancestry", "music/game/swamp/aerie", "music/game/swamp/firebugs", "music/game/swamp/labyrinthine", "records/5"], "1.17.1": ["item/bundle/drop_contents1", "item/bundle/drop_contents2", "item/bundle/drop_contents3", "item/bundle/insert1", "item/bundle/insert2", "item/bundle/insert3", "item/bundle/remove_one1", "item/bundle/remove_one2", "item/bundle/remove_one3", "music/game/an_ordinary_day", "music/game/comforting_memories", "music/game/floating_dream", "music/game/infinite_amethyst", "music/game/left_to_bloom", "music/game/one_more_day", "music/game/stand_tall", "music/game/wending", "records/otherside"], "1.16.5": ["block/amethyst_cluster/break1", "block/amethyst_cluster/break2", "block/amethyst_cluster/break3", "block/amethyst_cluster/break4", "block/amethyst_cluster/place1", "block/amethyst_cluster/place2", "block/amethyst_cluster/place3", "block/amethyst_cluster/place4", "block/amethyst/break1", "block/amethyst/break2", "block/amethyst/break3", "block/amethyst/break4", "block/amethyst/place1", "block/amethyst/place2", "block/amethyst/place3", "block/amethyst/place4", "block/amethyst/shimmer", "block/amethyst/step1", "block/amethyst/step10", "block/amethyst/step11", "block/amethyst/step12", "block/amethyst/step13", "block/amethyst/step14", "block/amethyst/step2", "block/amethyst/step3", "block/amethyst/step4", "block/amethyst/step5", "block/amethyst/step6", "block/amethyst/step7", "block/amethyst/step8", "block/amethyst/step9", "block/azalea_leaves/break1", "block/azalea_leaves/break2", "block/azalea_leaves/break3", "block/azalea_leaves/break4", "block/azalea_leaves/break5", "block/azalea_leaves/break6", "block/azalea_leaves/break7", "block/azalea_leaves/step1", "block/azalea_leaves/step2", "block/azalea_leaves/step3", "block/azalea_leaves/step4", "block/azalea_leaves/step5", "block/azalea/break1", "block/azalea/break2", "block/azalea/break3", "block/azalea/break4", "block/azalea/break5", "block/azalea/break6", "block/azalea/step1", "block/azalea/step2", "block/azalea/step3", "block/azalea/step4", "block/azalea/step5", "block/azalea/step6", "block/big_dripleaf/break1", "block/big_dripleaf/break2", "block/big_dripleaf/break3", "block/big_dripleaf/break4", "block/big_dripleaf/break5", "block/big_dripleaf/break6", "block/big_dripleaf/step1", "block/big_dripleaf/step2", "block/big_dripleaf/step3", "block/big_dripleaf/step4", "block/big_dripleaf/step5", "block/big_dripleaf/step6", "block/big_dripleaf/tilt_down1", "block/big_dripleaf/tilt_down2", "block/big_dripleaf/tilt_down3", "block/big_dripleaf/tilt_down4", "block/big_dripleaf/tilt_down5", "block/big_dripleaf/tilt_up1", "block/big_dripleaf/tilt_up2", "block/big_dripleaf/tilt_up3", "block/big_dripleaf/tilt_up4", "block/cake/add_candle1", "block/cake/add_candle2", "block/cake/add_candle3", "block/calcite/break1", "block/calcite/break2", "block/calcite/break3", "block/calcite/break4", "block/calcite/place1", "block/calcite/place2", "block/calcite/place3", "block/calcite/place4", "block/calcite/step1", "block/calcite/step2", "block/calcite/step3", "block/calcite/step4", "block/calcite/step5", "block/calcite/step6", "block/candle/ambient1", "block/candle/ambient2", "block/candle/ambient3", "block/candle/ambient4", "block/candle/ambient5", "block/candle/ambient6", "block/candle/ambient7", "block/candle/ambient8", "block/candle/ambient9", "block/candle/break1", "block/candle/break2", "block/candle/break3", "block/candle/break4", "block/candle/break5", "block/candle/extinguish1", "block/candle/extinguish2", "block/candle/extinguish3", "block/candle/step1", "block/candle/step2", "block/candle/step3", "block/candle/step4", "block/candle/step5", "block/cave_vines/break1", "block/cave_vines/break2", "block/cave_vines/break3", "block/cave_vines/break4", "block/cave_vines/break5", "block/copper/break1", "block/copper/break2", "block/copper/break3", "block/copper/break4", "block/copper/step1", "block/copper/step2", "block/copper/step3", "block/copper/step4", "block/copper/step5", "block/copper/step6", "block/deepslate_bricks/place1", "block/deepslate_bricks/place2", "block/deepslate_bricks/place3", "block/deepslate_bricks/place4", "block/deepslate_bricks/place5", "block/deepslate_bricks/place6", "block/deepslate_bricks/step1", "block/deepslate_bricks/step2", "block/deepslate_bricks/step3", "block/deepslate_bricks/step4", "block/deepslate_bricks/step5", "block/deepslate/break1", "block/deepslate/break2", "block/deepslate/break3", "block/deepslate/break4", "block/deepslate/place1", "block/deepslate/place2", "block/deepslate/place3", "block/deepslate/place4", "block/deepslate/place5", "block/deepslate/place6", "block/deepslate/step1", "block/deepslate/step2", "block/deepslate/step3", "block/deepslate/step4", "block/deepslate/step5", "block/deepslate/step6", "block/dripstone/break1", "block/dripstone/break2", "block/dripstone/break3", "block/dripstone/break4", "block/dripstone/break5", "block/dripstone/step1", "block/dripstone/step2", "block/dripstone/step3", "block/dripstone/step4", "block/dripstone/step5", "block/dripstone/step6", "block/hanging_roots/break1", "block/hanging_roots/break2", "block/hanging_roots/break3", "block/hanging_roots/break4", "block/hanging_roots/step1", "block/hanging_roots/step2", "block/hanging_roots/step3", "block/hanging_roots/step4", "block/hanging_roots/step5", "block/hanging_roots/step6", "block/moss/break1", "block/moss/break2", "block/moss/break3", "block/moss/break4", "block/moss/break5", "block/moss/step1", "block/moss/step2", "block/moss/step3", "block/moss/step4", "block/moss/step5", "block/moss/step6", "block/pointed_dripstone/drip_lava_cauldron1", "block/pointed_dripstone/drip_lava_cauldron2", "block/pointed_dripstone/drip_lava_cauldron3", "block/pointed_dripstone/drip_lava_cauldron4", "block/pointed_dripstone/drip_lava1", "block/pointed_dripstone/drip_lava2", "block/pointed_dripstone/drip_lava3", "block/pointed_dripstone/drip_lava4", "block/pointed_dripstone/drip_lava5", "block/pointed_dripstone/drip_lava6", "block/pointed_dripstone/drip_water_cauldron1", "block/pointed_dripstone/drip_water_cauldron2", "block/pointed_dripstone/drip_water_cauldron3", "block/pointed_dripstone/drip_water_cauldron4", "block/pointed_dripstone/drip_water_cauldron5", "block/pointed_dripstone/drip_water_cauldron6", "block/pointed_dripstone/drip_water_cauldron7", "block/pointed_dripstone/drip_water_cauldron8", "block/pointed_dripstone/drip_water1", "block/pointed_dripstone/drip_water10", "block/pointed_dripstone/drip_water11", "block/pointed_dripstone/drip_water12", "block/pointed_dripstone/drip_water13", "block/pointed_dripstone/drip_water14", "block/pointed_dripstone/drip_water15", "block/pointed_dripstone/drip_water2", "block/pointed_dripstone/drip_water3", "block/pointed_dripstone/drip_water4", "block/pointed_dripstone/drip_water5", "block/pointed_dripstone/drip_water6", "block/pointed_dripstone/drip_water7", "block/pointed_dripstone/drip_water8", "block/pointed_dripstone/drip_water9", "block/pointed_dripstone/land1", "block/pointed_dripstone/land2", "block/pointed_dripstone/land3", "block/pointed_dripstone/land4", "block/pointed_dripstone/land5", "block/powder_snow/break1", "block/powder_snow/break2", "block/powder_snow/break3", "block/powder_snow/break4", "block/powder_snow/break5", "block/powder_snow/break6", "block/powder_snow/break7", "block/powder_snow/step1", "block/powder_snow/step10", "block/powder_snow/step2", "block/powder_snow/step3", "block/powder_snow/step4", "block/powder_snow/step5", "block/powder_snow/step6", "block/powder_snow/step7", "block/powder_snow/step8", "block/powder_snow/step9", "block/rooted_dirt/break1", "block/rooted_dirt/break2", "block/rooted_dirt/break3", "block/rooted_dirt/break4", "block/rooted_dirt/step1", "block/rooted_dirt/step2", "block/rooted_dirt/step3", "block/rooted_dirt/step4", "block/rooted_dirt/step5", "block/rooted_dirt/step6", "block/sculk_sensor/break1", "block/sculk_sensor/break2", "block/sculk_sensor/break3", "block/sculk_sensor/break4", "block/sculk_sensor/break5", "block/sculk_sensor/place1", "block/sculk_sensor/place2", "block/sculk_sensor/place3", "block/sculk_sensor/place4", "block/sculk_sensor/place5", "block/sculk_sensor/sculk_clicking_stop1", "block/sculk_sensor/sculk_clicking_stop2", "block/sculk_sensor/sculk_clicking_stop3", "block/sculk_sensor/sculk_clicking_stop4", "block/sculk_sensor/sculk_clicking_stop5", "block/sculk_sensor/sculk_clicking1", "block/sculk_sensor/sculk_clicking2", "block/sculk_sensor/sculk_clicking3", "block/sculk_sensor/sculk_clicking4", "block/sculk_sensor/sculk_clicking5", "block/sculk_sensor/sculk_clicking6", "block/sculk/step1", "block/sculk/step2", "block/sculk/step3", "block/sculk/step4", "block/sculk/step5", "block/sculk/step6", "block/spore_blossom/break1", "block/spore_blossom/break2", "block/spore_blossom/break3", "block/spore_blossom/break4", "block/spore_blossom/break5", "block/spore_blossom/step1", "block/spore_blossom/step2", "block/spore_blossom/step3", "block/spore_blossom/step4", "block/spore_blossom/step5", "block/spore_blossom/step6", "block/tuff/break1", "block/tuff/break2", "block/tuff/break3", "block/tuff/break4", "block/tuff/break5", "block/tuff/step1", "block/tuff/step2", "block/tuff/step3", "block/tuff/step4", "block/tuff/step5", "block/tuff/step6", "block/vine/break1", "block/vine/break2", "block/vine/break3", "block/vine/break4", "entity/glow_squid/ambient1", "entity/glow_squid/ambient2", "entity/glow_squid/ambient3", "entity/glow_squid/ambient4", "entity/glow_squid/ambient5", "entity/glow_squid/death1", "entity/glow_squid/death2", "entity/glow_squid/death3", "entity/glow_squid/hurt1", "entity/glow_squid/hurt2", "entity/glow_squid/hurt3", "entity/glow_squid/hurt4", "entity/glow_squid/squirt1", "entity/glow_squid/squirt2", "entity/glow_squid/squirt3", "entity/player/hurt/freeze_hurt1", "entity/player/hurt/freeze_hurt2", "entity/player/hurt/freeze_hurt3", "entity/player/hurt/freeze_hurt4", "entity/player/hurt/freeze_hurt5", "item/axe/scrape1", "item/axe/scrape2", "item/axe/scrape3", "item/axe/wax_off1", "item/axe/wax_off2", "item/axe/wax_off3", "item/bonemeal/bonemeal1", "item/bonemeal/bonemeal2", "item/bonemeal/bonemeal3", "item/bonemeal/bonemeal4", "item/bonemeal/bonemeal5", "item/bucket/empty_powder_snow1", "item/bucket/empty_powder_snow2", "item/bucket/fill_axolotl1", "item/bucket/fill_axolotl2", "item/bucket/fill_axolotl3", "item/bucket/fill_powder_snow1", "item/bucket/fill_powder_snow2", "item/dye/dye", "item/honeycomb/wax_on1", "item/honeycomb/wax_on2", "item/honeycomb/wax_on3", "item/ink_sac/ink_sac1", "item/ink_sac/ink_sac2", "item/ink_sac/ink_sac3", "item/spyglass/stop", "item/spyglass/use", "minecart/inside_underwater1", "minecart/inside_underwater2", "minecart/inside_underwater3", "mob/axolotl/attack1", "mob/axolotl/attack2", "mob/axolotl/attack3", "mob/axolotl/attack4", "mob/axolotl/death1", "mob/axolotl/death2", "mob/axolotl/hurt1", "mob/axolotl/hurt2", "mob/axolotl/hurt3", "mob/axolotl/hurt4", "mob/axolotl/idle_air1", "mob/axolotl/idle_air2", "mob/axolotl/idle_air3", "mob/axolotl/idle_air4", "mob/axolotl/idle_air5", "mob/axolotl/idle1", "mob/axolotl/idle2", "mob/axolotl/idle3", "mob/axolotl/idle4", "mob/axolotl/idle5", "mob/goat/death1", "mob/goat/death2", "mob/goat/death3", "mob/goat/death4", "mob/goat/death5", "mob/goat/eat1", "mob/goat/eat2", "mob/goat/eat3", "mob/goat/hurt1", "mob/goat/hurt2", "mob/goat/hurt3", "mob/goat/hurt4", "mob/goat/idle1", "mob/goat/idle2", "mob/goat/idle3", "mob/goat/idle4", "mob/goat/idle5", "mob/goat/idle6", "mob/goat/idle7", "mob/goat/idle8", "mob/goat/impact1", "mob/goat/impact2", "mob/goat/impact3", "mob/goat/jump1", "mob/goat/jump2", "mob/goat/pre_ram1", "mob/goat/pre_ram2", "mob/goat/pre_ram3", "mob/goat/pre_ram4", "mob/goat/scream1", "mob/goat/scream2", "mob/goat/scream3", "mob/goat/scream4", "mob/goat/scream5", "mob/goat/scream6", "mob/goat/scream7", "mob/goat/scream8", "mob/goat/scream9", "mob/goat/screaming_death1", "mob/goat/screaming_death2", "mob/goat/screaming_death3", "mob/goat/screaming_hurt1", "mob/goat/screaming_hurt2", "mob/goat/screaming_hurt3", "mob/goat/screaming_milk1", "mob/goat/screaming_milk2", "mob/goat/screaming_milk3", "mob/goat/screaming_milk4", "mob/goat/screaming_milk5", "mob/goat/screaming_pre_ram1", "mob/goat/screaming_pre_ram2", "mob/goat/screaming_pre_ram3", "mob/goat/screaming_pre_ram4", "mob/goat/screaming_pre_ram5", "mob/goat/step1", "mob/goat/step2", "mob/goat/step3", "mob/goat/step4", "mob/goat/step5", "mob/goat/step6", "mob/stray/convert1", "mob/stray/convert2", "mob/stray/convert3", "block/chest/close", "block/chest/close2", "block/chest/close3"], "1.15.2": ["ambient/nether/basalt_deltas/active1", "ambient/nether/basalt_deltas/active2", "ambient/nether/basalt_deltas/active3", "ambient/nether/basalt_deltas/active4", "ambient/nether/basalt_deltas/ambience", "ambient/nether/basalt_deltas/basaltground1", "ambient/nether/basalt_deltas/basaltground2", "ambient/nether/basalt_deltas/basaltground3", "ambient/nether/basalt_deltas/basaltground4", "ambient/nether/basalt_deltas/click1", "ambient/nether/basalt_deltas/click2", "ambient/nether/basalt_deltas/click3", "ambient/nether/basalt_deltas/click4", "ambient/nether/basalt_deltas/click5", "ambient/nether/basalt_deltas/click6", "ambient/nether/basalt_deltas/click7", "ambient/nether/basalt_deltas/click8", "ambient/nether/basalt_deltas/debris1", "ambient/nether/basalt_deltas/debris2", "ambient/nether/basalt_deltas/debris3", "ambient/nether/basalt_deltas/heavy_click1", "ambient/nether/basalt_deltas/heavy_click2", "ambient/nether/basalt_deltas/long_debris1", "ambient/nether/basalt_deltas/long_debris2", "ambient/nether/basalt_deltas/plode1", "ambient/nether/basalt_deltas/plode2", "ambient/nether/basalt_deltas/plode3", "ambient/nether/basalt_deltas/twist1", "ambient/nether/basalt_deltas/twist2", "ambient/nether/basalt_deltas/twist3", "ambient/nether/basalt_deltas/twist4", "ambient/nether/crimson_forest/addition1", "ambient/nether/crimson_forest/addition2", "ambient/nether/crimson_forest/addition3", "ambient/nether/crimson_forest/ambience", "ambient/nether/crimson_forest/mood1", "ambient/nether/crimson_forest/mood2", "ambient/nether/crimson_forest/mood3", "ambient/nether/crimson_forest/mood4", "ambient/nether/crimson_forest/particles1", "ambient/nether/crimson_forest/particles2", "ambient/nether/crimson_forest/particles3", "ambient/nether/crimson_forest/shine1", "ambient/nether/crimson_forest/shine2", "ambient/nether/crimson_forest/shine3", "ambient/nether/crimson_forest/shroom1", "ambient/nether/crimson_forest/shroom2", "ambient/nether/crimson_forest/shroom3", "ambient/nether/crimson_forest/twang1", "ambient/nether/crimson_forest/voom1", "ambient/nether/crimson_forest/voom2", "ambient/nether/nether_wastes/addition1", "ambient/nether/nether_wastes/addition2", "ambient/nether/nether_wastes/addition3", "ambient/nether/nether_wastes/addition4", "ambient/nether/nether_wastes/addition5", "ambient/nether/nether_wastes/addition6", "ambient/nether/nether_wastes/addition7", "ambient/nether/nether_wastes/addition8", "ambient/nether/nether_wastes/ambience", "ambient/nether/nether_wastes/dark1", "ambient/nether/nether_wastes/dark2", "ambient/nether/nether_wastes/ground1", "ambient/nether/nether_wastes/ground2", "ambient/nether/nether_wastes/ground3", "ambient/nether/nether_wastes/ground4", "ambient/nether/nether_wastes/mood1", "ambient/nether/nether_wastes/mood2", "ambient/nether/nether_wastes/mood3", "ambient/nether/nether_wastes/mood4", "ambient/nether/nether_wastes/mood5", "ambient/nether/soulsand_valley/ambience", "ambient/nether/soulsand_valley/mood1", "ambient/nether/soulsand_valley/mood2", "ambient/nether/soulsand_valley/mood3", "ambient/nether/soulsand_valley/mood4", "ambient/nether/soulsand_valley/sand1", "ambient/nether/soulsand_valley/sand2", "ambient/nether/soulsand_valley/sand3", "ambient/nether/soulsand_valley/voices1", "ambient/nether/soulsand_valley/voices2", "ambient/nether/soulsand_valley/voices3", "ambient/nether/soulsand_valley/voices4", "ambient/nether/soulsand_valley/voices5", "ambient/nether/soulsand_valley/whisper1", "ambient/nether/soulsand_valley/whisper2", "ambient/nether/soulsand_valley/whisper3", "ambient/nether/soulsand_valley/whisper4", "ambient/nether/soulsand_valley/whisper5", "ambient/nether/soulsand_valley/whisper6", "ambient/nether/soulsand_valley/whisper7", "ambient/nether/soulsand_valley/whisper8", "ambient/nether/soulsand_valley/wind1", "ambient/nether/soulsand_valley/wind2", "ambient/nether/soulsand_valley/wind3", "ambient/nether/soulsand_valley/wind4", "ambient/nether/soulsand_valley/with1", "ambient/nether/warped_forest/addition1", "ambient/nether/warped_forest/addition2", "ambient/nether/warped_forest/addition3", "ambient/nether/warped_forest/addition4", "ambient/nether/warped_forest/addition5", "ambient/nether/warped_forest/addition6", "ambient/nether/warped_forest/ambience", "ambient/nether/warped_forest/creak1", "ambient/nether/warped_forest/creak2", "ambient/nether/warped_forest/creak3", "ambient/nether/warped_forest/creak4", "ambient/nether/warped_forest/creak5", "ambient/nether/warped_forest/enish1", "ambient/nether/warped_forest/enish2", "ambient/nether/warped_forest/enish3", "ambient/nether/warped_forest/help1", "ambient/nether/warped_forest/help2", "ambient/nether/warped_forest/here1", "ambient/nether/warped_forest/here2", "ambient/nether/warped_forest/here3", "ambient/nether/warped_forest/mood1", "ambient/nether/warped_forest/mood2", "ambient/nether/warped_forest/mood3", "ambient/nether/warped_forest/mood4", "ambient/nether/warped_forest/mood5", "ambient/nether/warped_forest/mood6", "ambient/nether/warped_forest/mood7", "ambient/nether/warped_forest/mood8", "ambient/nether/warped_forest/mood9", "block/ancient_debris/break1", "block/ancient_debris/break2", "block/ancient_debris/break3", "block/ancient_debris/break4", "block/ancient_debris/break5", "block/basalt/break1", "block/basalt/break2", "block/basalt/break3", "block/basalt/break4", "block/basalt/break5", "block/basalt/step1", "block/basalt/step2", "block/basalt/step3", "block/basalt/step4", "block/basalt/step5", "block/basalt/step6", "block/bone_block/break1", "block/bone_block/break2", "block/bone_block/break3", "block/bone_block/break4", "block/bone_block/break5", "block/bone_block/step1", "block/bone_block/step2", "block/bone_block/step3", "block/bone_block/step4", "block/bone_block/step5", "block/chain/break1", "block/chain/break2", "block/chain/break3", "block/chain/break4", "block/chain/step1", "block/chain/step2", "block/chain/step3", "block/chain/step4", "block/chain/step5", "block/chain/step6", "block/fungus/break1", "block/fungus/break2", "block/fungus/break3", "block/fungus/break4", "block/fungus/break5", "block/fungus/break6", "block/lodestone/lock1", "block/lodestone/lock2", "block/lodestone/place1", "block/lodestone/place2", "block/lodestone/place3", "block/lodestone/place4", "block/nether_bricks/break1", "block/nether_bricks/break2", "block/nether_bricks/break3", "block/nether_bricks/break4", "block/nether_bricks/break5", "block/nether_bricks/break6", "block/nether_bricks/step1", "block/nether_bricks/step2", "block/nether_bricks/step3", "block/nether_bricks/step4", "block/nether_bricks/step5", "block/nether_bricks/step6", "block/nether_ore/break1", "block/nether_ore/break2", "block/nether_ore/break3", "block/nether_ore/break4", "block/nether_ore/step1", "block/nether_ore/step2", "block/nether_ore/step3", "block/nether_ore/step4", "block/nether_ore/step5", "block/nether_sprouts/break1", "block/nether_sprouts/break2", "block/nether_sprouts/break3", "block/nether_sprouts/break4", "block/nether_sprouts/step1", "block/nether_sprouts/step2", "block/nether_sprouts/step3", "block/nether_sprouts/step4", "block/nether_sprouts/step5", "block/netherite/break1", "block/netherite/break2", "block/netherite/break3", "block/netherite/break4", "block/netherite/step1", "block/netherite/step2", "block/netherite/step3", "block/netherite/step4", "block/netherite/step5", "block/netherite/step6", "block/netherrack/break1", "block/netherrack/break2", "block/netherrack/break3", "block/netherrack/break4", "block/netherrack/break5", "block/netherrack/break6", "block/netherrack/step1", "block/netherrack/step2", "block/netherrack/step3", "block/netherrack/step4", "block/netherrack/step5", "block/netherrack/step6", "block/netherwart/break1", "block/netherwart/break2", "block/netherwart/break3", "block/netherwart/break4", "block/netherwart/break5", "block/netherwart/break6", "block/netherwart/step1", "block/netherwart/step2", "block/netherwart/step3", "block/netherwart/step4", "block/netherwart/step5", "block/nylium/break1", "block/nylium/break2", "block/nylium/break3", "block/nylium/break4", "block/nylium/break5", "block/nylium/break6", "block/nylium/step1", "block/nylium/step2", "block/nylium/step3", "block/nylium/step4", "block/nylium/step5", "block/nylium/step6", "block/respawn_anchor/ambient1", "block/respawn_anchor/ambient2", "block/respawn_anchor/ambient3", "block/respawn_anchor/charge1", "block/respawn_anchor/charge2", "block/respawn_anchor/charge3", "block/respawn_anchor/deplete1", "block/respawn_anchor/deplete2", "block/respawn_anchor/set_spawn1", "block/respawn_anchor/set_spawn2", "block/respawn_anchor/set_spawn3", "block/roots/break1", "block/roots/break2", "block/roots/break3", "block/roots/break4", "block/roots/break5", "block/roots/break6", "block/roots/step1", "block/roots/step2", "block/roots/step3", "block/roots/step4", "block/roots/step5", "block/shroomlight/break1", "block/shroomlight/break2", "block/shroomlight/break3", "block/shroomlight/break4", "block/shroomlight/break5", "block/shroomlight/step1", "block/shroomlight/step2", "block/shroomlight/step3", "block/shroomlight/step4", "block/shroomlight/step5", "block/shroomlight/step6", "block/soul_sand/break1", "block/soul_sand/break2", "block/soul_sand/break3", "block/soul_sand/break4", "block/soul_sand/break5", "block/soul_sand/break6", "block/soul_sand/break7", "block/soul_sand/break8", "block/soul_sand/break9", "block/soul_sand/step1", "block/soul_sand/step2", "block/soul_sand/step3", "block/soul_sand/step4", "block/soul_sand/step5", "block/soul_soil/break1", "block/soul_soil/break2", "block/soul_soil/break3", "block/soul_soil/break4", "block/soul_soil/break5", "block/soul_soil/break6", "block/soul_soil/step1", "block/soul_soil/step2", "block/soul_soil/step3", "block/soul_soil/step4", "block/soul_soil/step5", "block/stem/break1", "block/stem/break2", "block/stem/break3", "block/stem/break4", "block/stem/break5", "block/stem/break6", "block/stem/step1", "block/stem/step2", "block/stem/step3", "block/stem/step4", "block/stem/step5", "block/stem/step6", "block/vine/climb1", "block/vine/climb2", "block/vine/climb3", "block/vine/climb4", "block/vine/climb5", "enchant/soulspeed/soulspeed1", "enchant/soulspeed/soulspeed10", "enchant/soulspeed/soulspeed11", "enchant/soulspeed/soulspeed12", "enchant/soulspeed/soulspeed13", "enchant/soulspeed/soulspeed2", "enchant/soulspeed/soulspeed3", "enchant/soulspeed/soulspeed4", "enchant/soulspeed/soulspeed5", "enchant/soulspeed/soulspeed6", "enchant/soulspeed/soulspeed7", "enchant/soulspeed/soulspeed8", "enchant/soulspeed/soulspeed9", "item/armor/equip_netherite1", "item/armor/equip_netherite2", "item/armor/equip_netherite3", "item/armor/equip_netherite4", "mob/hoglin/angry1", "mob/hoglin/angry2", "mob/hoglin/angry3", "mob/hoglin/angry4", "mob/hoglin/angry5", "mob/hoglin/angry6", "mob/hoglin/attack1", "mob/hoglin/attack2", "mob/hoglin/converted1", "mob/hoglin/converted2", "mob/hoglin/death1", "mob/hoglin/death2", "mob/hoglin/death3", "mob/hoglin/hurt1", "mob/hoglin/hurt2", "mob/hoglin/hurt3", "mob/hoglin/hurt4", "mob/hoglin/idle1", "mob/hoglin/idle10", "mob/hoglin/idle11", "mob/hoglin/idle2", "mob/hoglin/idle3", "mob/hoglin/idle4", "mob/hoglin/idle5", "mob/hoglin/idle6", "mob/hoglin/idle7", "mob/hoglin/idle8", "mob/hoglin/idle9", "mob/hoglin/retreat1", "mob/hoglin/retreat2", "mob/hoglin/retreat3", "mob/hoglin/step1", "mob/hoglin/step2", "mob/hoglin/step3", "mob/hoglin/step4", "mob/hoglin/step5", "mob/hoglin/step6", "mob/piglin_brute/angry1", "mob/piglin_brute/angry2", "mob/piglin_brute/angry3", "mob/piglin_brute/angry4", "mob/piglin_brute/angry5", "mob/piglin_brute/death1", "mob/piglin_brute/death2", "mob/piglin_brute/death3", "mob/piglin_brute/hurt1", "mob/piglin_brute/hurt2", "mob/piglin_brute/hurt3", "mob/piglin_brute/hurt4", "mob/piglin_brute/idle1", "mob/piglin_brute/idle2", "mob/piglin_brute/idle3", "mob/piglin_brute/idle4", "mob/piglin_brute/idle5", "mob/piglin_brute/idle6", "mob/piglin_brute/idle7", "mob/piglin_brute/idle8", "mob/piglin_brute/idle9", "mob/piglin_brute/step1", "mob/piglin_brute/step2", "mob/piglin_brute/step3", "mob/piglin_brute/step4", "mob/piglin_brute/step5", "mob/piglin/admire1", "mob/piglin/admire2", "mob/piglin/angry1", "mob/piglin/angry2", "mob/piglin/angry3", "mob/piglin/angry4", "mob/piglin/celebrate1", "mob/piglin/celebrate2", "mob/piglin/celebrate3", "mob/piglin/celebrate4", "mob/piglin/converted1", "mob/piglin/converted2", "mob/piglin/death1", "mob/piglin/death2", "mob/piglin/death3", "mob/piglin/death4", "mob/piglin/hurt1", "mob/piglin/hurt2", "mob/piglin/hurt3", "mob/piglin/idle1", "mob/piglin/idle2", "mob/piglin/idle3", "mob/piglin/idle4", "mob/piglin/idle5", "mob/piglin/jealous1", "mob/piglin/jealous2", "mob/piglin/jealous3", "mob/piglin/jealous4", "mob/piglin/jealous5", "mob/piglin/retreat1", "mob/piglin/retreat2", "mob/piglin/retreat3", "mob/piglin/retreat4", "mob/piglin/step1", "mob/piglin/step2", "mob/piglin/step3", "mob/piglin/step4", "mob/piglin/step5", "mob/strider/death1", "mob/strider/death2", "mob/strider/death3", "mob/strider/death4", "mob/strider/eat1", "mob/strider/eat2", "mob/strider/eat3", "mob/strider/happy1", "mob/strider/happy2", "mob/strider/happy3", "mob/strider/happy4", "mob/strider/happy5", "mob/strider/hurt1", "mob/strider/hurt2", "mob/strider/hurt3", "mob/strider/hurt4", "mob/strider/idle1", "mob/strider/idle2", "mob/strider/idle3", "mob/strider/idle4", "mob/strider/idle5", "mob/strider/idle6", "mob/strider/retreat1", "mob/strider/retreat2", "mob/strider/retreat3", "mob/strider/retreat4", "mob/strider/retreat5", "mob/strider/step_lava1", "mob/strider/step_lava2", "mob/strider/step_lava3", "mob/strider/step_lava4", "mob/strider/step_lava5", "mob/strider/step_lava6", "mob/strider/step1", "mob/strider/step2", "mob/strider/step3", "mob/strider/step4", "mob/strider/step5", "mob/zoglin/angry1", "mob/zoglin/angry2", "mob/zoglin/angry3", "mob/zoglin/attack1", "mob/zoglin/attack2", "mob/zoglin/death1", "mob/zoglin/death2", "mob/zoglin/death3", "mob/zoglin/hurt1", "mob/zoglin/hurt2", "mob/zoglin/hurt3", "mob/zoglin/idle1", "mob/zoglin/idle2", "mob/zoglin/idle3", "mob/zoglin/idle4", "mob/zoglin/idle5", "mob/zoglin/idle6", "mob/zoglin/step1", "mob/zoglin/step2", "mob/zoglin/step3", "mob/zoglin/step4", "mob/zoglin/step5", "mob/zombified_piglin/zpig1", "mob/zombified_piglin/zpig2", "mob/zombified_piglin/zpig3", "mob/zombified_piglin/zpig4", "mob/zombified_piglin/zpigangry1", "mob/zombified_piglin/zpigangry2", "mob/zombified_piglin/zpigangry3", "mob/zombified_piglin/zpigangry4", "mob/zombified_piglin/zpigdeath", "mob/zombified_piglin/zpighurt1", "mob/zombified_piglin/zpighurt2", "music/game/nether/crimson_forest/chrysopoeia", "music/game/nether/nether_wastes/rubedo", "music/game/nether/soulsand_valley/so_below", "records/pigstep", "mob/cat/hiss1", "mob/cat/hiss3"], "1.14.4": ["block/beehive/drip1", "block/beehive/drip2", "block/beehive/drip3", "block/beehive/drip4", "block/beehive/drip5", "block/beehive/drip6", "block/beehive/enter", "block/beehive/exit", "block/beehive/shear", "block/beehive/work1", "block/beehive/work2", "block/beehive/work3", "block/beehive/work4", "block/honeyblock/break1", "block/honeyblock/break2", "block/honeyblock/break3", "block/honeyblock/break4", "block/honeyblock/break5", "block/honeyblock/slide1", "block/honeyblock/slide2", "block/honeyblock/slide3", "block/honeyblock/slide4", "block/honeyblock/step1", "block/honeyblock/step2", "block/honeyblock/step3", "block/honeyblock/step4", "block/honeyblock/step5", "item/bottle/drink_honey1", "item/bottle/drink_honey2", "item/bottle/drink_honey3", "mob/bee/aggressive1", "mob/bee/aggressive2", "mob/bee/aggressive3", "mob/bee/death1", "mob/bee/death2", "mob/bee/hurt1", "mob/bee/hurt2", "mob/bee/hurt3", "mob/bee/loop1", "mob/bee/loop2", "mob/bee/loop3", "mob/bee/loop4", "mob/bee/loop5", "mob/bee/pollinate1", "mob/bee/pollinate2", "mob/bee/pollinate3", "mob/bee/pollinate4", "mob/bee/sting", "mob/irongolem/damage1", "mob/irongolem/damage2", "mob/irongolem/repair"], "1.13.2": ["block/bamboo/place1", "block/bamboo/place2", "block/bamboo/place3", "block/bamboo/place4", "block/bamboo/place5", "block/bamboo/place6", "block/bamboo/sapling_hit1", "block/bamboo/sapling_hit2", "block/bamboo/sapling_hit3", "block/bamboo/sapling_hit4", "block/bamboo/sapling_hit5", "block/bamboo/sapling_place1", "block/bamboo/sapling_place2", "block/bamboo/sapling_place3", "block/bamboo/sapling_place4", "block/bamboo/sapling_place5", "block/bamboo/sapling_place6", "block/bamboo/step1", "block/bamboo/step2", "block/bamboo/step3", "block/bamboo/step4", "block/bamboo/step5", "block/bamboo/step6", "block/barrel/close", "block/barrel/open1", "block/barrel/open2", "block/bell/bell_use01", "block/bell/bell_use02", "block/bell/resonate", "block/blastfurnace/blastfurnace1", "block/blastfurnace/blastfurnace2", "block/blastfurnace/blastfurnace3", "block/blastfurnace/blastfurnace4", "block/blastfurnace/blastfurnace5", "block/campfire/crackle1", "block/campfire/crackle2", "block/campfire/crackle3", "block/campfire/crackle4", "block/campfire/crackle5", "block/campfire/crackle6", "block/cauldron/dye1", "block/cauldron/dye2", "block/cauldron/dye3", "block/composter/empty1", "block/composter/empty2", "block/composter/empty3", "block/composter/fill_success1", "block/composter/fill_success2", "block/composter/fill_success3", "block/composter/fill_success4", "block/composter/fill1", "block/composter/fill2", "block/composter/fill3", "block/composter/fill4", "block/composter/ready1", "block/composter/ready2", "block/composter/ready3", "block/composter/ready4", "block/fletching_table/fletching_table1", "block/fletching_table/fletching_table2", "block/grindstone/grindstone1", "block/grindstone/grindstone2", "block/grindstone/grindstone3", "block/lantern/break1", "block/lantern/break2", "block/lantern/break3", "block/lantern/break4", "block/lantern/break5", "block/lantern/break6", "block/lantern/place1", "block/lantern/place2", "block/lantern/place3", "block/lantern/place4", "block/lantern/place5", "block/lantern/place6", "block/scaffold/place1", "block/scaffold/place2", "block/scaffold/place3", "block/scaffold/place4", "block/smithing_table/smithing_table1", "block/smithing_table/smithing_table2", "block/smithing_table/smithing_table3", "block/smoker/smoker1", "block/smoker/smoker2", "block/smoker/smoker3", "block/smoker/smoker4", "block/smoker/smoker5", "block/sweet_berry_bush/break1", "block/sweet_berry_bush/break2", "block/sweet_berry_bush/break3", "block/sweet_berry_bush/break4", "block/sweet_berry_bush/place1", "block/sweet_berry_bush/place2", "block/sweet_berry_bush/place3", "block/sweet_berry_bush/place4", "block/sweet_berry_bush/place5", "block/sweet_berry_bush/place6", "entity/player/hurt/berrybush_hurt1", "entity/player/hurt/berrybush_hurt2", "entity/witch/celebrate", "event/raid/raidhorn_01", "event/raid/raidhorn_02", "event/raid/raidhorn_03", "event/raid/raidhorn_04", "item/book/close_put1", "item/book/close_put2", "item/book/open_flip1", "item/book/open_flip2", "item/book/open_flip3", "item/crossbow/loading_end", "item/crossbow/loading_middle1", "item/crossbow/loading_middle2", "item/crossbow/loading_middle3", "item/crossbow/loading_middle4", "item/crossbow/loading_start", "item/crossbow/quick_charge/quick1_1", "item/crossbow/quick_charge/quick1_2", "item/crossbow/quick_charge/quick1_3", "item/crossbow/quick_charge/quick2_1", "item/crossbow/quick_charge/quick2_2", "item/crossbow/quick_charge/quick2_3", "item/crossbow/quick_charge/quick3_1", "item/crossbow/quick_charge/quick3_2", "item/crossbow/quick_charge/quick3_3", "item/crossbow/shoot1", "item/crossbow/shoot2", "item/crossbow/shoot3", "item/plant/crop1", "item/plant/crop2", "item/plant/crop3", "item/plant/crop4", "item/plant/crop5", "item/plant/crop6", "item/plant/netherwart1", "item/plant/netherwart2", "item/plant/netherwart3", "item/plant/netherwart4", "item/plant/netherwart5", "item/plant/netherwart6", "item/sweet_berries/pick_from_bush1", "item/sweet_berries/pick_from_bush2", "mob/cat/beg1", "mob/cat/beg2", "mob/cat/beg3", "mob/cat/eat1", "mob/cat/eat2", "mob/cat/ocelot/death1", "mob/cat/ocelot/death2", "mob/cat/ocelot/death3", "mob/cat/ocelot/idle1", "mob/cat/ocelot/idle2", "mob/cat/ocelot/idle3", "mob/cat/ocelot/idle4", "mob/cat/stray/idle1", "mob/cat/stray/idle2", "mob/cat/stray/idle3", "mob/cat/stray/idle4", "mob/evocation_illager/celebrate", "mob/fox/aggro1", "mob/fox/aggro2", "mob/fox/aggro3", "mob/fox/aggro4", "mob/fox/aggro5", "mob/fox/aggro6", "mob/fox/aggro7", "mob/fox/bite1", "mob/fox/bite2", "mob/fox/bite3", "mob/fox/death1", "mob/fox/death2", "mob/fox/eat1", "mob/fox/eat2", "mob/fox/eat3", "mob/fox/hurt1", "mob/fox/hurt2", "mob/fox/hurt3", "mob/fox/hurt4", "mob/fox/idle1", "mob/fox/idle2", "mob/fox/idle3", "mob/fox/idle4", "mob/fox/idle5", "mob/fox/idle6", "mob/fox/screech1", "mob/fox/screech2", "mob/fox/screech3", "mob/fox/screech4", "mob/fox/sleep1", "mob/fox/sleep2", "mob/fox/sleep3", "mob/fox/sleep4", "mob/fox/sleep5", "mob/fox/sniff1", "mob/fox/sniff2", "mob/fox/sniff3", "mob/fox/sniff4", "mob/fox/spit1", "mob/fox/spit2", "mob/fox/spit3", "mob/mooshroom/convert1", "mob/mooshroom/convert2", "mob/mooshroom/eat1", "mob/mooshroom/eat2", "mob/mooshroom/eat3", "mob/mooshroom/eat4", "mob/mooshroom/milk1", "mob/mooshroom/milk2", "mob/mooshroom/milk3", "mob/panda/aggressive/aggressive1", "mob/panda/aggressive/aggressive2", "mob/panda/aggressive/aggressive3", "mob/panda/aggressive/aggressive4", "mob/panda/bite1", "mob/panda/bite2", "mob/panda/bite3", "mob/panda/cant_breed1", "mob/panda/cant_breed2", "mob/panda/cant_breed3", "mob/panda/cant_breed4", "mob/panda/cant_breed5", "mob/panda/death1", "mob/panda/death2", "mob/panda/death3", "mob/panda/death4", "mob/panda/eat1", "mob/panda/eat10", "mob/panda/eat11", "mob/panda/eat12", "mob/panda/eat2", "mob/panda/eat3", "mob/panda/eat4", "mob/panda/eat5", "mob/panda/eat6", "mob/panda/eat7", "mob/panda/eat8", "mob/panda/eat9", "mob/panda/hurt1", "mob/panda/hurt2", "mob/panda/hurt3", "mob/panda/hurt4", "mob/panda/hurt5", "mob/panda/hurt6", "mob/panda/idle1", "mob/panda/idle2", "mob/panda/idle3", "mob/panda/idle4", "mob/panda/nosebreath1", "mob/panda/nosebreath2", "mob/panda/nosebreath3", "mob/panda/pant1", "mob/panda/pant2", "mob/panda/pre_sneeze", "mob/panda/sneeze1", "mob/panda/sneeze2", "mob/panda/sneeze3", "mob/panda/step1", "mob/panda/step2", "mob/panda/step3", "mob/panda/step4", "mob/panda/step5", "mob/panda/worried/worried1", "mob/panda/worried/worried2", "mob/panda/worried/worried3", "mob/panda/worried/worried4", "mob/panda/worried/worried5", "mob/panda/worried/worried6", "mob/pillager/celebrate1", "mob/pillager/celebrate2", "mob/pillager/celebrate3", "mob/pillager/celebrate4", "mob/pillager/death1", "mob/pillager/death2", "mob/pillager/horn_celebrate", "mob/pillager/hurt1", "mob/pillager/hurt2", "mob/pillager/hurt3", "mob/pillager/idle1", "mob/pillager/idle2", "mob/pillager/idle3", "mob/pillager/idle4", "mob/ravager/bite1", "mob/ravager/bite2", "mob/ravager/bite3", "mob/ravager/celebrate1", "mob/ravager/celebrate2", "mob/ravager/death1", "mob/ravager/death2", "mob/ravager/death3", "mob/ravager/hurt1", "mob/ravager/hurt2", "mob/ravager/hurt3", "mob/ravager/hurt4", "mob/ravager/idle1", "mob/ravager/idle2", "mob/ravager/idle3", "mob/ravager/idle4", "mob/ravager/idle5", "mob/ravager/idle6", "mob/ravager/idle7", "mob/ravager/idle8", "mob/ravager/roar1", "mob/ravager/roar2", "mob/ravager/roar3", "mob/ravager/roar4", "mob/ravager/step1", "mob/ravager/step2", "mob/ravager/step3", "mob/ravager/step4", "mob/ravager/step5", "mob/ravager/stun1", "mob/ravager/stun2", "mob/ravager/stun3", "mob/vindication_illager/celebrate1", "mob/vindication_illager/celebrate2", "mob/wandering_trader/appeared1", "mob/wandering_trader/appeared2", "mob/wandering_trader/death", "mob/wandering_trader/disappeared1", "mob/wandering_trader/disappeared2", "mob/wandering_trader/drink_milk1", "mob/wandering_trader/drink_milk2", "mob/wandering_trader/drink_milk3", "mob/wandering_trader/drink_milk4", "mob/wandering_trader/drink_milk5", "mob/wandering_trader/drink_potion", "mob/wandering_trader/haggle1", "mob/wandering_trader/haggle2", "mob/wandering_trader/haggle3", "mob/wandering_trader/hurt1", "mob/wandering_trader/hurt2", "mob/wandering_trader/hurt3", "mob/wandering_trader/hurt4", "mob/wandering_trader/idle1", "mob/wandering_trader/idle2", "mob/wandering_trader/idle3", "mob/wandering_trader/idle4", "mob/wandering_trader/idle5", "mob/wandering_trader/no1", "mob/wandering_trader/no2", "mob/wandering_trader/no3", "mob/wandering_trader/no4", "mob/wandering_trader/no5", "mob/wandering_trader/reappeared1", "mob/wandering_trader/reappeared2", "mob/wandering_trader/yes1", "mob/wandering_trader/yes2", "mob/wandering_trader/yes3", "mob/wandering_trader/yes4", "note/banjo", "note/bit", "note/cow_bell", "note/didgeridoo", "note/iron_xylophone", "random/click_stereo", "step/scaffold1", "step/scaffold2", "step/scaffold3", "step/scaffold4", "step/scaffold5", "step/scaffold6", "step/scaffold7", "ui/cartography_table/drawmap1", "ui/cartography_table/drawmap2", "ui/cartography_table/drawmap3", "ui/loom/select_pattern1", "ui/loom/select_pattern2", "ui/loom/select_pattern3", "ui/loom/select_pattern4", "ui/loom/select_pattern5", "ui/loom/take_result1", "ui/loom/take_result2", "ui/stonecutter/cut1", "ui/stonecutter/cut2", "liquid/splash2", "mob/cat/hiss1", "mob/cat/hiss2", "mob/cat/hiss3", "mob/cat/hitt1", "mob/cat/hitt2", "mob/cat/hitt3", "mob/cat/meow1", "mob/cat/meow2", "mob/cat/meow3", "mob/cat/meow4", "mob/cat/purr1", "mob/cat/purr2", "mob/cat/purr3", "mob/cat/purreow1", "mob/cat/purreow2", "mob/horse/breathe1", "mob/horse/breathe2", "mob/horse/breathe3", "random/click", "step/wood1", "step/wood2", "step/wood3", "step/wood4", "step/wood5", "step/wood6"], "1.12.2": ["ambient/cave/cave19", "ambient/underwater/additions/animal1", "ambient/underwater/additions/animal2", "ambient/underwater/additions/bass_whale1", "ambient/underwater/additions/bass_whale2", "ambient/underwater/additions/bubbles1", "ambient/underwater/additions/bubbles2", "ambient/underwater/additions/bubbles3", "ambient/underwater/additions/bubbles4", "ambient/underwater/additions/bubbles5", "ambient/underwater/additions/bubbles6", "ambient/underwater/additions/crackles1", "ambient/underwater/additions/crackles2", "ambient/underwater/additions/dark1", "ambient/underwater/additions/dark2", "ambient/underwater/additions/dark3", "ambient/underwater/additions/dark4", "ambient/underwater/additions/driplets1", "ambient/underwater/additions/driplets2", "ambient/underwater/additions/earth_crack", "ambient/underwater/additions/water1", "ambient/underwater/additions/water2", "ambient/underwater/enter1", "ambient/underwater/enter2", "ambient/underwater/enter3", "ambient/underwater/exit1", "ambient/underwater/exit2", "ambient/underwater/exit3", "ambient/underwater/underwater_ambience", "block/beacon/activate", "block/beacon/ambient", "block/beacon/deactivate", "block/beacon/power1", "block/beacon/power2", "block/beacon/power3", "block/bubble_column/bubble1", "block/bubble_column/bubble2", "block/bubble_column/bubble3", "block/bubble_column/upwards_ambient1", "block/bubble_column/upwards_ambient2", "block/bubble_column/upwards_ambient3", "block/bubble_column/upwards_ambient4", "block/bubble_column/upwards_ambient5", "block/bubble_column/upwards_inside", "block/bubble_column/whirlpool_ambient1", "block/bubble_column/whirlpool_ambient2", "block/bubble_column/whirlpool_ambient3", "block/bubble_column/whirlpool_ambient4", "block/bubble_column/whirlpool_ambient5", "block/bubble_column/whirlpool_inside", "block/conduit/activate", "block/conduit/ambient", "block/conduit/attack1", "block/conduit/attack2", "block/conduit/attack3", "block/conduit/deactivate", "block/conduit/short1", "block/conduit/short2", "block/conduit/short3", "block/conduit/short4", "block/conduit/short5", "block/conduit/short6", "block/conduit/short7", "block/conduit/short8", "block/conduit/short9", "block/pumpkin/carve1", "block/pumpkin/carve2", "block/wooden_door/close5", "block/wooden_door/close6", "dig/coral1", "dig/coral2", "dig/coral3", "dig/coral4", "dig/wet_grass1", "dig/wet_grass2", "dig/wet_grass3", "dig/wet_grass4", "entity/fish/flop1", "entity/fish/flop2", "entity/fish/flop3", "entity/fish/flop4", "entity/fish/hurt1", "entity/fish/hurt2", "entity/fish/hurt3", "entity/fish/hurt4", "entity/fish/swim1", "entity/fish/swim2", "entity/fish/swim3", "entity/fish/swim4", "entity/fish/swim5", "entity/fish/swim6", "entity/fish/swim7", "entity/pufferfish/blow_out1", "entity/pufferfish/blow_out2", "entity/pufferfish/blow_up1", "entity/pufferfish/blow_up2", "entity/pufferfish/death1", "entity/pufferfish/death2", "entity/pufferfish/flop1", "entity/pufferfish/flop2", "entity/pufferfish/flop3", "entity/pufferfish/flop4", "entity/pufferfish/hurt1", "entity/pufferfish/hurt2", "entity/pufferfish/sting1", "entity/pufferfish/sting2", "entity/squid/squirt1", "entity/squid/squirt2", "entity/squid/squirt3", "item/axe/strip1", "item/axe/strip2", "item/axe/strip3", "item/axe/strip4", "item/bucket/empty_fish1", "item/bucket/empty_fish2", "item/bucket/empty_fish3", "item/bucket/fill_fish1", "item/bucket/fill_fish2", "item/bucket/fill_fish3", "item/trident/ground_impact1", "item/trident/ground_impact2", "item/trident/ground_impact3", "item/trident/ground_impact4", "item/trident/pierce1", "item/trident/pierce2", "item/trident/pierce3", "item/trident/return1", "item/trident/return2", "item/trident/return3", "item/trident/riptide1", "item/trident/riptide2", "item/trident/riptide3", "item/trident/throw1", "item/trident/throw2", "item/trident/thunder1", "item/trident/thunder2", "liquid/heavy_splash", "liquid/swim10", "liquid/swim11", "liquid/swim12", "liquid/swim13", "liquid/swim14", "liquid/swim15", "liquid/swim16", "liquid/swim17", "liquid/swim18", "liquid/swim5", "liquid/swim6", "liquid/swim7", "liquid/swim8", "liquid/swim9", "mob/dolphin/attack1", "mob/dolphin/attack2", "mob/dolphin/attack3", "mob/dolphin/blowhole1", "mob/dolphin/blowhole2", "mob/dolphin/death1", "mob/dolphin/death2", "mob/dolphin/eat1", "mob/dolphin/eat2", "mob/dolphin/eat3", "mob/dolphin/hurt1", "mob/dolphin/hurt2", "mob/dolphin/hurt3", "mob/dolphin/idle_water1", "mob/dolphin/idle_water10", "mob/dolphin/idle_water2", "mob/dolphin/idle_water3", "mob/dolphin/idle_water4", "mob/dolphin/idle_water5", "mob/dolphin/idle_water6", "mob/dolphin/idle_water7", "mob/dolphin/idle_water8", "mob/dolphin/idle_water9", "mob/dolphin/idle1", "mob/dolphin/idle2", "mob/dolphin/idle3", "mob/dolphin/idle4", "mob/dolphin/idle5", "mob/dolphin/idle6", "mob/dolphin/jump1", "mob/dolphin/jump2", "mob/dolphin/jump3", "mob/dolphin/play1", "mob/dolphin/play2", "mob/dolphin/splash1", "mob/dolphin/splash2", "mob/dolphin/splash3", "mob/dolphin/swim1", "mob/dolphin/swim2", "mob/dolphin/swim3", "mob/dolphin/swim4", "mob/drowned/convert1", "mob/drowned/convert2", "mob/drowned/convert3", "mob/drowned/death1", "mob/drowned/death2", "mob/drowned/hurt1", "mob/drowned/hurt2", "mob/drowned/hurt3", "mob/drowned/idle1", "mob/drowned/idle2", "mob/drowned/idle3", "mob/drowned/idle4", "mob/drowned/idle5", "mob/drowned/step1", "mob/drowned/step2", "mob/drowned/step3", "mob/drowned/step4", "mob/drowned/step5", "mob/drowned/water/death1", "mob/drowned/water/death2", "mob/drowned/water/hurt1", "mob/drowned/water/hurt2", "mob/drowned/water/hurt3", "mob/drowned/water/idle1", "mob/drowned/water/idle2", "mob/drowned/water/idle3", "mob/drowned/water/idle4", "mob/horse/skeleton/water/gallop1", "mob/horse/skeleton/water/gallop2", "mob/horse/skeleton/water/gallop3", "mob/horse/skeleton/water/gallop4", "mob/horse/skeleton/water/idle1", "mob/horse/skeleton/water/idle2", "mob/horse/skeleton/water/idle3", "mob/horse/skeleton/water/idle4", "mob/horse/skeleton/water/idle5", "mob/horse/skeleton/water/jump", "mob/horse/skeleton/water/soft1", "mob/horse/skeleton/water/soft2", "mob/horse/skeleton/water/soft3", "mob/horse/skeleton/water/soft4", "mob/horse/skeleton/water/soft5", "mob/horse/skeleton/water/soft6", "mob/husk/convert1", "mob/husk/convert2", "mob/phantom/bite1", "mob/phantom/bite2", "mob/phantom/death1", "mob/phantom/death2", "mob/phantom/death3", "mob/phantom/flap1", "mob/phantom/flap2", "mob/phantom/flap3", "mob/phantom/flap4", "mob/phantom/flap5", "mob/phantom/flap6", "mob/phantom/hurt1", "mob/phantom/hurt2", "mob/phantom/hurt3", "mob/phantom/idle1", "mob/phantom/idle2", "mob/phantom/idle3", "mob/phantom/idle4", "mob/phantom/idle5", "mob/phantom/swoop1", "mob/phantom/swoop2", "mob/phantom/swoop3", "mob/phantom/swoop4", "mob/turtle/armor", "mob/turtle/baby/death1", "mob/turtle/baby/death2", "mob/turtle/baby/egg_hatched1", "mob/turtle/baby/egg_hatched2", "mob/turtle/baby/egg_hatched3", "mob/turtle/baby/hurt1", "mob/turtle/baby/hurt2", "mob/turtle/baby/shamble1", "mob/turtle/baby/shamble2", "mob/turtle/baby/shamble3", "mob/turtle/baby/shamble4", "mob/turtle/death1", "mob/turtle/death2", "mob/turtle/death3", "mob/turtle/egg/drop_egg1", "mob/turtle/egg/drop_egg2", "mob/turtle/egg/egg_break1", "mob/turtle/egg/egg_break2", "mob/turtle/egg/egg_crack1", "mob/turtle/egg/egg_crack2", "mob/turtle/egg/egg_crack3", "mob/turtle/egg/egg_crack4", "mob/turtle/egg/egg_crack5", "mob/turtle/egg/jump_egg1", "mob/turtle/egg/jump_egg2", "mob/turtle/egg/jump_egg3", "mob/turtle/egg/jump_egg4", "mob/turtle/hurt1", "mob/turtle/hurt2", "mob/turtle/hurt3", "mob/turtle/hurt4", "mob/turtle/hurt5", "mob/turtle/idle1", "mob/turtle/idle2", "mob/turtle/idle3", "mob/turtle/swim/swim1", "mob/turtle/swim/swim2", "mob/turtle/swim/swim3", "mob/turtle/swim/swim4", "mob/turtle/swim/swim5", "mob/turtle/walk1", "mob/turtle/walk2", "mob/turtle/walk3", "mob/turtle/walk4", "mob/turtle/walk5", "music/game/water/axolotl", "music/game/water/dragon_fish", "music/game/water/shuniji", "step/coral1", "step/coral2", "step/coral3", "step/coral4", "step/coral5", "step/coral6", "step/wet_grass1", "step/wet_grass2", "step/wet_grass3", "step/wet_grass4", "step/wet_grass5", "step/wet_grass6"], "1.11.2": ["ambient/cave/cave17", "ambient/cave/cave18", "block/end_portal/endportal", "block/end_portal/eyeplace1", "block/end_portal/eyeplace2", "block/end_portal/eyeplace3", "entity/boat/paddle_land1", "entity/boat/paddle_land2", "entity/boat/paddle_land3", "entity/boat/paddle_land4", "entity/boat/paddle_land5", "entity/boat/paddle_land6", "entity/boat/paddle_water1", "entity/boat/paddle_water2", "entity/boat/paddle_water3", "entity/boat/paddle_water4", "entity/boat/paddle_water5", "entity/boat/paddle_water6", "entity/boat/paddle_water7", "entity/boat/paddle_water8", "entity/bobber/castfast", "entity/bobber/retrieve1", "entity/bobber/retrieve2", "entity/bobber/retrieve3", "entity/endereye/dead1", "entity/endereye/dead2", "entity/endereye/endereye_launch1", "entity/endereye/endereye_launch2", "entity/player/hurt/drown1", "entity/player/hurt/drown2", "entity/player/hurt/drown3", "entity/player/hurt/drown4", "entity/player/hurt/fire_hurt1", "entity/player/hurt/fire_hurt2", "entity/player/hurt/fire_hurt3", "mob/illusion_illager/death1", "mob/illusion_illager/death2", "mob/illusion_illager/hurt1", "mob/illusion_illager/hurt2", "mob/illusion_illager/hurt3", "mob/illusion_illager/idle1", "mob/illusion_illager/idle2", "mob/illusion_illager/idle3", "mob/illusion_illager/idle4", "mob/illusion_illager/mirror_move1", "mob/illusion_illager/mirror_move2", "mob/illusion_illager/prepare_blind", "mob/illusion_illager/prepare_mirror", "mob/parrot/death1", "mob/parrot/death2", "mob/parrot/death3", "mob/parrot/death4", "mob/parrot/eat1", "mob/parrot/eat2", "mob/parrot/eat3", "mob/parrot/fly1", "mob/parrot/fly2", "mob/parrot/fly3", "mob/parrot/fly4", "mob/parrot/fly5", "mob/parrot/fly6", "mob/parrot/fly7", "mob/parrot/fly8", "mob/parrot/hurt1", "mob/parrot/hurt2", "mob/parrot/idle1", "mob/parrot/idle2", "mob/parrot/idle3", "mob/parrot/idle4", "mob/parrot/idle5", "mob/parrot/idle6", "mob/parrot/step1", "mob/parrot/step2", "mob/parrot/step3", "mob/parrot/step4", "mob/parrot/step5", "note/bell", "note/flute", "note/guitar", "note/harp2", "note/icechime", "note/xylobone", "ui/toast/challenge_complete", "ui/toast/in", "ui/toast/out"], "1.10.2": ["block/shulker_box/close", "block/shulker_box/open", "fireworks/largeblast_far1", "fireworks/largeblast1", "item/bottle/empty1", "item/bottle/empty2", "item/totem/use_totem", "mob/evocation_illager/cast1", "mob/evocation_illager/cast2", "mob/evocation_illager/death1", "mob/evocation_illager/death2", "mob/evocation_illager/fangs", "mob/evocation_illager/hurt1", "mob/evocation_illager/hurt2", "mob/evocation_illager/idle1", "mob/evocation_illager/idle2", "mob/evocation_illager/idle3", "mob/evocation_illager/idle4", "mob/evocation_illager/prepare_attack1", "mob/evocation_illager/prepare_attack2", "mob/evocation_illager/prepare_summon", "mob/evocation_illager/prepare_wololo", "mob/llama/angry1", "mob/llama/death1", "mob/llama/death2", "mob/llama/eat1", "mob/llama/eat2", "mob/llama/eat3", "mob/llama/hurt1", "mob/llama/hurt2", "mob/llama/hurt3", "mob/llama/idle1", "mob/llama/idle2", "mob/llama/idle3", "mob/llama/idle4", "mob/llama/idle5", "mob/llama/spit1", "mob/llama/spit2", "mob/llama/step1", "mob/llama/step2", "mob/llama/step3", "mob/llama/step4", "mob/llama/step5", "mob/llama/swag", "mob/vex/charge1", "mob/vex/charge2", "mob/vex/charge3", "mob/vex/death1", "mob/vex/death2", "mob/vex/hurt1", "mob/vex/hurt2", "mob/vex/idle1", "mob/vex/idle2", "mob/vex/idle3", "mob/vex/idle4", "mob/vindication_illager/death1", "mob/vindication_illager/death2", "mob/vindication_illager/hurt1", "mob/vindication_illager/hurt2", "mob/vindication_illager/hurt3", "mob/vindication_illager/idle1", "mob/vindication_illager/idle2", "mob/vindication_illager/idle3", "mob/vindication_illager/idle4", "mob/vindication_illager/idle5", "mob/wither_skeleton/death1", "mob/wither_skeleton/death2", "mob/wither_skeleton/hurt1", "mob/wither_skeleton/hurt2", "mob/wither_skeleton/hurt3", "mob/wither_skeleton/hurt4", "mob/wither_skeleton/idle1", "mob/wither_skeleton/idle2", "mob/wither_skeleton/idle3", "mob/wither_skeleton/step1", "mob/wither_skeleton/step2", "mob/wither_skeleton/step3", "mob/wither_skeleton/step4", "mob/zombie_villager/death", "mob/zombie_villager/hurt1", "mob/zombie_villager/hurt2", "mob/zombie_villager/say1", "mob/zombie_villager/say2", "mob/zombie_villager/say3"], "1.9.4": ["ambient/cave/cave15", "ambient/cave/cave16", "block/enchantment_table/enchant1", "block/enchantment_table/enchant2", "block/enchantment_table/enchant3", "block/enderchest/close", "block/enderchest/open", "mob/husk/death1", "mob/husk/death2", "mob/husk/hurt1", "mob/husk/hurt2", "mob/husk/idle1", "mob/husk/idle2", "mob/husk/idle3", "mob/husk/step1", "mob/husk/step2", "mob/husk/step3", "mob/husk/step4", "mob/husk/step5", "mob/polarbear_baby/idle1", "mob/polarbear_baby/idle2", "mob/polarbear_baby/idle3", "mob/polarbear_baby/idle4", "mob/polarbear/death1", "mob/polarbear/death2", "mob/polarbear/death3", "mob/polarbear/hurt1", "mob/polarbear/hurt2", "mob/polarbear/hurt3", "mob/polarbear/hurt4", "mob/polarbear/idle1", "mob/polarbear/idle2", "mob/polarbear/idle3", "mob/polarbear/idle4", "mob/polarbear/step1", "mob/polarbear/step2", "mob/polarbear/step3", "mob/polarbear/step4", "mob/polarbear/warning1", "mob/polarbear/warning2", "mob/polarbear/warning3", "mob/stray/death1", "mob/stray/death2", "mob/stray/hurt1", "mob/stray/hurt2", "mob/stray/hurt3", "mob/stray/hurt4", "mob/stray/idle1", "mob/stray/idle2", "mob/stray/idle3", "mob/stray/idle4", "mob/stray/step1", "mob/stray/step2", "mob/stray/step3", "mob/stray/step4"], "1.8.9": ["ambient/cave/cave14", "ambient/weather/rain5", "ambient/weather/rain6", "ambient/weather/rain7", "ambient/weather/rain8", "block/brewing_stand/brew1", "block/brewing_stand/brew2", "block/chest/close", "block/chest/close2", "block/chest/close3", "block/chest/open", "block/chorus_flower/death1", "block/chorus_flower/death2", "block/chorus_flower/death3", "block/chorus_flower/grow1", "block/chorus_flower/grow2", "block/chorus_flower/grow3", "block/chorus_flower/grow4", "block/fence_gate/close1", "block/fence_gate/close2", "block/fence_gate/open1", "block/fence_gate/open2", "block/furnace/fire_crackle1", "block/furnace/fire_crackle2", "block/furnace/fire_crackle3", "block/furnace/fire_crackle4", "block/furnace/fire_crackle5", "block/iron_door/close1", "block/iron_door/close2", "block/iron_door/close3", "block/iron_door/close4", "block/iron_door/open1", "block/iron_door/open2", "block/iron_door/open3", "block/iron_door/open4", "block/iron_trapdoor/close1", "block/iron_trapdoor/close2", "block/iron_trapdoor/close3", "block/iron_trapdoor/close4", "block/iron_trapdoor/open1", "block/iron_trapdoor/open2", "block/iron_trapdoor/open3", "block/iron_trapdoor/open4", "block/waterlily/place1", "block/waterlily/place2", "block/waterlily/place3", "block/waterlily/place4", "block/wooden_door/close", "block/wooden_door/close2", "block/wooden_door/close3", "block/wooden_door/close4", "block/wooden_door/open", "block/wooden_door/open2", "block/wooden_door/open3", "block/wooden_door/open4", "block/wooden_trapdoor/close1", "block/wooden_trapdoor/close2", "block/wooden_trapdoor/close3", "block/wooden_trapdoor/open1", "block/wooden_trapdoor/open2", "block/wooden_trapdoor/open3", "block/wooden_trapdoor/open4", "block/wooden_trapdoor/open5", "enchant/thorns/hit1", "enchant/thorns/hit2", "enchant/thorns/hit3", "enchant/thorns/hit4", "entity/armorstand/break1", "entity/armorstand/break2", "entity/armorstand/break3", "entity/armorstand/break4", "entity/armorstand/hit1", "entity/armorstand/hit2", "entity/armorstand/hit3", "entity/armorstand/hit4", "entity/cow/milk1", "entity/cow/milk2", "entity/cow/milk3", "entity/guardian/ambient1", "entity/guardian/ambient2", "entity/guardian/ambient3", "entity/guardian/ambient4", "entity/horse/eat1", "entity/horse/eat2", "entity/horse/eat3", "entity/horse/eat4", "entity/horse/eat5", "entity/itemframe/add_item1", "entity/itemframe/add_item2", "entity/itemframe/add_item3", "entity/itemframe/add_item4", "entity/itemframe/break1", "entity/itemframe/break2", "entity/itemframe/break3", "entity/itemframe/place1", "entity/itemframe/place2", "entity/itemframe/place3", "entity/itemframe/place4", "entity/itemframe/remove_item1", "entity/itemframe/remove_item2", "entity/itemframe/remove_item3", "entity/itemframe/remove_item4", "entity/itemframe/rotate_item1", "entity/itemframe/rotate_item2", "entity/itemframe/rotate_item3", "entity/itemframe/rotate_item4", "entity/leashknot/break1", "entity/leashknot/break2", "entity/leashknot/break3", "entity/leashknot/place1", "entity/leashknot/place2", "entity/leashknot/place3", "entity/painting/break1", "entity/painting/break2", "entity/painting/break3", "entity/painting/place1", "entity/painting/place2", "entity/painting/place3", "entity/painting/place4", "entity/player/attack/crit1", "entity/player/attack/crit2", "entity/player/attack/crit3", "entity/player/attack/knockback1", "entity/player/attack/knockback2", "entity/player/attack/knockback3", "entity/player/attack/knockback4", "entity/player/attack/strong1", "entity/player/attack/strong2", "entity/player/attack/strong3", "entity/player/attack/strong4", "entity/player/attack/strong5", "entity/player/attack/strong6", "entity/player/attack/sweep1", "entity/player/attack/sweep2", "entity/player/attack/sweep3", "entity/player/attack/sweep4", "entity/player/attack/sweep5", "entity/player/attack/sweep6", "entity/player/attack/sweep7", "entity/player/attack/weak1", "entity/player/attack/weak2", "entity/player/attack/weak3", "entity/player/attack/weak4", "entity/rabbit/attack1", "entity/rabbit/attack2", "entity/rabbit/attack3", "entity/rabbit/attack4", "entity/shulker_bullet/hit1", "entity/shulker_bullet/hit2", "entity/shulker_bullet/hit3", "entity/shulker_bullet/hit4", "entity/shulker/ambient1", "entity/shulker/ambient2", "entity/shulker/ambient3", "entity/shulker/ambient4", "entity/shulker/ambient5", "entity/shulker/ambient6", "entity/shulker/ambient7", "entity/shulker/close1", "entity/shulker/close2", "entity/shulker/close3", "entity/shulker/close4", "entity/shulker/close5", "entity/shulker/death1", "entity/shulker/death2", "entity/shulker/death3", "entity/shulker/death4", "entity/shulker/hurt_closed1", "entity/shulker/hurt_closed2", "entity/shulker/hurt_closed3", "entity/shulker/hurt_closed4", "entity/shulker/hurt_closed5", "entity/shulker/hurt1", "entity/shulker/hurt2", "entity/shulker/hurt3", "entity/shulker/hurt4", "entity/shulker/open1", "entity/shulker/open2", "entity/shulker/open3", "entity/shulker/open4", "entity/shulker/open5", "entity/shulker/shoot1", "entity/shulker/shoot2", "entity/shulker/shoot3", "entity/shulker/shoot4", "entity/snowman/death1", "entity/snowman/death2", "entity/snowman/death3", "entity/snowman/hurt1", "entity/snowman/hurt2", "entity/snowman/hurt3", "entity/squid/ambient1", "entity/squid/ambient2", "entity/squid/ambient3", "entity/squid/ambient4", "entity/squid/ambient5", "entity/squid/death1", "entity/squid/death2", "entity/squid/death3", "entity/squid/hurt1", "entity/squid/hurt2", "entity/squid/hurt3", "entity/squid/hurt4", "entity/witch/ambient1", "entity/witch/ambient2", "entity/witch/ambient3", "entity/witch/ambient4", "entity/witch/ambient5", "entity/witch/death1", "entity/witch/death2", "entity/witch/death3", "entity/witch/drink1", "entity/witch/drink2", "entity/witch/drink3", "entity/witch/drink4", "entity/witch/hurt1", "entity/witch/hurt2", "entity/witch/hurt3", "entity/witch/throw1", "entity/witch/throw2", "entity/witch/throw3", "item/armor/equip_chain1", "item/armor/equip_chain2", "item/armor/equip_chain3", "item/armor/equip_chain4", "item/armor/equip_chain5", "item/armor/equip_chain6", "item/armor/equip_diamond1", "item/armor/equip_diamond2", "item/armor/equip_diamond3", "item/armor/equip_diamond4", "item/armor/equip_diamond5", "item/armor/equip_diamond6", "item/armor/equip_generic1", "item/armor/equip_generic2", "item/armor/equip_generic3", "item/armor/equip_generic4", "item/armor/equip_generic5", "item/armor/equip_generic6", "item/armor/equip_gold1", "item/armor/equip_gold2", "item/armor/equip_gold3", "item/armor/equip_gold4", "item/armor/equip_gold5", "item/armor/equip_gold6", "item/armor/equip_iron1", "item/armor/equip_iron2", "item/armor/equip_iron3", "item/armor/equip_iron4", "item/armor/equip_iron5", "item/armor/equip_iron6", "item/armor/equip_leather1", "item/armor/equip_leather2", "item/armor/equip_leather3", "item/armor/equip_leather4", "item/armor/equip_leather5", "item/armor/equip_leather6", "item/bottle/fill_dragonbreath1", "item/bottle/fill_dragonbreath2", "item/bottle/fill1", "item/bottle/fill2", "item/bottle/fill3", "item/bottle/fill4", "item/bucket/empty_lava1", "item/bucket/empty_lava2", "item/bucket/empty_lava3", "item/bucket/empty1", "item/bucket/empty2", "item/bucket/empty3", "item/bucket/fill_lava1", "item/bucket/fill_lava2", "item/bucket/fill_lava3", "item/bucket/fill1", "item/bucket/fill2", "item/bucket/fill3", "item/elytra/elytra_loop", "item/hoe/till1", "item/hoe/till2", "item/hoe/till3", "item/hoe/till4", "item/shield/block1", "item/shield/block2", "item/shield/block3", "item/shield/block4", "item/shield/block5", "item/shovel/flatten1", "item/shovel/flatten2", "item/shovel/flatten3", "item/shovel/flatten4", "ambient/weather/rain1", "ambient/weather/rain2", "ambient/weather/rain3", "ambient/weather/rain4", "mob/guardian/attack_loop"] }; - window.allSoundsMeta = { "format": "mp3", "baseUrl": "https://raw.githubusercontent.com/dimaka-love/temp-mc-sounds/sounds/sounds/" }; - })(); diff --git a/src/api/mcStatusApi.ts b/src/api/mcStatusApi.ts new file mode 100644 index 00000000..8ac429dd --- /dev/null +++ b/src/api/mcStatusApi.ts @@ -0,0 +1,64 @@ +globalThis.resolveDnsFallback = async (hostname: string) => { + const response = await fetchServerStatus(hostname) + return response?.raw.srv_record ?? undefined +} + +export const isServerValid = (ip: string) => { + const isInLocalNetwork = ip.startsWith('192.168.') || + ip.startsWith('10.') || + ip.startsWith('172.') || + ip.startsWith('127.') || + ip.startsWith('localhost') || + ip.startsWith(':') + const VALID_IP_OR_DOMAIN = ip.includes('.') + + return !isInLocalNetwork && VALID_IP_OR_DOMAIN +} + +export async function fetchServerStatus (ip: string, signal?: AbortSignal, versionOverride?: string) { + if (!isServerValid(ip)) return + + const response = await fetch(`https://api.mcstatus.io/v2/status/java/${ip}`, { signal }) + const data: ServerResponse = await response.json() + const versionClean = data.version?.name_raw.replace(/^[^\d.]+/, '') + + return { + formattedText: data.motd?.raw ?? '', + textNameRight: data.online ? + `${versionOverride ?? versionClean} ${data.players?.online ?? '??'}/${data.players?.max ?? '??'}` : + '', + icon: data.icon, + offline: !data.online, + raw: data + } +} + +export type ServerResponse = { + online: boolean + version?: { + name_raw: string + } + // display tooltip + players?: { + online: number + max: number + list: Array<{ + name_raw: string + name_clean: string + }> + } + icon?: string + motd?: { + raw: string + } + // todo circle error icon + mods?: Array<{ name: string, version: string }> + // todo display via hammer icon + software?: string + plugins?: Array<{ name, version }> + // port?: number + srv_record?: { + host: string + port: number + } +} diff --git a/src/appConfig.ts b/src/appConfig.ts new file mode 100644 index 00000000..c29d74e8 --- /dev/null +++ b/src/appConfig.ts @@ -0,0 +1,109 @@ +import { defaultsDeep } from 'lodash' +import { disabledSettings, options, qsOptions } from './optionsStorage' +import { miscUiState } from './globalState' +import { setLoadingScreenStatus } from './appStatus' +import { setStorageDataOnAppConfigLoad } from './react/appStorageProvider' +import { customKeymaps, updateBinds } from './controls' + +export type CustomAction = { + readonly type: string + readonly input: readonly any[] +} + +export type ActionType = string | CustomAction + +export type ActionHoldConfig = { + readonly command: ActionType + readonly longPressAction?: ActionType + readonly duration?: number + readonly threshold?: number +} + +export type MobileButtonConfig = { + readonly label?: string + readonly icon?: string + readonly action?: ActionType + readonly actionHold?: ActionType | ActionHoldConfig + readonly iconStyle?: React.CSSProperties +} + +export type AppConfig = { + // defaultHost?: string + // defaultHostSave?: string + defaultProxy?: string + // defaultProxySave?: string + // defaultVersion?: string + peerJsServer?: string + peerJsServerFallback?: string + promoteServers?: Array<{ ip, description, name?, version?, }> + mapsProvider?: string + + appParams?: Record // query string params + rightSideText?: string + + defaultSettings?: Record + forceSettings?: Record + // hideSettings?: Record + allowAutoConnect?: boolean + splashText?: string + splashTextFallback?: string + pauseLinks?: Array>> + mobileButtons?: MobileButtonConfig[] + keybindings?: Record + defaultLanguage?: string + displayLanguageSelector?: boolean + supportedLanguages?: string[] + showModsButton?: boolean + defaultUsername?: string + skinTexturesProxy?: string + alwaysReconnectButton?: boolean + reportBugButtonWithReconnect?: boolean + disabledCommands?: string[] // Array of command IDs to disable (e.g. ['general.jump', 'general.chat']) +} + +export const loadAppConfig = (appConfig: AppConfig) => { + + if (miscUiState.appConfig) { + Object.assign(miscUiState.appConfig, appConfig) + } else { + miscUiState.appConfig = appConfig + } + + if (appConfig.forceSettings) { + for (const [key, value] of Object.entries(appConfig.forceSettings)) { + if (value) { + disabledSettings.value.add(key) + // since the setting is forced, we need to set it to that value + if (appConfig.defaultSettings && key in appConfig.defaultSettings && !qsOptions[key]) { + options[key] = appConfig.defaultSettings[key] + } + } else { + disabledSettings.value.delete(key) + } + } + } + // todo apply defaultSettings to defaults even if not forced in case of remote config + + if (appConfig.keybindings) { + Object.assign(customKeymaps, defaultsDeep(appConfig.keybindings, customKeymaps)) + updateBinds(customKeymaps) + } + + appViewer?.appConfigUdpate() + + setStorageDataOnAppConfigLoad(appConfig) +} + +export const isBundledConfigUsed = !!process.env.INLINED_APP_CONFIG + +if (isBundledConfigUsed) { + loadAppConfig(process.env.INLINED_APP_CONFIG as AppConfig ?? {}) +} else { + void window.fetch('config.json').then(async res => res.json()).then(c => c, (error) => { + // console.warn('Failed to load optional app config.json', error) + // return {} + setLoadingScreenStatus('Failed to load app config.json', true) + }).then((config: AppConfig) => { + loadAppConfig(config) + }) +} diff --git a/src/appParams.ts b/src/appParams.ts new file mode 100644 index 00000000..4c8ca186 --- /dev/null +++ b/src/appParams.ts @@ -0,0 +1,121 @@ +import type { AppConfig } from './appConfig' +import { miscUiState } from './globalState' + +const qsParams = new URLSearchParams(window.location?.search ?? '') + +export type AppQsParams = { + // AddServerOrConnect.tsx params + ip?: string + name?: string + version?: string + proxy?: string + username?: string + lockConnect?: string + autoConnect?: string + alwaysReconnect?: string + // googledrive.ts params + state?: string + // ServersListProvider.tsx params + serversList?: string + // Map and texture params + texturepack?: string + map?: string + mapDirBaseUrl?: string + mapDirGuess?: string + // Singleplayer params + singleplayer?: string + sp?: string + loadSave?: string + // Server params + reconnect?: string + server?: string + // Peer connection params + connectPeer?: string + peerVersion?: string + // UI params + modal?: string + viewerConnect?: string + // Map version param + mapVersion?: string + // Command params + command?: string + // Misc params + suggest_save?: string + noPacketsValidation?: string + testCrashApp?: string + onlyConnect?: string + connectText?: string + freezeSettings?: string + testIosCrash?: string + addPing?: string + + // Replay params + replayFilter?: string + replaySpeed?: string + replayFileUrl?: string + replayValidateClient?: string + replayStopOnError?: string + replaySkipMissingOnTimeout?: string + replayPacketsSenderDelay?: string + + // Benchmark params + openBenchmark?: string + renderDistance?: string + downloadBenchmark?: string + benchmarkMapZipUrl?: string + benchmarkPosition?: string +} + +export type AppQsParamsArray = { + mapDir?: string[] + setting?: string[] + serverSetting?: string[] + command?: string[] +} + +type AppQsParamsArrayTransformed = { + [k in keyof AppQsParamsArray]: string[] +} + +globalThis.process ??= {} as any +const initialAppConfig = process?.env?.INLINED_APP_CONFIG as AppConfig ?? {} + +export const appQueryParams = new Proxy({} as AppQsParams, { + get (target, property) { + if (typeof property !== 'string') { + return undefined + } + const qsParam = qsParams.get(property) + if (qsParam) return qsParam + return miscUiState.appConfig?.appParams?.[property] + }, +}) + +export const appQueryParamsArray = new Proxy({} as AppQsParamsArrayTransformed, { + get (target, property) { + if (typeof property !== 'string') { + return null + } + const qsParam = qsParams.getAll(property) + if (qsParam.length) return qsParam + return miscUiState.appConfig?.appParams?.[property] ?? [] + }, +}) + +export function updateQsParam (name: keyof AppQsParams, value: string | undefined) { + const url = new URL(window.location.href) + if (value) { + url.searchParams.set(name, value) + } else { + url.searchParams.delete(name) + } + window.history.replaceState({}, '', url.toString()) +} + +// Helper function to check if a specific query parameter exists +export const hasQueryParam = (param: keyof AppQsParams) => qsParams.has(param) + +// Helper function to get all query parameters as a URLSearchParams object +export const getRawQueryParams = () => qsParams; + +(globalThis as any).debugQueryParams = Object.fromEntries(qsParams.entries()) diff --git a/src/appStatus.ts b/src/appStatus.ts new file mode 100644 index 00000000..101714f5 --- /dev/null +++ b/src/appStatus.ts @@ -0,0 +1,41 @@ +import { resetStateAfterDisconnect } from './browserfs' +import { hideModal, activeModalStack, showModal, miscUiState } from './globalState' +import { appStatusState, resetAppStatusState } from './react/AppStatusProvider' + +let ourLastStatus: string | undefined = '' +export const setLoadingScreenStatus = function (status: string | undefined | null, isError = false, hideDots = false, fromFlyingSquid = false, minecraftJsonMessage?: Record) { + if (typeof status === 'string') status = window.translateText?.(status) ?? status + // null can come from flying squid, should restore our last status + if (status === null) { + status = ourLastStatus + } else if (!fromFlyingSquid) { + ourLastStatus = status + } + fromFlyingSquid = false + + if (status === undefined) { + appStatusState.status = '' + + hideModal({ reactType: 'app-status' }, {}, { force: true }) + return + } + + if (!activeModalStack.some(x => x.reactType === 'app-status')) { + // just showing app status + resetAppStatusState() + } + showModal({ reactType: 'app-status' }) + if (appStatusState.isError) { + return + } + appStatusState.hideDots = hideDots + appStatusState.isError = isError + appStatusState.lastStatus = isError ? appStatusState.status : '' + appStatusState.status = status + appStatusState.minecraftJsonMessage = minecraftJsonMessage ?? null + + if (isError && miscUiState.gameLoaded) { + resetStateAfterDisconnect() + } +} +globalThis.setLoadingScreenStatus = setLoadingScreenStatus diff --git a/src/appViewer.ts b/src/appViewer.ts new file mode 100644 index 00000000..628d11b4 --- /dev/null +++ b/src/appViewer.ts @@ -0,0 +1,354 @@ +import { WorldDataEmitter, WorldDataEmitterWorker } from 'renderer/viewer/lib/worldDataEmitter' +import { getInitialPlayerState, PlayerStateRenderer, PlayerStateReactive } from 'renderer/viewer/lib/basePlayerState' +import { subscribeKey } from 'valtio/utils' +import { defaultWorldRendererConfig, WorldRendererConfig } from 'renderer/viewer/lib/worldrendererCommon' +import { Vec3 } from 'vec3' +import { SoundSystem } from 'renderer/viewer/three/threeJsSound' +import { proxy, subscribe } from 'valtio' +import { getDefaultRendererState } from 'renderer/viewer/baseGraphicsBackend' +import { getSyncWorld } from 'renderer/playground/shared' +import { MaybePromise } from 'contro-max/build/types/store' +import { PANORAMA_VERSION } from 'renderer/viewer/three/panoramaShared' +import { playerState } from './mineflayer/playerState' +import { createNotificationProgressReporter, ProgressReporter } from './core/progressReporter' +import { setLoadingScreenStatus } from './appStatus' +import { activeModalStack, miscUiState } from './globalState' +import { options } from './optionsStorage' +import { ResourcesManager, ResourcesManagerTransferred } from './resourcesManager' +import { watchOptionsAfterWorldViewInit } from './watchOptions' +import { loadMinecraftData } from './connect' +import { reloadChunks } from './utils' +import { displayClientChat } from './botUtils' + +export interface RendererReactiveState { + world: { + chunksLoaded: Set + // chunksTotalNumber: number + heightmaps: Map + allChunksLoaded: boolean + mesherWork: boolean + intersectMedia: { id: string, x: number, y: number } | null + } + renderer: string + preventEscapeMenu: boolean +} +export interface NonReactiveState { + world: { + chunksLoaded: Set + chunksTotalNumber: number + } +} + +export interface GraphicsBackendConfig { + fpsLimit?: number + powerPreference?: 'high-performance' | 'low-power' + statsVisible?: number + sceneBackground: string + timeoutRendering?: boolean +} + +const defaultGraphicsBackendConfig: GraphicsBackendConfig = { + fpsLimit: undefined, + powerPreference: undefined, + sceneBackground: 'lightblue', + timeoutRendering: false +} + +export interface GraphicsInitOptions { + resourcesManager: ResourcesManagerTransferred + config: GraphicsBackendConfig + rendererSpecificSettings: S + + callbacks: { + displayCriticalError: (error: Error) => void + setRendererSpecificSettings: (key: string, value: any) => void + + fireCustomEvent: (eventName: string, ...args: any[]) => void + } +} + +export interface DisplayWorldOptions { + version: string + worldView: WorldDataEmitterWorker + inWorldRenderingConfig: WorldRendererConfig + playerStateReactive: PlayerStateReactive + rendererState: RendererReactiveState + nonReactiveState: NonReactiveState +} + +export type GraphicsBackendLoader = ((options: GraphicsInitOptions) => MaybePromise) & { + id: string +} + +// no sync methods +export interface GraphicsBackend { + id: string + displayName?: string + startPanorama: () => void + // prepareResources: (version: string, progressReporter: ProgressReporter) => Promise + startWorld: (options: DisplayWorldOptions) => Promise | void + disconnect: () => void + setRendering: (rendering: boolean) => void + getDebugOverlay?: () => Record + updateCamera: (pos: Vec3 | null, yaw: number, pitch: number) => void + setRoll?: (roll: number) => void + soundSystem: SoundSystem | undefined + + backendMethods: Record | undefined +} + +export class AppViewer { + waitBackendLoadPromises = [] as Array> + + resourcesManager = new ResourcesManager() + worldView: WorldDataEmitter | undefined + readonly config: GraphicsBackendConfig = { + ...defaultGraphicsBackendConfig, + powerPreference: options.gpuPreference === 'default' ? undefined : options.gpuPreference + } + backend?: GraphicsBackend + backendLoader?: GraphicsBackendLoader + private currentState?: { + method: string + args: any[] + } + currentDisplay = null as 'menu' | 'world' | null + inWorldRenderingConfig: WorldRendererConfig = proxy(defaultWorldRendererConfig) + lastCamUpdate = 0 + playerState = playerState + rendererState = getDefaultRendererState().reactive + nonReactiveState: NonReactiveState = getDefaultRendererState().nonReactive + worldReady: Promise + private resolveWorldReady: () => void + + constructor () { + this.disconnectBackend() + } + + async loadBackend (loader: GraphicsBackendLoader) { + if (this.backend) { + this.disconnectBackend() + } + + await Promise.all(this.waitBackendLoadPromises) + this.waitBackendLoadPromises = [] + + this.backendLoader = loader + const rendererSpecificSettings = {} as Record + const rendererSettingsKey = `renderer.${this.backendLoader?.id}` + for (const key in options) { + if (key.startsWith(rendererSettingsKey)) { + rendererSpecificSettings[key.slice(rendererSettingsKey.length + 1)] = options[key] + } + } + const loaderOptions: GraphicsInitOptions = { // todo! + resourcesManager: this.resourcesManager as ResourcesManagerTransferred, + config: this.config, + callbacks: { + displayCriticalError (error) { + console.error(error) + setLoadingScreenStatus(error.message, true) + }, + setRendererSpecificSettings (key: string, value: any) { + options[`${rendererSettingsKey}.${key}`] = value + }, + fireCustomEvent (eventName, ...args) { + // this.callbacks.fireCustomEvent(eventName, ...args) + } + }, + rendererSpecificSettings, + } + this.backend = await loader(loaderOptions) + + // if (this.resourcesManager.currentResources) { + // void this.prepareResources(this.resourcesManager.currentResources.version, createNotificationProgressReporter()) + // } + + // Execute queued action if exists + if (this.currentState) { + if (this.currentState.method === 'startPanorama') { + this.startPanorama() + } else { + const { method, args } = this.currentState + this.backend[method](...args) + if (method === 'startWorld') { + void this.worldView!.init(bot.entity.position) + // void this.worldView!.init(args[0].playerState.getPosition()) + } + } + } + + // todo + modalStackUpdateChecks() + } + + async startWithBot () { + const renderDistance = miscUiState.singleplayer ? options.renderDistance : options.multiplayerRenderDistance + await this.startWorld(bot.world, renderDistance) + this.worldView!.listenToBot(bot) + } + + appConfigUdpate () { + if (miscUiState.appConfig) { + this.inWorldRenderingConfig.skinTexturesProxy = miscUiState.appConfig.skinTexturesProxy + } + } + + async startWorld (world, renderDistance: number, playerStateSend: PlayerStateRenderer = this.playerState.reactive) { + if (this.currentDisplay === 'world') throw new Error('World already started') + this.currentDisplay = 'world' + const startPosition = bot.entity?.position ?? new Vec3(0, 64, 0) + this.worldView = new WorldDataEmitter(world, renderDistance, startPosition) + this.worldView.panicChunksReload = () => { + if (!options.experimentalClientSelfReload) return + if (process.env.NODE_ENV === 'development') { + displayClientChat(`[client] client panicked due to too long loading time. Soft reloading chunks...`) + } + void reloadChunks() + } + window.worldView = this.worldView + watchOptionsAfterWorldViewInit(this.worldView) + this.appConfigUdpate() + + const displayWorldOptions: DisplayWorldOptions = { + version: this.resourcesManager.currentConfig!.version, + worldView: this.worldView, + inWorldRenderingConfig: this.inWorldRenderingConfig, + playerStateReactive: playerStateSend, + rendererState: this.rendererState, + nonReactiveState: this.nonReactiveState + } + let promise: undefined | Promise + if (this.backend) { + promise = this.backend.startWorld(displayWorldOptions) ?? undefined + // void this.worldView.init(startPosition) + } + this.currentState = { method: 'startWorld', args: [displayWorldOptions] } + + await promise + // Resolve the promise after world is started + this.resolveWorldReady() + return !!promise + } + + resetBackend (cleanState = false) { + this.disconnectBackend(cleanState) + if (this.backendLoader) { + void this.loadBackend(this.backendLoader) + } + } + + startPanorama () { + if (this.currentDisplay === 'menu') return + if (options.disableAssets) return + if (this.backend && !hasAppStatus()) { + this.currentDisplay = 'menu' + if (process.env.SINGLE_FILE_BUILD_MODE) { + void loadMinecraftData(PANORAMA_VERSION).then(() => { + this.backend?.startPanorama() + }) + } else { + this.backend.startPanorama() + } + } + this.currentState = { method: 'startPanorama', args: [] } + } + + // async prepareResources (version: string, progressReporter: ProgressReporter) { + // if (this.backend) { + // await this.backend.prepareResources(version, progressReporter) + // } + // } + + destroyAll () { + this.disconnectBackend() + this.resourcesManager.destroy() + } + + disconnectBackend (cleanState = false) { + if (cleanState) { + this.currentState = undefined + this.currentDisplay = null + this.worldView = undefined + } + if (this.backend) { + this.backend.disconnect() + this.backend = undefined + } + this.currentDisplay = null + const { promise, resolve } = Promise.withResolvers() + this.worldReady = promise + this.resolveWorldReady = resolve + this.rendererState = proxy(getDefaultRendererState().reactive) + this.nonReactiveState = getDefaultRendererState().nonReactive + // this.queuedDisplay = undefined + } + + get utils () { + return { + async waitingForChunks () { + if (this.backend?.worldState.allChunksLoaded) return + return new Promise((resolve) => { + const interval = setInterval(() => { + if (this.backend?.worldState.allChunksLoaded) { + clearInterval(interval) + resolve(true) + } + }, 100) + }) + } + } + } +} + +// do not import this. Use global appViewer instead (without window prefix). +export const appViewer = new AppViewer() +window.appViewer = appViewer + +const initialMenuStart = async () => { + if (appViewer.currentDisplay === 'world') { + appViewer.resetBackend(true) + } + const demo = new URLSearchParams(window.location.search).get('demo') + if (!demo) { + appViewer.startPanorama() + return + } + + // const version = '1.18.2' + const version = '1.21.4' + const { loadMinecraftData } = await import('./connect') + const { getSyncWorld } = await import('../renderer/playground/shared') + await loadMinecraftData(version) + const world = getSyncWorld(version) + world.setBlockStateId(new Vec3(0, 64, 0), loadedData.blocksByName.water.defaultState) + world.setBlockStateId(new Vec3(1, 64, 0), loadedData.blocksByName.water.defaultState) + world.setBlockStateId(new Vec3(1, 64, 1), loadedData.blocksByName.water.defaultState) + world.setBlockStateId(new Vec3(0, 64, 1), loadedData.blocksByName.water.defaultState) + world.setBlockStateId(new Vec3(-1, 64, -1), loadedData.blocksByName.water.defaultState) + world.setBlockStateId(new Vec3(-1, 64, 0), loadedData.blocksByName.water.defaultState) + world.setBlockStateId(new Vec3(0, 64, -1), loadedData.blocksByName.water.defaultState) + appViewer.resourcesManager.currentConfig = { version } + appViewer.playerState.reactive = getInitialPlayerState() + await appViewer.resourcesManager.updateAssetsData({}) + await appViewer.startWorld(world, 3) + appViewer.backend!.updateCamera(new Vec3(0, 65.7, 0), 0, -Math.PI / 2) // Y+1 and pitch = PI/2 to look down + void appViewer.worldView!.init(new Vec3(0, 64, 0)) +} +window.initialMenuStart = initialMenuStart + +const hasAppStatus = () => activeModalStack.some(m => m.reactType === 'app-status') + +const modalStackUpdateChecks = () => { + // maybe start panorama + if (!miscUiState.gameLoaded && !hasAppStatus()) { + void initialMenuStart() + } + + if (appViewer.backend) { + appViewer.backend.setRendering(!hasAppStatus()) + } + + appViewer.inWorldRenderingConfig.foreground = activeModalStack.length === 0 +} +subscribe(activeModalStack, modalStackUpdateChecks) diff --git a/src/appViewerLoad.ts b/src/appViewerLoad.ts new file mode 100644 index 00000000..53260662 --- /dev/null +++ b/src/appViewerLoad.ts @@ -0,0 +1,51 @@ +import { subscribeKey } from 'valtio/utils' +import createGraphicsBackend from 'renderer/viewer/three/graphicsBackend' +import { options } from './optionsStorage' +import { appViewer } from './appViewer' +import { miscUiState } from './globalState' +import { watchOptionsAfterViewerInit } from './watchOptions' +import { showNotification } from './react/NotificationProvider' + +const backends = [ + createGraphicsBackend, +] +const loadBackend = async () => { + let backend = backends.find(backend => backend.id === options.activeRenderer) + if (!backend) { + showNotification(`No backend found for renderer ${options.activeRenderer}`, `Falling back to ${backends[0].id}`, true) + backend = backends[0] + } + await appViewer.loadBackend(backend) +} +window.loadBackend = loadBackend +if (process.env.SINGLE_FILE_BUILD_MODE) { + const unsub = subscribeKey(miscUiState, 'fsReady', () => { + if (miscUiState.fsReady) { + // don't do it earlier to load fs and display menu faster + void loadBackend() + unsub() + } + }) +} else { + setTimeout(() => { + void loadBackend() + }) +} + +const animLoop = () => { + for (const fn of beforeRenderFrame) fn() + requestAnimationFrame(animLoop) +} +requestAnimationFrame(animLoop) + +watchOptionsAfterViewerInit() + +// reset backend when renderer changes + +subscribeKey(options, 'activeRenderer', async () => { + if (appViewer.currentDisplay === 'world' && bot) { + appViewer.resetBackend(true) + await loadBackend() + void appViewer.startWithBot() + } +}) diff --git a/src/basicSounds.ts b/src/basicSounds.ts new file mode 100644 index 00000000..54af0d35 --- /dev/null +++ b/src/basicSounds.ts @@ -0,0 +1,163 @@ +import { subscribeKey } from 'valtio/utils' +import { options } from './optionsStorage' +import { isCypress } from './standaloneUtils' +import { reportWarningOnce } from './utils' + +let audioContext: AudioContext +const sounds: Record = {} + +// Track currently playing sounds and their gain nodes +const activeSounds: Array<{ + source: AudioBufferSourceNode; + gainNode: GainNode; + volumeMultiplier: number; + isMusic: boolean; +}> = [] +window.activeSounds = activeSounds + +// load as many resources on page load as possible instead on demand as user can disable internet connection after he thinks the page is loaded +const loadingSounds = [] as string[] +const convertedSounds = [] as string[] + +export async function loadSound (path: string, contents = path) { + if (loadingSounds.includes(path)) return true + loadingSounds.push(path) + + try { + audioContext ??= new window.AudioContext() + + const res = await window.fetch(contents) + if (!res.ok) { + const error = `Failed to load sound ${path}` + if (isCypress()) throw new Error(error) + else console.warn(error) + return + } + const arrayBuffer = await res.arrayBuffer() + + // Decode the audio data immediately + const audioBuffer = await audioContext.decodeAudioData(arrayBuffer) + sounds[path] = audioBuffer + convertedSounds.push(path) // Mark as converted immediately + + loadingSounds.splice(loadingSounds.indexOf(path), 1) + } catch (err) { + console.warn(`Failed to load sound ${path}:`, err) + loadingSounds.splice(loadingSounds.indexOf(path), 1) + if (isCypress()) throw err + } +} + +export const loadOrPlaySound = async (url, soundVolume = 1, loadTimeout = options.remoteSoundsLoadTimeout, loop = false, isMusic = false) => { + const soundBuffer = sounds[url] + if (!soundBuffer) { + const start = Date.now() + const cancelled = await loadSound(url) + if (cancelled || Date.now() - start > loadTimeout) return + } + + return playSound(url, soundVolume, loop, isMusic) +} + +export async function playSound (url, soundVolume = 1, loop = false, isMusic = false) { + const volume = soundVolume * (options.volume / 100) * (isMusic ? options.musicVolume / 100 : 1) + + if (!volume) return + + try { + audioContext ??= new window.AudioContext() + } catch (err) { + reportWarningOnce('audioContext', 'Failed to create audio context. Some sounds will not play') + return + } + + const soundBuffer = sounds[url] + if (!soundBuffer) { + console.warn(`Sound ${url} not loaded yet`) + return + } + + const gainNode = audioContext.createGain() + const source = audioContext.createBufferSource() + source.buffer = soundBuffer + source.loop = loop + source.connect(gainNode) + gainNode.connect(audioContext.destination) + gainNode.gain.value = volume + source.start(0) + + // Add to active sounds + activeSounds.push({ source, gainNode, volumeMultiplier: soundVolume, isMusic }) + + const callbacks = [] as Array<() => void> + source.onended = () => { + // Remove from active sounds when finished + const index = activeSounds.findIndex(s => s.source === source) + if (index !== -1) activeSounds.splice(index, 1) + + for (const callback of callbacks) { + callback() + } + callbacks.length = 0 + } + + return { + onEnded (callback: () => void) { + callbacks.push(callback) + }, + stop () { + try { + source.stop() + // Remove from active sounds + const index = activeSounds.findIndex(s => s.source === source) + if (index !== -1) activeSounds.splice(index, 1) + } catch (err) { + console.warn('Failed to stop sound:', err) + } + }, + gainNode, + } +} + +export function stopAllSounds () { + for (const { source } of activeSounds) { + try { + source.stop() + } catch (err) { + console.warn('Failed to stop sound:', err) + } + } + activeSounds.length = 0 +} + +export function stopSound (url: string) { + const soundIndex = activeSounds.findIndex(s => s.source.buffer === sounds[url]) + if (soundIndex !== -1) { + const { source } = activeSounds[soundIndex] + try { + source.stop() + } catch (err) { + console.warn('Failed to stop sound:', err) + } + activeSounds.splice(soundIndex, 1) + } +} + +export function changeVolumeOfCurrentlyPlayingSounds (newVolume: number, newMusicVolume: number) { + const normalizedVolume = newVolume / 100 + for (const { gainNode, volumeMultiplier, isMusic } of activeSounds) { + try { + gainNode.gain.value = normalizedVolume * volumeMultiplier * (isMusic ? newMusicVolume / 100 : 1) + } catch (err) { + console.warn('Failed to change sound volume:', err) + } + } +} + +subscribeKey(options, 'volume', () => { + changeVolumeOfCurrentlyPlayingSounds(options.volume, options.musicVolume) +}) + +subscribeKey(options, 'musicVolume', () => { + changeVolumeOfCurrentlyPlayingSounds(options.volume, options.musicVolume) +}) diff --git a/src/benchmark.ts b/src/benchmark.ts new file mode 100644 index 00000000..42603a10 --- /dev/null +++ b/src/benchmark.ts @@ -0,0 +1,311 @@ +import { Vec3 } from 'vec3' +import { WorldRendererCommon } from 'renderer/viewer/lib/worldrendererCommon' +import prettyBytes from 'pretty-bytes' +import { subscribe } from 'valtio' +import { downloadAndOpenMapFromUrl } from './downloadAndOpenFile' +import { activeModalStack, miscUiState } from './globalState' +import { disabledSettings, options } from './optionsStorage' +import { BenchmarkAdapterInfo, getAllInfoLines } from './benchmarkAdapter' +import { appQueryParams } from './appParams' +import { getScreenRefreshRate } from './utils' +import { setLoadingScreenStatus } from './appStatus' + +const DEFAULT_RENDER_DISTANCE = 5 + +interface BenchmarkFixture { + urlZip?: string + urlDir?: string[] + replayFileUrl?: string + spawn?: [number, number, number] +} + +const fixtures: Record = { + default: { + urlZip: 'https://bucket.mcraft.fun/Future CITY 4.4-slim.zip', + spawn: [-133, 87, 309] as [number, number, number], + }, + dir: { + urlDir: ['https://bucket.mcraft.fun/Greenfield%20v0.5.1/map-index.json', 'https://mcraft-proxy.vercel.app/0/bucket.mcraft.fun/Greenfield%20v0.5.1/map-index.json'], + }, + replay: { + replayFileUrl: 'https://raw.githubusercontent.com/zardoy/mcraft-fun-replays/refs/heads/main/hypepixel-tnt-lobby.worldstate.txt', + }, +} + +Error.stackTraceLimit = Error.stackTraceLimit < 30 ? 30 : Error.stackTraceLimit + +const SESSION_STORAGE_BACKUP_KEY = 'benchmark-backup' +export const openBenchmark = async (renderDistance = DEFAULT_RENDER_DISTANCE) => { + let fixtureNameOpen = appQueryParams.openBenchmark + if (!fixtureNameOpen || fixtureNameOpen === '1' || fixtureNameOpen === 'true' || fixtureNameOpen === 'zip') { + fixtureNameOpen = 'default' + } + + + if (sessionStorage.getItem(SESSION_STORAGE_BACKUP_KEY)) { + const backup = JSON.stringify(JSON.parse(sessionStorage.getItem(SESSION_STORAGE_BACKUP_KEY)!), null, 2) + setLoadingScreenStatus('Either other tab with benchmark is open or page crashed. Last data backup is downloaded. Reload page to retry.') + // download file + const a = document.createElement('a') + a.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(backup) + a.download = `benchmark-${appViewer.backend?.id}.txt` + a.click() + sessionStorage.removeItem(SESSION_STORAGE_BACKUP_KEY) + return + } + + const fixture: BenchmarkFixture = appQueryParams.benchmarkMapZipUrl ? { + urlZip: appQueryParams.benchmarkMapZipUrl, + spawn: appQueryParams.benchmarkPosition ? appQueryParams.benchmarkPosition.split(',').map(Number) as [number, number, number] : fixtures.default.spawn, + } : fixtures[fixtureNameOpen] + + if (!fixture) { + setLoadingScreenStatus(`Benchmark fixture ${fixtureNameOpen} not found`) + return + } + + let memoryUsageAverage = 0 + let memoryUsageSamples = 0 + let memoryUsageWorst = 0 + setInterval(() => { + const memoryUsage = (window.performance as any)?.memory?.usedJSHeapSize + if (memoryUsage) { + memoryUsageAverage = (memoryUsageAverage * memoryUsageSamples + memoryUsage) / (memoryUsageSamples + 1) + memoryUsageSamples++ + if (memoryUsage > memoryUsageWorst) { + memoryUsageWorst = memoryUsage + } + } + }, 200) + + let mainThreadFpsAverage = 0 + let mainThreadFpsWorst = undefined as number | undefined + let mainThreadFpsSamples = 0 + let currentPassedFrames = 0 + const mainLoop = () => { + currentPassedFrames++ + requestAnimationFrame(mainLoop) + } + requestAnimationFrame(mainLoop) + setInterval(() => { + mainThreadFpsAverage = (mainThreadFpsAverage * mainThreadFpsSamples + currentPassedFrames) / (mainThreadFpsSamples + 1) + mainThreadFpsSamples++ + if (mainThreadFpsWorst === undefined) { + mainThreadFpsWorst = currentPassedFrames + } else { + mainThreadFpsWorst = Math.min(mainThreadFpsWorst, currentPassedFrames) + } + currentPassedFrames = 0 + }, 1000) + + // todo urlDir fix + let fixtureName = `${fixture.urlZip ?? fixture.urlDir?.join('|') ?? fixture.replayFileUrl ?? 'unknown'}` + if (fixture.spawn) { + fixtureName += ` - ${fixture.spawn.join(' ')}` + } + + fixtureName += ` - ${renderDistance}` + if (process.env.NODE_ENV !== 'development') { // do not delay + setLoadingScreenStatus('Benchmark requested... Getting screen refresh rate') + await new Promise(resolve => { + setTimeout(resolve, 1000) + }) + } + let start = 0 + // interval to backup data in sessionStorage in case of page crash + const saveBackupInterval = setInterval(() => { + if (!window.world) return + const backup = JSON.parse(JSON.stringify(window.benchmarkAdapter)) + backup.timePassed = ((Date.now() - start) / 1000).toFixed(2) + sessionStorage.setItem(SESSION_STORAGE_BACKUP_KEY, JSON.stringify(backup)) + }, 500) + + const screenRefreshRate = await getScreenRefreshRate() + const benchmarkAdapter: BenchmarkAdapterInfo = { + get fixture () { + return fixtureName + }, + get worldLoadTimeSeconds () { + return window.worldLoadTime + }, + get mesherWorkersCount () { + return (window.world as WorldRendererCommon).worldRendererConfig.mesherWorkers + }, + get mesherProcessAvgMs () { + return (window.world as WorldRendererCommon).workersProcessAverageTime + }, + get mesherProcessTotalMs () { + return (window.world as WorldRendererCommon).workersProcessAverageTime * (window.world as WorldRendererCommon).workersProcessAverageTimeCount + }, + get mesherProcessWorstMs () { + return (window.world as WorldRendererCommon).maxWorkersProcessTime + }, + get chunksFullInfo () { + return (window.world as WorldRendererCommon).chunksFullInfo + }, + get averageRenderTimeMs () { + return (window.world as WorldRendererCommon).renderTimeAvg + }, + get worstRenderTimeMs () { + return (window.world as WorldRendererCommon).renderTimeMax + }, + get fpsAveragePrediction () { + const avgRenderTime = (window.world as WorldRendererCommon).renderTimeAvg + return 1000 / avgRenderTime + }, + get fpsWorstPrediction () { + const maxRenderTime = (window.world as WorldRendererCommon).renderTimeMax + return 1000 / maxRenderTime + }, + get fpsAverageReal () { + return `${(window.world as WorldRendererCommon).fpsAverage.toFixed(0)} / ${screenRefreshRate}` + }, + get fpsWorstReal () { + return (window.world as WorldRendererCommon).fpsWorst ?? -1 + }, + get backendInfoReport () { + return (window.world as WorldRendererCommon).backendInfoReport + }, + get fpsAverageMainThread () { + return mainThreadFpsAverage + }, + get fpsWorstMainThread () { + return mainThreadFpsWorst ?? -1 + }, + get memoryUsageAverage () { + return prettyBytes(memoryUsageAverage) + }, + get memoryUsageWorst () { + return prettyBytes(memoryUsageWorst) + }, + get gpuInfo () { + return appViewer.rendererState.renderer + }, + get hardwareConcurrency () { + return navigator.hardwareConcurrency + }, + get userAgent () { + return navigator.userAgent + }, + clientVersion: `${process.env.RELEASE_TAG} ${process.env.BUILD_VERSION} ${process.env.RELEASE_LINK ?? ''}`, + } + window.benchmarkAdapter = benchmarkAdapter + + disabledSettings.value.add('renderDistance') + options.renderDistance = renderDistance + disabledSettings.value.add('renderDebug') + options.renderDebug = 'advanced' + disabledSettings.value.add('waitForChunksRender') + options.waitForChunksRender = false + + void downloadAndOpenMapFromUrl(fixture.urlZip, undefined, fixture.urlDir, fixture.replayFileUrl, { + connectEvents: { + serverCreated () { + if (fixture.spawn) { + localServer!.spawnPoint = new Vec3(...fixture.spawn) + localServer!.on('newPlayer', (player) => { + player.on('dataLoaded', () => { + player.position = new Vec3(...fixture.spawn!) + start = Date.now() + }) + }) + } + }, + } + }) + + document.addEventListener('cypress-world-ready', () => { + clearInterval(saveBackupInterval) + sessionStorage.removeItem(SESSION_STORAGE_BACKUP_KEY) + let stats = getAllInfoLines(window.benchmarkAdapter) + const downloadFile = () => { + // const changedSettings = + + const a = document.createElement('a') + a.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(stats.join('\n')) + a.download = `benchmark-${appViewer.backend?.id}.txt` + a.click() + } + if (appQueryParams.downloadBenchmark) { + downloadFile() + } + + const panel = document.createElement('div') + panel.style.position = 'fixed' + panel.style.top = '20px' + panel.style.right = '10px' + panel.style.backgroundColor = 'rgba(0,0,0,0.8)' + panel.style.color = 'white' + panel.style.padding = '10px' + panel.style.zIndex = '1000' + panel.style.fontFamily = 'monospace' + panel.style.maxWidth = '80%' + panel.style.maxHeight = '90vh' + panel.style.overflow = 'auto' + panel.id = 'benchmark-panel' + + // Add download button + const downloadButton = document.createElement('button') + downloadButton.textContent = 'Download Results' + downloadButton.style.marginBottom = '10px' + downloadButton.style.padding = '5px 10px' + downloadButton.style.backgroundColor = '#4CAF50' + downloadButton.style.color = 'white' + downloadButton.style.border = 'none' + downloadButton.style.borderRadius = '4px' + downloadButton.style.cursor = 'pointer' + downloadButton.onclick = downloadFile + panel.appendChild(downloadButton) + + const pre = document.createElement('pre') + pre.style.whiteSpace = 'pre-wrap' + pre.style.wordBreak = 'break-word' + panel.appendChild(pre) + + pre.textContent = stats.join('\n') + const updateStats = () => { + stats = getAllInfoLines(window.benchmarkAdapter) + pre.textContent = stats.join('\n') + } + + document.body.appendChild(panel) + // setInterval(updateStats, 100) + }) +} + +// add before unload +window.addEventListener('beforeunload', () => { + // remove sessionStorage backup + sessionStorage.removeItem(SESSION_STORAGE_BACKUP_KEY) +}) + +document.addEventListener('pointerlockchange', (e) => { + const panel = document.querySelector('#benchmark-panel') + if (panel) { + panel.hidden = !!document.pointerLockElement + } +}) + +subscribe(activeModalStack, () => { + const panel = document.querySelector('#benchmark-panel') + if (panel && activeModalStack.length > 1) { + panel.hidden = true + } +}) + +export const registerOpenBenchmarkListener = () => { + if (appQueryParams.openBenchmark) { + void openBenchmark(appQueryParams.renderDistance ? +appQueryParams.renderDistance : undefined) + } + + window.addEventListener('keydown', (e) => { + if (e.code === 'KeyB' && e.shiftKey && !miscUiState.gameLoaded && activeModalStack.length === 0) { + e.preventDefault() + // add ?openBenchmark=true to url without reload + const url = new URL(window.location.href) + url.searchParams.set('openBenchmark', 'true') + window.history.replaceState({}, '', url.toString()) + void openBenchmark() + } + }) +} diff --git a/src/benchmarkAdapter.ts b/src/benchmarkAdapter.ts new file mode 100644 index 00000000..e3da6669 --- /dev/null +++ b/src/benchmarkAdapter.ts @@ -0,0 +1,66 @@ +import { noCase } from 'change-case' + +export interface BenchmarkAdapterInfo { + fixture: string + // general load info + worldLoadTimeSeconds: number + + // mesher + mesherWorkersCount: number + mesherProcessAvgMs: number + mesherProcessWorstMs: number + mesherProcessTotalMs: number + chunksFullInfo: string + + // rendering backend + averageRenderTimeMs: number + worstRenderTimeMs: number + fpsAveragePrediction: number + fpsWorstPrediction: number + fpsAverageReal: string + fpsWorstReal: number + backendInfoReport: string + + // main thread + fpsAverageMainThread: number + fpsWorstMainThread: number + + // memory total + memoryUsageAverage: string + memoryUsageWorst: string + + // context info + gpuInfo: string + hardwareConcurrency: number + userAgent: string + clientVersion: string +} + +export const getAllInfo = (adapter: BenchmarkAdapterInfo) => { + return Object.fromEntries( + Object.entries(adapter).map(([key, value]) => { + if (typeof value === 'function') { + value = (value as () => any)() + } + if (typeof value === 'number') { + value = value.toFixed(2) + } + return [noCase(key), value] + }) + ) +} + +export const getAllInfoLines = (adapter: BenchmarkAdapterInfo, delayed = false) => { + const info = getAllInfo(adapter) + if (delayed) { + for (const key in info) { + if (key !== 'fpsAveragePrediction' && key !== 'fpsAverageReal') { + delete info[key] + } + } + } + + return Object.entries(info).map(([key, value]) => { + return `${key}${delayed ? ' (delayed)' : ''}: ${value}` + }) +} diff --git a/src/botUtils.ts b/src/botUtils.ts new file mode 100644 index 00000000..10609322 --- /dev/null +++ b/src/botUtils.ts @@ -0,0 +1,49 @@ +import { versionToNumber } from 'renderer/viewer/common/utils' +import * as nbt from 'prismarine-nbt' + +export const displayClientChat = (text: string) => { + const message = { + text + } + if (versionToNumber(bot.version) >= versionToNumber('1.19')) { + bot._client.emit('systemChat', { + formattedMessage: JSON.stringify(message), + position: 0, + sender: 'minecraft:chat' + }) + return + } + bot._client.emit('chat', { + message: JSON.stringify(message), + position: 0, + sender: 'minecraft:chat' + }) +} + +export const parseFormattedMessagePacket = (arg) => { + if (typeof arg === 'string') { + try { + arg = JSON.parse(arg) + return { + formatted: arg, + plain: '' + } + } catch {} + } + if (typeof arg === 'object') { + try { + return { + formatted: nbt.simplify(arg), + plain: '' + } + } catch (err) { + console.warn('Failed to parse formatted message', arg, err) + return { + plain: JSON.stringify(arg) + } + } + } + return { + plain: String(arg) + } +} diff --git a/src/browserfs.ts b/src/browserfs.ts new file mode 100644 index 00000000..006b6db8 --- /dev/null +++ b/src/browserfs.ts @@ -0,0 +1,685 @@ +import { join } from 'path' +import { promisify } from 'util' +import fs from 'fs' +import sanitizeFilename from 'sanitize-filename' +import { oneOf } from '@zardoy/utils' +import * as browserfs from 'browserfs' +import { options, resetOptions } from './optionsStorage' + +import { fsState, loadSave } from './loadSave' +import { installResourcepackPack, installTexturePackFromHandle, updateTexturePackInstalledState } from './resourcePack' +import { miscUiState } from './globalState' +import { setLoadingScreenStatus } from './appStatus' +import { VALID_REPLAY_EXTENSIONS, openFile } from './packetsReplay/replayPackets' +import { getFixedFilesize } from './downloadAndOpenFile' +import { packetsReplayState } from './react/state/packetsReplayState' +import { createFullScreenProgressReporter } from './core/progressReporter' +import { showNotification } from './react/NotificationProvider' +import { resetAppStorage } from './react/appStorageProvider' +import { ConnectOptions } from './connect' +const { GoogleDriveFileSystem } = require('google-drive-browserfs/src/backends/GoogleDrive') + +browserfs.install(window) +const defaultMountablePoints = { + '/data': { fs: 'IndexedDB' }, + '/resourcepack': { fs: 'InMemory' }, // temporary storage for currently loaded resource pack + '/temp': { fs: 'InMemory' } +} +const fallbackMountablePoints = { + '/resourcepack': { fs: 'InMemory' }, // temporary storage for downloaded server resource pack + '/temp': { fs: 'InMemory' } +} +browserfs.configure({ + fs: 'MountableFileSystem', + options: defaultMountablePoints, +}, async (e) => { + if (e) { + browserfs.configure({ + fs: 'MountableFileSystem', + options: fallbackMountablePoints, + }, async (e2) => { + if (e2) { + showNotification('Unknown FS error, cannot continue', e2.message, true) + throw e2 + } + showNotification('Failed to access device storage', `Check you have free space. ${e.message}`, true) + miscUiState.fsReady = true + miscUiState.singleplayerAvailable = false + }) + return + } + await updateTexturePackInstalledState() + miscUiState.fsReady = true + miscUiState.singleplayerAvailable = true +}) + +export const forceCachedDataPaths = {} +export const forceRedirectPaths = {} + +window.fs = fs +//@ts-expect-error +fs.promises = new Proxy(Object.fromEntries(['readFile', 'writeFile', 'stat', 'mkdir', 'rmdir', 'unlink', 'rename', /* 'copyFile', */'readdir'].map(key => [key, promisify(fs[key])])), { + get (target, p: string, receiver) { + if (!target[p]) throw new Error(`Not implemented fs.promises.${p}`) + return (...args) => { + // browser fs bug: if path doesn't start with / dirname will return . which would cause infinite loop, so we need to normalize paths + if (typeof args[0] === 'string' && !args[0].startsWith('/')) args[0] = '/' + args[0] + const toRemap = Object.entries(forceRedirectPaths).find(([from]) => args[0].startsWith(from)) + if (toRemap) { + args[0] = args[0].replace(toRemap[0], toRemap[1]) + } + // Write methods + // todo issue one-time warning (in chat I guess) + const readonly = fsState.isReadonly && !(args[0].startsWith('/data') && !fsState.inMemorySave) // allow copying worlds from external providers such as zip + if (readonly) { + if (oneOf(p, 'readFile', 'writeFile') && forceCachedDataPaths[args[0]]) { + if (p === 'readFile') { + return Promise.resolve(forceCachedDataPaths[args[0]]) + } else if (p === 'writeFile') { + forceCachedDataPaths[args[0]] = args[1] + console.debug('Skipped writing to readonly fs', args[0]) + return Promise.resolve() + } + } + if (oneOf(p, 'writeFile', 'mkdir', 'rename')) return + } + if (p === 'open' && fsState.isReadonly) { + args[1] = 'r' // read-only, zipfs throw otherwise + } + if (p === 'readFile') { + fsState.openReadOperations++ + } else if (p === 'writeFile') { + fsState.openWriteOperations++ + } + return target[p](...args).finally(() => { + if (p === 'readFile') { + fsState.openReadOperations-- + } else if (p === 'writeFile') { + fsState.openWriteOperations-- + } + }) + } + } +}) +//@ts-expect-error +fs.promises.open = async (...args) => { + //@ts-expect-error + const fd = await promisify(fs.open)(...args) + return { + ...Object.fromEntries(['read', 'write', 'close'].map(x => [x, async (...args) => { + return new Promise(resolve => { + // todo it results in world corruption on interactions eg block placements + if (x === 'write' && fsState.isReadonly) { + resolve({ buffer: Buffer.from([]), bytesRead: 0 }) + return + } + + if (x === 'read') { + fsState.openReadOperations++ + } else if (x === 'write' || x === 'close') { + fsState.openWriteOperations++ + } + fs[x](fd, ...args, (err, bytesRead, buffer) => { + if (x === 'read') { + fsState.openReadOperations-- + } else if (x === 'write' || x === 'close') { + // todo that's not correct + fsState.openWriteOperations-- + } + if (err) throw err + // todo if readonly probably there is no need to open at all (return some mocked version - check reload)? + if (x === 'write' && !fsState.isReadonly) { + // flush data, though alternatively we can rely on close in unload + fs.fsync(fd, () => { }) + } + resolve({ buffer, bytesRead }) + }) + }) + }])), + // for debugging + fd, + filename: args[0], + async close () { + return new Promise(resolve => { + fs.close(fd, (err) => { + if (err) { + throw err + } else { + resolve() + } + }) + }) + } + } +} + +// for testing purposes, todo move it to core patch +const removeFileRecursiveSync = (path) => { + for (const file of fs.readdirSync(path)) { + const curPath = join(path, file) + if (fs.lstatSync(curPath).isDirectory()) { + // recurse + removeFileRecursiveSync(curPath) + fs.rmdirSync(curPath) + } else { + // delete file + fs.unlinkSync(curPath) + } + } +} + +window.removeFileRecursiveSync = removeFileRecursiveSync + +export const mkdirRecursive = async (path: string) => { + const parts = path.split('/') + let current = '' + for (const part of parts) { + current += part + '/' + try { + // eslint-disable-next-line no-await-in-loop + await fs.promises.mkdir(current) + } catch (err) { + } + } +} + +export const uniqueFileNameFromWorldName = async (title: string, savePath: string) => { + const name = sanitizeFilename(title) + let resultPath!: string + // getUniqueFolderName + let i = 0 + let free = false + while (!free) { + try { + resultPath = `${savePath.replace(/\$/, '')}/${name}${i === 0 ? '' : `-${i}`}` + // eslint-disable-next-line no-await-in-loop + await fs.promises.stat(resultPath) + i++ + } catch (err) { + free = true + } + } + return resultPath +} + +export const mountExportFolder = async () => { + let handle: FileSystemDirectoryHandle + try { + handle = await showDirectoryPicker({ + id: 'world-export', + }) + } catch (err) { + if (err instanceof DOMException && err.name === 'AbortError') return + throw err + } + if (!handle) return false + await new Promise(resolve => { + browserfs.configure({ + fs: 'MountableFileSystem', + options: { + ...defaultMountablePoints, + '/export': { + fs: 'FileSystemAccess', + options: { + handle + } + } + }, + }, (e) => { + if (e) throw e + resolve() + }) + }) + return true +} + +let googleDriveFileSystem + +/** Only cached! */ +export const googleDriveGetFileIdFromPath = (path: string) => { + return googleDriveFileSystem._getExistingFileId(path) +} + +export const mountGoogleDriveFolder = async (readonly: boolean, rootId: string) => { + googleDriveFileSystem = new GoogleDriveFileSystem() + googleDriveFileSystem.rootDirId = rootId + googleDriveFileSystem.isReadonly = readonly + await new Promise(resolve => { + browserfs.configure({ + fs: 'MountableFileSystem', + options: { + ...defaultMountablePoints, + '/google': googleDriveFileSystem + }, + }, (e) => { + if (e) throw e + resolve() + }) + }) + fsState.isReadonly = readonly + fsState.syncFs = false + fsState.inMemorySave = false + fsState.remoteBackend = true + return true +} + +export async function removeFileRecursiveAsync (path, removeDirectoryItself = true) { + const errors = [] as Array<[string, Error]> + try { + const files = await fs.promises.readdir(path) + + // Use Promise.all to parallelize file/directory removal + await Promise.all(files.map(async (file) => { + const curPath = join(path, file) + const stats = await fs.promises.stat(curPath) + if (stats.isDirectory()) { + // Recurse + await removeFileRecursiveAsync(curPath) + } else { + // Delete file + await fs.promises.unlink(curPath) + } + })) + + // After removing all files/directories, remove the current directory + if (removeDirectoryItself) { + await fs.promises.rmdir(path) + } + } catch (error) { + errors.push([path, error]) + } + + if (errors.length) { + setTimeout(() => { + console.error(errors) + throw new Error(`Error removing directories/files: ${errors.map(([path, err]) => `${path}: ${err.message}`).join(', ')}`) + }) + } +} + + +const SUPPORT_WRITE = true + +export const openWorldDirectory = async (dragndropHandle?: FileSystemDirectoryHandle) => { + let _directoryHandle: FileSystemDirectoryHandle + if (dragndropHandle) { + _directoryHandle = dragndropHandle + } else { + try { + _directoryHandle = await window.showDirectoryPicker({ + id: 'select-world', // important: this is used to remember user choice (start directory) + }) + } catch (err) { + if (err instanceof DOMException && err.name === 'AbortError') return + throw err + } + } + const directoryHandle = _directoryHandle + + const requestResult = SUPPORT_WRITE && !options.preferLoadReadonly ? await directoryHandle.requestPermission?.({ mode: 'readwrite' }) : undefined + const writeAccess = requestResult === 'granted' + + const doContinue = writeAccess || !SUPPORT_WRITE || options.disableLoadPrompts || confirm('Continue in readonly mode?') + if (!doContinue) return + await new Promise(resolve => { + browserfs.configure({ + fs: 'MountableFileSystem', + options: { + ...defaultMountablePoints, + '/world': { + fs: 'FileSystemAccess', + options: { + handle: directoryHandle + } + } + }, + }, (e) => { + if (e) throw e + resolve() + }) + }) + + fsState.isReadonly = !writeAccess + fsState.syncFs = false + fsState.inMemorySave = false + fsState.remoteBackend = false + await loadSave() +} + +const tryToDetectResourcePack = async () => { + const askInstall = async () => { + // todo investigate browserfs read errors + return alert('ATM You can install texturepacks only via options menu.') + // if (confirm('Resource pack detected, do you want to install it?')) { + // await installTexturePackFromHandle() + // } + } + + if (fs.existsSync('/world/pack.mcmeta')) { + await askInstall() + return true + } + // const jszip = new JSZip() + // let loaded = await jszip.loadAsync(file) + // if (loaded.file('pack.mcmeta')) { + // loaded = null + // askInstall() + // return true + // } + // loaded = null +} + +export const possiblyCleanHandle = (callback = () => { }) => { + if (!fsState.saveLoaded) { + // todo clean handle + browserfs.configure({ + fs: 'MountableFileSystem', + options: defaultMountablePoints, + }, (e) => { + callback() + if (e) throw e + }) + } +} + +const readdirSafe = async (path: string) => { + try { + return await fs.promises.readdir(path) + } catch (err) { + return null + } +} + +export const collectFilesToCopy = async (basePath: string, safe = false): Promise => { + const result: string[] = [] + const countFiles = async (relPath: string) => { + const resolvedPath = join(basePath, relPath) + const files = relPath === '.' && !safe ? await fs.promises.readdir(resolvedPath) : await readdirSafe(resolvedPath) + if (!files) return null + await Promise.all(files.map(async file => { + const res = await countFiles(join(relPath, file)) + if (res === null) { + // is file + result.push(join(relPath, file)) + } + })) + } + await countFiles('.') + return result +} + +export const copyFilesAsyncWithProgress = async (pathSrc: string, pathDest: string, throwRootNotExist = true, addMsg = '') => { + const stat = await existsViaStats(pathSrc) + if (!stat) { + if (throwRootNotExist) throw new Error(`Cannot copy. Source directory ${pathSrc} does not exist`) + console.debug('source directory does not exist', pathSrc) + return + } + if (!stat.isDirectory()) { + await fs.promises.writeFile(pathDest, await fs.promises.readFile(pathSrc) as any) + console.debug('copied single file', pathSrc, pathDest) + return + } + + try { + setLoadingScreenStatus('Copying files') + let filesCount = 0 + const countFiles = async (path: string) => { + const files = await fs.promises.readdir(path) + await Promise.all(files.map(async (file) => { + const curPath = join(path, file) + const stats = await fs.promises.stat(curPath) + if (stats.isDirectory()) { + // Recurse + await countFiles(curPath) + } else { + filesCount++ + } + })) + } + console.debug('Counting files', pathSrc) + await countFiles(pathSrc) + console.debug('counted', filesCount) + let copied = 0 + await copyFilesAsync(pathSrc, pathDest, (name) => { + copied++ + setLoadingScreenStatus(`Copying files${addMsg} (${copied}/${filesCount}): ${name}`) + }) + } finally { + setLoadingScreenStatus(undefined) + } +} + +export const existsViaStats = async (path: string) => { + try { + return await fs.promises.stat(path) + } catch (e) { + return false + } +} + +export const fileExistsAsyncOptimized = async (path: string) => { + try { + await fs.promises.readdir(path) + } catch (err) { + if (err.code === 'ENOTDIR') return true + // eslint-disable-next-line sonarjs/prefer-single-boolean-return + if (err.code === 'ENOENT') return false + // throw err + return false + } + return true +} + +export const copyFilesAsync = async (pathSrc: string, pathDest: string, fileCopied?: (name) => void) => { + // query: can't use fs.copy! use fs.promises.writeFile and readFile + const files = await fs.promises.readdir(pathSrc) + + if (!await existsViaStats(pathDest)) { + await fs.promises.mkdir(pathDest, { recursive: true }) + } + + // Use Promise.all to parallelize file/directory copying + await Promise.all(files.map(async (file) => { + const curPathSrc = join(pathSrc, file) + const curPathDest = join(pathDest, file) + const stats = await fs.promises.stat(curPathSrc) + if (stats.isDirectory()) { + // Recurse + await fs.promises.mkdir(curPathDest) + await copyFilesAsync(curPathSrc, curPathDest, fileCopied) + } else { + // Copy file + try { + await fs.promises.writeFile(curPathDest, await fs.promises.readFile(curPathSrc) as any) + console.debug('copied file', curPathSrc, curPathDest) + } catch (err) { + console.error('Error copying file', curPathSrc, curPathDest, err) + throw err + } + fileCopied?.(curPathDest) + } + })) +} + +export const openWorldFromHttpDir = async (fileDescriptorUrls: string[]/* | undefined */, baseUrlParam) => { + // todo try go guess mode + let index + let baseUrl + for (const url of fileDescriptorUrls) { + let file + try { + setLoadingScreenStatus(`Trying to get world descriptor from ${new URL(url).host}`) + const controller = new AbortController() + setTimeout(() => { + controller.abort() + }, 3000) + // eslint-disable-next-line no-await-in-loop + const response = await fetch(url, { signal: controller.signal }) + // eslint-disable-next-line no-await-in-loop + file = await response.json() + } catch (err) { + console.error('Error fetching file descriptor', url, err) + } + if (!file) continue + if (file.baseUrl) { + baseUrl = new URL(file.baseUrl, baseUrl).toString() + index = file.index + } else { + index = file + baseUrl = baseUrlParam ?? url.split('/').slice(0, -1).join('/') + } + break + } + if (!index) throw new Error(`The provided mapDir file is not valid descriptor file! ${fileDescriptorUrls.join(', ')}`) + await new Promise(async resolve => { + browserfs.configure({ + fs: 'MountableFileSystem', + options: { + ...defaultMountablePoints, + '/world': { + fs: 'HTTPRequest', + options: { + index, + baseUrl + } + } + }, + }, (e) => { + if (e) throw e + resolve() + }) + }) + + fsState.saveLoaded = false + fsState.isReadonly = true + fsState.syncFs = false + fsState.inMemorySave = false + fsState.remoteBackend = true + + await loadSave() +} + +// todo rename method +const openWorldZipInner = async (file: File | ArrayBuffer, name = file['name'], connectOptions?: Partial) => { + await new Promise(async resolve => { + browserfs.configure({ + // todo + fs: 'MountableFileSystem', + options: { + ...defaultMountablePoints, + '/world': { + fs: 'ZipFS', + options: { + zipData: Buffer.from(file instanceof File ? (await file.arrayBuffer()) : file), + name + } + } + }, + }, (e) => { + if (e) throw e + resolve() + }) + }) + + fsState.saveLoaded = false + fsState.isReadonly = true + fsState.syncFs = true + fsState.inMemorySave = false + fsState.remoteBackend = false + + if (fs.existsSync('/world/level.dat')) { + await loadSave() + } else { + const dirs = fs.readdirSync('/world') + const availableWorlds: string[] = [] + for (const dir of dirs) { + if (fs.existsSync(`/world/${dir}/level.dat`)) { + availableWorlds.push(dir) + } + } + + if (availableWorlds.length === 0) { + if (await tryToDetectResourcePack()) return + alert('No worlds found in the zip') + return + } + + if (availableWorlds.length === 1) { + await loadSave(`/world/${availableWorlds[0]}`, connectOptions) + return + } + + alert(`Many (${availableWorlds.length}) worlds found in the zip!`) + // todo prompt picker + // const selectWorld + } +} + +export const openWorldZip = async (...args: Parameters) => { + try { + return await openWorldZipInner(...args) + } finally { + possiblyCleanHandle() + } +} + +export const resetLocalStorage = () => { + resetOptions() + resetAppStorage() +} + +window.resetLocalStorage = resetLocalStorage + +export const openFilePicker = (specificCase?: 'resourcepack') => { + // create and show input picker + let picker: HTMLInputElement = document.body.querySelector('input#file-zip-picker')! + if (!picker) { + picker = document.createElement('input') + picker.type = 'file' + picker.accept = specificCase ? '.zip' : [...VALID_REPLAY_EXTENSIONS, '.zip'].join(',') + + picker.addEventListener('change', () => { + const file = picker.files?.[0] + picker.value = '' + if (!file) return + if (specificCase === 'resourcepack') { + if (!file.name.endsWith('.zip')) { + const doContinue = confirm(`Are you sure ${file.name.slice(-20)} is .zip file? ONLY .zip files are supported. Continue?`) + if (!doContinue) return + } + void installResourcepackPack(file, createFullScreenProgressReporter()).catch((err) => { + setLoadingScreenStatus(err.message, true) + }) + } else { + // eslint-disable-next-line no-lonely-if + if (VALID_REPLAY_EXTENSIONS.some(ext => file.name.endsWith(ext)) || file.name.startsWith('packets-replay')) { + void file.text().then(contents => { + openFile({ + contents, + filename: file.name, + filesize: file.size + }) + }) + } else { + void openWorldZip(file) + } + } + }) + picker.hidden = true + document.body.appendChild(picker) + } + + picker.click() +} + +export const resetStateAfterDisconnect = () => { + miscUiState.gameLoaded = false + miscUiState.loadedDataVersion = null + miscUiState.singleplayer = false + miscUiState.flyingSquid = false + miscUiState.wanOpened = false + miscUiState.currentDisplayQr = null + + fsState.saveLoaded = false +} diff --git a/src/builtinCommands.ts b/src/builtinCommands.ts new file mode 100644 index 00000000..a292c5cd --- /dev/null +++ b/src/builtinCommands.ts @@ -0,0 +1,156 @@ +import fs from 'fs' +import { join } from 'path' +import JSZip from 'jszip' +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' +import { fsState, readLevelDat } from './loadSave' +import { closeWan, openToWanAndCopyJoinLink } from './localServerMultiplayer' +import { copyFilesAsync, uniqueFileNameFromWorldName } from './browserfs' +import { saveServer } from './flyingSquidUtils' +import { setLoadingScreenStatus } from './appStatus' +import { displayClientChat } from './botUtils' +import { miscUiState } from './globalState' + +const notImplemented = () => { + return 'Not implemented yet' +} + +async function addFolderToZip (folderPath, zip, relativePath) { + const entries = await fs.promises.readdir(folderPath) + + for (const entry of entries) { + const entryPath = join(folderPath, entry) + const stats = await fs.promises.stat(entryPath) + + const zipEntryPath = join(relativePath, entry) + + if (stats.isDirectory()) { + const subZip = zip.folder(zipEntryPath) + await addFolderToZip(entryPath, subZip, zipEntryPath) + } else { + const fileData = await fs.promises.readFile(entryPath) + zip.file(entry, fileData) + } + } +} + +export const exportWorld = async (path: string, type: 'zip' | 'folder', zipName = 'world-prismarine-exported') => { + try { + if (type === 'zip') { + setLoadingScreenStatus('Generating zip, this may take a few minutes') + const zip = new JSZip() + await addFolderToZip(path, zip, '') + + // Generate the ZIP archive content + const zipContent = await zip.generateAsync({ type: 'blob' }) + + // Create a download link and trigger the download + const downloadLink = document.createElement('a') + downloadLink.href = URL.createObjectURL(zipContent) + // todo use loaded zip/folder name + downloadLink.download = `${zipName}.zip` + downloadLink.click() + + // Clean up the URL object after download + URL.revokeObjectURL(downloadLink.href) + } else { + setLoadingScreenStatus('Preparing export folder') + let dest = '/' + if ((await fs.promises.readdir('/export')).length) { + const { levelDat } = (await readLevelDat(path))! + dest = await uniqueFileNameFromWorldName(levelDat.LevelName, path) + } + setLoadingScreenStatus(`Copying files to ${dest} of selected folder`) + await copyFilesAsync(path, '/export' + dest) + } + } finally { + setLoadingScreenStatus(undefined) + } +} + +// todo include in help +const exportLoadedWorld = async () => { + await saveServer() + let worldFolder = fsState.inMemorySavePath + if (!worldFolder.startsWith('/')) worldFolder = `/${worldFolder}` + await exportWorld(worldFolder, 'zip') +} + +window.exportWorld = exportLoadedWorld + +const writeText = (text) => { + displayClientChat(text) +} + +export const commands: Array<{ + command: string[], + alwaysAvailable?: boolean, + invoke (args: string[]): Promise | void + //@ts-format-ignore-region +}> = [ + { + command: ['/download', '/export'], + invoke: exportLoadedWorld + }, + { + command: ['/publish', '/share'], + async invoke () { + const text = await openToWanAndCopyJoinLink(writeText) + if (text) writeText(text) + } + }, + { + command: ['/close'], + invoke () { + const text = closeWan() + if (text) writeText(text) + } + }, + { + command: ['/save'], + async invoke () { + await saveServer(false) + writeText('Saved to browser memory') + } + }, + { + command: ['/pos'], + alwaysAvailable: true, + async invoke ([type]) { + let pos: { x: number, y: number, z: number } | undefined + if (type === 'block') { + const blockPos = window.cursorBlockRel()?.position + if (blockPos) { + pos = { x: blockPos.x, y: blockPos.y, z: blockPos.z } + } + } else { + const playerPos = bot.entity.position + pos = { x: playerPos.x, y: playerPos.y, z: playerPos.z } + } + if (!pos) return + const formatted = `${pos.x.toFixed(2)} ${pos.y.toFixed(2)} ${pos.z.toFixed(2)}` + await navigator.clipboard.writeText(formatted) + writeText(`Copied position to clipboard: ${formatted}`) + } + }, + { + command: ['/mesherlog'], + alwaysAvailable: true, + invoke () { + getThreeJsRendererMethods()?.downloadMesherLog() + } + } +] +//@ts-format-ignore-endregion + +export const getBuiltinCommandsList = () => commands.filter(command => command.alwaysAvailable || miscUiState.singleplayer).flatMap(command => command.command) + +export const tryHandleBuiltinCommand = (message: string) => { + const [userCommand, ...args] = message.split(' ') + + for (const command of commands.filter(command => command.alwaysAvailable || miscUiState.singleplayer)) { + if (command.command.includes(userCommand)) { + void command.invoke(args) // ignoring for now + return true + } + } +} diff --git a/src/cameraRotationControls.ts b/src/cameraRotationControls.ts new file mode 100644 index 00000000..679a3a44 --- /dev/null +++ b/src/cameraRotationControls.ts @@ -0,0 +1,83 @@ +import { contro } from './controls' +import { activeModalStack, isGameActive, miscUiState, showModal } from './globalState' +import { options } from './optionsStorage' +import { hideNotification, notificationProxy } from './react/NotificationProvider' +import { pointerLock } from './utils' +import { updateMotion, initMotionTracking } from './react/uiMotion' + +let lastMouseMove: number + +export type CameraMoveEvent = { + movementX: number + movementY: number + type: string + stopPropagation?: () => void +} + +export function onCameraMove (e: MouseEvent | CameraMoveEvent) { + if (!isGameActive(true)) return + if (e.type === 'mousemove' && !document.pointerLockElement) return + e.stopPropagation?.() + if (appViewer.playerState.utils.isSpectatingEntity()) return + const now = performance.now() + // todo: limit camera movement for now to avoid unexpected jumps + if (now - lastMouseMove < 4 && !options.preciseMouseInput) return + lastMouseMove = now + let { mouseSensX, mouseSensY } = options + if (mouseSensY === -1) mouseSensY = mouseSensX + moveCameraRawHandler({ + x: e.movementX * mouseSensX * 0.0001, + y: e.movementY * mouseSensY * 0.0001 + }) + bot.mouse.update() + updateMotion() +} + +export const moveCameraRawHandler = ({ x, y }: { x: number; y: number }) => { + const maxPitch = 0.5 * Math.PI + const minPitch = -0.5 * Math.PI + + appViewer.lastCamUpdate = Date.now() + + // if (viewer.world.freeFlyMode) { + // // Update freeFlyState directly + // viewer.world.freeFlyState.yaw = (viewer.world.freeFlyState.yaw - x) % (2 * Math.PI) + // viewer.world.freeFlyState.pitch = Math.max(minPitch, Math.min(maxPitch, viewer.world.freeFlyState.pitch - y)) + // return + // } + + if (!bot?.entity) return + const pitch = bot.entity.pitch - y + void bot.look(bot.entity.yaw - x, Math.max(minPitch, Math.min(maxPitch, pitch)), true) + appViewer.backend?.updateCamera(null, bot.entity.yaw, pitch) +} + +window.addEventListener('mousemove', (e: MouseEvent) => { + onCameraMove(e) +}, { capture: true }) + +export const onControInit = () => { + contro.on('stickMovement', ({ stick, vector }) => { + if (!isGameActive(true)) return + if (stick !== 'right') return + let { x, z } = vector + if (Math.abs(x) < 0.18) x = 0 + if (Math.abs(z) < 0.18) z = 0 + onCameraMove({ + movementX: x * 10, + movementY: z * 10, + type: 'stickMovement', + stopPropagation () {} + } as CameraMoveEvent) + miscUiState.usingGamepadInput = true + }) +} + +function pointerLockChangeCallback () { + if (appViewer.rendererState.preventEscapeMenu) return + if (!pointerLock.hasPointerLock && activeModalStack.length === 0 && miscUiState.gameLoaded) { + showModal({ reactType: 'pause-screen' }) + } +} + +document.addEventListener('pointerlockchange', pointerLockChangeCallback, false) diff --git a/src/chatUtils.test.ts b/src/chatUtils.test.ts new file mode 100644 index 00000000..6d683919 --- /dev/null +++ b/src/chatUtils.test.ts @@ -0,0 +1,84 @@ +import { test, expect } from 'vitest' +import mcData from 'minecraft-data' +import { formatMessage, isAllowedChatCharacter, isStringAllowed } from './chatUtils' + +//@ts-expect-error +globalThis.loadedData ??= mcData('1.20.1') + +const mapIncludeDefined = (props) => { + return (x) => { + return Object.fromEntries(Object.entries(x).filter(([k, v]) => v !== undefined && props.includes(k))) + } +} + +test('formatMessage', () => { + const result = formatMessage({ + 'json': { + 'translate': 'chat.type.announcement', + 'with': [ + { + 'text': 'Server' + }, + { + 'text': '§cf' + } + ] + }, + 'translate': 'chat.type.announcement', + 'with': [ + { + 'json': { + 'text': 'Server' + }, + 'text': 'Server' + }, + { + 'json': { + 'text': '§cf' + }, + 'text': '§cf' + } + ] + }).map(mapIncludeDefined(['text', 'color'])) + expect(result).toMatchInlineSnapshot(` + [ + { + "text": "[", + }, + { + "text": "Server", + }, + { + "text": "] ", + }, + { + "text": "", + }, + { + "color": "red", + "text": "f", + }, + { + "text": "", + }, + ] + `) +}) + +test('isAllowedChatCharacter', () => { + expect(isAllowedChatCharacter('a')).toBe(true) + expect(isAllowedChatCharacter('a')).toBe(true) + expect(isAllowedChatCharacter('§')).toBe(false) + expect(isAllowedChatCharacter(' ')).toBe(true) + expect(isStringAllowed('a§b')).toMatchObject({ + valid: false, + clean: 'ab', + invalid: ['§'] + }) + expect(isStringAllowed('aツ')).toMatchObject({ + valid: true, + }) + expect(isStringAllowed('a🟢')).toMatchObject({ + valid: true, + }) +}) diff --git a/src/chatUtils.ts b/src/chatUtils.ts new file mode 100644 index 00000000..849d5847 --- /dev/null +++ b/src/chatUtils.ts @@ -0,0 +1,173 @@ +// this should actually be moved to mineflayer / renderer + +import { fromFormattedString, TextComponent } from '@xmcl/text-component' +import type { IndexedData } from 'minecraft-data' +import { versionToNumber } from 'renderer/viewer/common/utils' + +export interface MessageFormatOptions { + doShadow?: boolean +} + +export type MessageFormatPart = Pick & { + text: string + color?: string + bold?: boolean + italic?: boolean + underlined?: boolean + strikethrough?: boolean + obfuscated?: boolean +} + +type MessageInput = { + text?: string + translate?: string + with?: Array + color?: string + bold?: boolean + italic?: boolean + underlined?: boolean + strikethrough?: boolean + obfuscated?: boolean + extra?: MessageInput[] + json?: any +} + +const global = globalThis as any + +// todo move to sign-renderer, replace with prismarine-chat, fix mcData issue! +export const formatMessage = (message: MessageInput, mcData: IndexedData = global.loadedData) => { + let msglist: MessageFormatPart[] = [] + + const readMsg = (msg: MessageInput) => { + const styles = { + color: msg.color, + bold: !!msg.bold, + italic: !!msg.italic, + underlined: !!msg.underlined, + strikethrough: !!msg.strikethrough, + obfuscated: !!msg.obfuscated + } + + if (!msg.text && typeof msg.json?.[''] === 'string') msg.text = msg.json[''] + if (msg.text) { + msglist.push({ + ...msg, + text: msg.text, + ...styles + }) + } else if (msg.translate) { + const tText = mcData?.language[msg.translate] ?? msg.translate + + if (msg.with) { + const splitted = tText.split(/%s|%\d+\$s/g) + + let i = 0 + for (const [j, part] of splitted.entries()) { + msglist.push({ text: part, ...styles }) + + if (j + 1 < splitted.length) { + if (msg.with[i]) { + const msgWith = msg.with[i] + if (typeof msgWith === 'string') { + readMsg({ + ...styles, + text: msgWith + }) + } else { + readMsg({ + ...styles, + ...msgWith + }) + } + } + i++ + } + } + } else { + msglist.push({ + ...msg, + text: tText, + ...styles + }) + } + } + + if (msg.extra) { + for (let ex of msg.extra) { + if (typeof ex === 'string') { + ex = { text: ex } + } + readMsg({ ...styles, ...ex }) + } + } + } + + readMsg(message) + + const flat = (msg) => { + return [msg, msg.extra?.flatMap(flat) ?? []] + } + + msglist = msglist.map(msg => { + // normalize § + if (!msg.text.includes?.('§')) return msg + const newMsg = fromFormattedString(msg.text) + return flat(newMsg) + }).flat(Infinity) + + return msglist +} + +export const messageToString = (message: MessageInput | string) => { + if (typeof message === 'string') { + return message + } + const msglist = formatMessage(message) + return msglist.map(msg => msg.text).join('') +} + +const blockToItemRemaps = { + water: 'water_bucket', + lava: 'lava_bucket', + redstone_wire: 'redstone', + tripwire: 'tripwire_hook' +} + +export const getItemFromBlock = (block: import('prismarine-block').Block) => { + const item = global.loadedData.itemsByName[blockToItemRemaps[block.name] ?? block.name] + return item +} + +export function isAllowedChatCharacter (char: string): boolean { + // if (char.length !== 1) { + // throw new Error('Input must be a single character') + // } + + const charCode = char.codePointAt(0)! + return charCode !== 167 && charCode >= 32 && charCode !== 127 +} + +export const isStringAllowed = (str: string) => { + const invalidChars = new Set() + for (const [i, char] of [...str].entries()) { + const isSurrogatePair = str.codePointAt(i) !== str['charCodeAt'](i) + if (isSurrogatePair) continue + + if (!isAllowedChatCharacter(char)) { + invalidChars.add(char) + } + } + + const valid = invalidChars.size === 0 + if (valid) { + return { + valid: true + } + } + + return { + valid, + clean: [...str].filter(c => !invalidChars.has(c)).join(''), + invalid: [...invalidChars] + } +} diff --git a/src/clientMods.ts b/src/clientMods.ts new file mode 100644 index 00000000..204a5861 --- /dev/null +++ b/src/clientMods.ts @@ -0,0 +1,637 @@ +/* eslint-disable no-await-in-loop */ +import { openDB } from 'idb' +import * as React from 'react' +import * as valtio from 'valtio' +import * as valtioUtils from 'valtio/utils' +import { gt } from 'semver' +import { proxy } from 'valtio' +import { options } from './optionsStorage' +import { appStorage } from './react/appStorageProvider' +import { showInputsModal, showOptionsModal } from './react/SelectOption' +import { ProgressReporter } from './core/progressReporter' +import { showNotification } from './react/NotificationProvider' + +let sillyProtection = false +const protectRuntime = () => { + if (sillyProtection) return + sillyProtection = true + const sensetiveKeys = new Set(['authenticatedAccounts', 'serversList', 'username']) + const proxy = new Proxy(window.localStorage, { + get (target, prop) { + if (typeof prop === 'string') { + if (sensetiveKeys.has(prop)) { + console.warn(`Access to sensitive key "${prop}" was blocked`) + return null + } + if (prop === 'getItem') { + return (key: string) => { + if (sensetiveKeys.has(key)) { + console.warn(`Access to sensitive key "${key}" via getItem was blocked`) + return null + } + return target.getItem(key) + } + } + if (prop === 'setItem') { + return (key: string, value: string) => { + if (sensetiveKeys.has(key)) { + console.warn(`Attempt to set sensitive key "${key}" via setItem was blocked`) + return + } + target.setItem(key, value) + } + } + if (prop === 'removeItem') { + return (key: string) => { + if (sensetiveKeys.has(key)) { + console.warn(`Attempt to delete sensitive key "${key}" via removeItem was blocked`) + return + } + target.removeItem(key) + } + } + if (prop === 'clear') { + console.warn('Attempt to clear localStorage was blocked') + return () => {} + } + } + return Reflect.get(target, prop) + }, + set (target, prop, value) { + if (typeof prop === 'string' && sensetiveKeys.has(prop)) { + console.warn(`Attempt to set sensitive key "${prop}" was blocked`) + return false + } + return Reflect.set(target, prop, value) + }, + deleteProperty (target, prop) { + if (typeof prop === 'string' && sensetiveKeys.has(prop)) { + console.warn(`Attempt to delete sensitive key "${prop}" was blocked`) + return false + } + return Reflect.deleteProperty(target, prop) + } + }) + Object.defineProperty(window, 'localStorage', { + value: proxy, + writable: false, + configurable: false, + }) +} + +// #region Database +const dbPromise = openDB('mods-db', 1, { + upgrade (db) { + db.createObjectStore('mods', { + keyPath: 'name', + }) + db.createObjectStore('repositories', { + keyPath: 'url', + }) + }, +}) + +export interface ModSetting { + label?: string + type: 'toggle' | 'choice' | 'input' | 'slider' + hidden?: boolean + values?: string[] + inputType?: string + hint?: string + default?: any +} + +export interface ModSettingsDict { + [settingId: string]: ModSetting +} + +export interface ModAction { + method?: string + label?: string + /** @default false */ + gameGlobal?: boolean + /** @default false */ + onlyForeground?: boolean +} + +// mcraft-repo.json +export interface McraftRepoFile { + packages: ClientModDefinition[] + /** @default true */ + prefix?: string | boolean + name?: string // display name + description?: string + mirrorUrls?: string[] + autoUpdateOverride?: boolean + lastUpdated?: number +} +export interface Repository extends McraftRepoFile { + url: string +} + +export interface ClientMod { + name: string; // unique identifier like owner.name + version: string + enabled?: boolean + + scriptMainUnstable?: string; + serverPlugin?: string + // serverPlugins?: string[] + // mesherThread?: string + stylesGlobal?: string + threeJsBackend?: string // three.js + // stylesLocal?: string + + requiresNetwork?: boolean + fullyOffline?: boolean + description?: string + author?: string + section?: string + autoUpdateOverride?: boolean + lastUpdated?: number + wasModifiedLocally?: boolean + // todo depends, hashsum + + settings?: ModSettingsDict + actionsMain?: Record +} + +const cleanupFetchedModData = (mod: ClientModDefinition | Record) => { + delete mod['enabled'] + delete mod['repo'] + delete mod['autoUpdateOverride'] + delete mod['lastUpdated'] + delete mod['wasModifiedLocally'] + return mod +} + +export type ClientModDefinition = Omit & { + scriptMainUnstable?: boolean + stylesGlobal?: boolean + serverPlugin?: boolean + threeJsBackend?: boolean +} + +export async function saveClientModData (data: ClientMod) { + const db = await dbPromise + data.lastUpdated = Date.now() + await db.put('mods', data) + modsReactiveUpdater.counter++ +} + +async function getPlugin (name: string) { + const db = await dbPromise + return db.get('mods', name) as Promise +} + +export async function getAllMods () { + const db = await dbPromise + return db.getAll('mods') as Promise +} + +async function deletePlugin (name) { + const db = await dbPromise + await db.delete('mods', name) + modsReactiveUpdater.counter++ +} + +async function removeAllMods () { + const db = await dbPromise + await db.clear('mods') + modsReactiveUpdater.counter++ +} + +// --- + +async function saveRepository (data: Repository) { + const db = await dbPromise + data.lastUpdated = Date.now() + await db.put('repositories', data) +} + +async function getRepository (url: string) { + const db = await dbPromise + return db.get('repositories', url) as Promise +} + +async function getAllRepositories () { + const db = await dbPromise + return db.getAll('repositories') as Promise +} +window.getAllRepositories = getAllRepositories + +async function deleteRepository (url) { + const db = await dbPromise + await db.delete('repositories', url) +} + +// --- + +// #endregion + +window.mcraft = { + version: process.env.RELEASE_TAG, + build: process.env.BUILD_VERSION, + ui: {}, + React, + valtio: { + ...valtio, + ...valtioUtils, + }, + // openDB +} + +const activateMod = async (mod: ClientMod, reason: string) => { + if (mod.enabled === false) return false + protectRuntime() + console.debug(`Activating mod ${mod.name} (${reason})...`) + window.loadedMods ??= {} + if (window.loadedMods[mod.name]) { + console.warn(`Mod is ${mod.name} already loaded, skipping activation...`) + return false + } + if (mod.stylesGlobal) { + const style = document.createElement('style') + style.textContent = mod.stylesGlobal + style.id = `mod-${mod.name}` + document.head.appendChild(style) + } + if (mod.scriptMainUnstable) { + const blob = new Blob([mod.scriptMainUnstable], { type: 'text/javascript' }) + const url = URL.createObjectURL(blob) + // eslint-disable-next-line no-useless-catch + try { + const module = await import(/* webpackIgnore: true */ url) + module.default?.(structuredClone(mod), { settings: getModSettingsProxy(mod) }) + window.loadedMods[mod.name] ??= {} + window.loadedMods[mod.name].mainUnstableModule = module + } catch (e) { + throw e + } + URL.revokeObjectURL(url) + } + if (mod.threeJsBackend) { + const blob = new Blob([mod.threeJsBackend], { type: 'text/javascript' }) + const url = URL.createObjectURL(blob) + // eslint-disable-next-line no-useless-catch + try { + const module = await import(/* webpackIgnore: true */ url) + // todo + window.loadedMods[mod.name] ??= {} + // for accessing global world var + window.loadedMods[mod.name].threeJsBackendModule = module + } catch (e) { + throw e + } + URL.revokeObjectURL(url) + } + mod.enabled = true + return true +} + +export const appStartup = async () => { + void checkModsUpdates() + + const mods = await getAllMods() + for (const mod of mods) { + await activateMod(mod, 'autostart').catch(e => { + modsErrors[mod.name] ??= [] + modsErrors[mod.name].push(`startup: ${String(e)}`) + console.error(`Error activating mod on startup ${mod.name}:`, e) + }) + } +} + +export const modsUpdateStatus = proxy({} as Record) +export const modsWaitingReloadStatus = proxy({} as Record) +export const modsErrors = proxy({} as Record) + +const normalizeRepoUrl = (url: string) => { + if (url.startsWith('https://')) return url + if (url.startsWith('http://')) return url + if (url.startsWith('//')) return `https:${url}` + return `https://raw.githubusercontent.com/${url}/master` +} + +const installOrUpdateMod = async (repo: Repository, mod: ClientModDefinition, activate = true, progress?: ProgressReporter) => { + // eslint-disable-next-line no-useless-catch + try { + const fetchData = async (urls: string[]) => { + const errored = [] as string[] + // eslint-disable-next-line no-unreachable-loop + for (const urlTemplate of urls) { + const modNameOnly = mod.name.split('.').pop() + const modFolder = repo.prefix === false ? modNameOnly : typeof repo.prefix === 'string' ? `${repo.prefix}/${modNameOnly}` : mod.name + const url = new URL(`${modFolder}/${urlTemplate}`, normalizeRepoUrl(repo.url).replace(/\/$/, '') + '/').href + // eslint-disable-next-line no-useless-catch + try { + const response = await fetch(url) + if (!response.ok) throw new Error(`Failed to fetch ${url}: ${response.status} ${response.statusText}`) + return await response.text() + } catch (e) { + // errored.push(String(e)) + throw e + } + } + console.warn(`[${mod.name}] Error installing component of ${urls[0]}: ${errored.join(', ')}`) + return undefined + } + if (mod.stylesGlobal) { + await progress?.executeWithMessage( + `Downloading ${mod.name} styles`, + async () => { + mod.stylesGlobal = await fetchData(['global.css']) as any + } + ) + } + if (mod.scriptMainUnstable) { + await progress?.executeWithMessage( + `Downloading ${mod.name} script`, + async () => { + mod.scriptMainUnstable = await fetchData(['mainUnstable.js']) as any + } + ) + } + if (mod.threeJsBackend) { + await progress?.executeWithMessage( + `Downloading ${mod.name} three.js backend`, + async () => { + mod.threeJsBackend = await fetchData(['three.js']) as any + } + ) + } + if (mod.serverPlugin) { + if (mod.name.endsWith('.disabled')) throw new Error(`Mod name ${mod.name} can't end with .disabled`) + await progress?.executeWithMessage( + `Downloading ${mod.name} server plugin`, + async () => { + mod.serverPlugin = await fetchData(['serverPlugin.js']) as any + } + ) + } + if (activate) { + // todo try to de-activate mod if it's already loaded + if (window.loadedMods?.[mod.name]) { + modsWaitingReloadStatus[mod.name] = true + } else { + await activateMod(mod as ClientMod, 'install') + } + } + await saveClientModData(mod as ClientMod) + delete modsUpdateStatus[mod.name] + } catch (e) { + // console.error(`Error installing mod ${mod.name}:`, e) + throw e + } +} + +const checkRepositoryUpdates = async (repo: Repository) => { + for (const mod of repo.packages) { + + const modExisting = await getPlugin(mod.name) + if (modExisting?.version && gt(mod.version, modExisting.version)) { + modsUpdateStatus[mod.name] = [modExisting.version, mod.version] + if (options.modsAutoUpdate === 'always' && (!repo.autoUpdateOverride && !modExisting.autoUpdateOverride)) { + void installOrUpdateMod(repo, mod).catch(e => { + console.error(`Error updating mod ${mod.name}:`, e) + }) + } + } + } + +} + +export const fetchRepository = async (urlOriginal: string, url: string, hasMirrors = false) => { + const fetchUrl = normalizeRepoUrl(url).replace(/\/$/, '') + '/mcraft-repo.json' + try { + const response = await fetch(fetchUrl).then(async res => res.json()) + if (!response.packages) throw new Error(`No packages field in the response json of the repository: ${fetchUrl}`) + response.autoUpdateOverride = (await getRepository(urlOriginal))?.autoUpdateOverride + response.url = urlOriginal + void saveRepository(response) + modsReactiveUpdater.counter++ + return true + } catch (e) { + console.warn(`Error fetching repository (trying other mirrors) ${url}:`, e) + return false + } +} + +export const fetchAllRepositories = async () => { + const repositories = await getAllRepositories() + await Promise.all(repositories.map(async (repo) => { + const allUrls = [repo.url, ...(repo.mirrorUrls || [])] + for (const [i, url] of allUrls.entries()) { + const isLast = i === allUrls.length - 1 + + if (await fetchRepository(repo.url, url, !isLast)) break + } + })) + appStorage.modsAutoUpdateLastCheck = Date.now() +} + +const checkModsUpdates = async () => { + await autoRefreshModRepositories() + for (const repo of await getAllRepositories()) { + + await checkRepositoryUpdates(repo) + } +} + +const autoRefreshModRepositories = async () => { + if (options.modsAutoUpdate === 'never') return + const lastCheck = appStorage.modsAutoUpdateLastCheck + if (lastCheck && Date.now() - lastCheck < 1000 * 60 * 60 * options.modsUpdatePeriodCheck) return + await fetchAllRepositories() + // todo think of not updating check timestamp on offline access +} + +export const installModByName = async (repoUrl: string, name: string, progress?: ProgressReporter) => { + progress?.beginStage('main', `Installing ${name}`) + const repo = await getRepository(repoUrl) + if (!repo) throw new Error(`Repository ${repoUrl} not found`) + const mod = repo.packages.find(m => m.name === name) + if (!mod) throw new Error(`Mod ${name} not found in repository ${repoUrl}`) + await installOrUpdateMod(repo, mod, undefined, progress) + progress?.endStage('main') +} + +export const uninstallModAction = async (name: string) => { + const choice = await showOptionsModal(`Uninstall mod ${name}?`, ['Yes']) + if (!choice) return + await deletePlugin(name) + window.loadedMods ??= {} + if (window.loadedMods[name]) { + // window.loadedMods[name].default?.(null) + delete window.loadedMods[name] + modsWaitingReloadStatus[name] = true + } + // Clear any errors associated with the mod + delete modsErrors[name] +} + +export const setEnabledModAction = async (name: string, newEnabled: boolean) => { + const mod = await getPlugin(name) + if (!mod) throw new Error(`Mod ${name} not found`) + if (newEnabled) { + mod.enabled = true + if (!window.loadedMods?.[mod.name]) { + await activateMod(mod, 'manual') + } + } else { + // todo deactivate mod + mod.enabled = false + if (window.loadedMods?.[mod.name]) { + if (window.loadedMods[mod.name]?.threeJsBackendModule) { + window.loadedMods[mod.name].threeJsBackendModule.deactivate() + delete window.loadedMods[mod.name].threeJsBackendModule + } + if (window.loadedMods[mod.name]?.mainUnstableModule) { + window.loadedMods[mod.name].mainUnstableModule.deactivate() + delete window.loadedMods[mod.name].mainUnstableModule + } + + if (Object.keys(window.loadedMods[mod.name]).length === 0) { + delete window.loadedMods[mod.name] + } + } + } + await saveClientModData(mod) +} + +export const modsReactiveUpdater = proxy({ + counter: 0 +}) + +export const getAllModsDisplayList = async () => { + const repos = await getAllRepositories() + const installedMods = await getAllMods() + const modsWithoutRepos = installedMods.filter(mod => !repos.some(repo => repo.packages.some(m => m.name === mod.name))) + const mapMods = (mapMods: ClientMod[]) => mapMods.map(mod => ({ + ...mod, + installed: installedMods.find(m => m.name === mod.name), + activated: !!window.loadedMods?.[mod.name], + installedVersion: installedMods.find(m => m.name === mod.name)?.version, + canBeActivated: mod.scriptMainUnstable || mod.stylesGlobal, + })) + return { + repos: repos.map(repo => ({ + ...repo, + packages: mapMods(repo.packages as ClientMod[]), + })), + modsWithoutRepos: mapMods(modsWithoutRepos), + } +} + +export const removeRepositoryAction = async (url: string) => { + // todo remove mods + const choice = await showOptionsModal('Remove repository? Installed mods wont be automatically removed.', ['Yes']) + if (!choice) return + await deleteRepository(url) + modsReactiveUpdater.counter++ +} + +export const selectAndRemoveRepository = async () => { + const repos = await getAllRepositories() + const choice = await showOptionsModal('Select repository to remove', repos.map(repo => repo.url)) + if (!choice) return + await removeRepositoryAction(choice) +} + +export const addRepositoryAction = async () => { + const { url } = await showInputsModal('Add repository', { + url: { + type: 'text', + label: 'Repository URL or slug', + placeholder: 'github-owner/repo-name', + }, + }) + if (!url) return + await fetchRepository(url, url) +} + +export const getServerPlugin = async (plugin: string) => { + const mod = await getPlugin(plugin) + if (!mod) return null + if (mod.serverPlugin) { + return { + content: mod.serverPlugin, + version: mod.version + } + } + return null +} + +export const getAvailableServerPlugins = async () => { + const mods = await getAllMods() + return mods.filter(mod => mod.serverPlugin) +} + +window.inspectInstalledMods = getAllMods + +type ModifiableField = { + field: string + label: string + language: string + getContent?: () => string +} + +// --- + +export const getAllModsModifiableFields = () => { + const fields: ModifiableField[] = [ + { + field: 'scriptMainUnstable', + label: 'Main Thread Script (unstable)', + language: 'js' + }, + { + field: 'stylesGlobal', + label: 'Global CSS Styles', + language: 'css' + }, + { + field: 'threeJsBackend', + label: 'Three.js Renderer Backend Thread', + language: 'js' + }, + { + field: 'serverPlugin', + label: 'Built-in server plugin', + language: 'js' + } + ] + return fields +} + +export const getModModifiableFields = (mod: ClientMod): ModifiableField[] => { + return getAllModsModifiableFields().filter(field => mod[field.field]) +} + +export const getModSettingsProxy = (mod: ClientMod) => { + if (!mod.settings) return valtio.proxy({}) + + const proxy = valtio.proxy({}) + for (const [key, setting] of Object.entries(mod.settings)) { + proxy[key] = options[`mod-${mod.name}-${key}`] ?? setting.default + } + + valtio.subscribe(proxy, (ops) => { + for (const op of ops) { + const [type, path, value] = op + const key = path[0] as string + options[`mod-${mod.name}-${key}`] = value + } + }) + + return proxy +} + +export const callMethodAction = async (modName: string, type: 'main', method: string) => { + try { + const mod = window.loadedMods?.[modName] + await mod[method]() + } catch (err) { + showNotification(`Failed to execute ${method}`, `Problem in ${type} js script of ${modName}`, true) + } +} diff --git a/src/connect.ts b/src/connect.ts new file mode 100644 index 00000000..cb6b8f65 --- /dev/null +++ b/src/connect.ts @@ -0,0 +1,96 @@ +// import { versionsByMinecraftVersion } from 'minecraft-data' +// import minecraftInitialDataJson from '../generated/minecraft-initial-data.json' +import MinecraftData from 'minecraft-data' +import PrismarineBlock from 'prismarine-block' +import PrismarineItem from 'prismarine-item' +import { miscUiState } from './globalState' +import supportedVersions from './supportedVersions.mjs' +import { options } from './optionsStorage' +import { downloadSoundsIfNeeded } from './sounds/botSoundSystem' +import { AuthenticatedAccount } from './react/serversStorage' + +export type ConnectOptions = { + server?: string + singleplayer?: any + username: string + proxy?: string + botVersion?: string + serverOverrides? + serverOverridesFlat? + peerId?: string + ignoreQs?: boolean + onSuccessfulPlay?: () => void + serverIndex?: string + authenticatedAccount?: AuthenticatedAccount | true + peerOptions?: any + viewerWsConnect?: string + saveServerToHistory?: boolean + + /** Will enable local replay server */ + worldStateFileContents?: string + + connectEvents?: { + serverCreated?: () => void + // connect: () => void; + // disconnect: () => void; + // error: (err: any) => void; + // ready: () => void; + // end: () => void; + } +} + +export const getVersionAutoSelect = (autoVersionSelect = options.serversAutoVersionSelect) => { + if (autoVersionSelect === 'auto') { + return '1.19.4' + } + if (autoVersionSelect === 'latest') { + return supportedVersions.at(-1)! + } + return autoVersionSelect +} + +export const loadMinecraftData = async (version: string) => { + await window._LOAD_MC_DATA() + // setLoadingScreenStatus(`Loading data for ${version}`) + // // todo expose cache + // // const initialDataVersion = Object.keys(minecraftInitialDataJson)[0]! + // // if (version === initialDataVersion) { + // // // ignore cache hit + // // versionsByMinecraftVersion.pc[initialDataVersion]!.dataVersion!++ + // // } + + const mcData = MinecraftData(version) + window.PrismarineBlock = PrismarineBlock(mcData.version.minecraftVersion!) + window.PrismarineItem = PrismarineItem(mcData.version.minecraftVersion!) + window.loadedData = mcData + window.mcData = mcData + miscUiState.loadedDataVersion = version +} + +export type AssetDownloadReporter = (asset: string, isDone: boolean) => void + +export const downloadAllMinecraftData = async (reporter?: AssetDownloadReporter) => { + reporter?.('mc-data', false) + await window._LOAD_MC_DATA() + reporter?.('mc-data', true) +} + +const loadFonts = async () => { + const FONT_FAMILY = 'mojangles' + if (!document.fonts.check(`1em ${FONT_FAMILY}`)) { + // todo instead re-render signs on load + await document.fonts.load(`1em ${FONT_FAMILY}`).catch(() => { + console.error('Failed to load font, signs wont be rendered correctly') + }) + } +} + +export const downloadOtherGameData = async (reporter?: AssetDownloadReporter) => { + reporter?.('fonts', false) + reporter?.('sounds', false) + + await Promise.all([ + loadFonts().then(() => reporter?.('fonts', true)), + downloadSoundsIfNeeded().then(() => reporter?.('sounds', true)) + ]) +} diff --git a/src/controls.ts b/src/controls.ts new file mode 100644 index 00000000..db6a6fc6 --- /dev/null +++ b/src/controls.ts @@ -0,0 +1,1051 @@ +//@ts-check + +import { Vec3 } from 'vec3' +import { proxy, subscribe } from 'valtio' + +import { ControMax } from 'contro-max/build/controMax' +import { CommandEventArgument, SchemaCommandInput } from 'contro-max/build/types' +import { stringStartsWith } from 'contro-max/build/stringUtils' +import { GameMode } from 'mineflayer' +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' +import { isGameActive, showModal, gameAdditionalState, activeModalStack, hideCurrentModal, miscUiState, hideModal, hideAllModals } from './globalState' +import { goFullscreen, isInRealGameSession, pointerLock, reloadChunks } from './utils' +import { options } from './optionsStorage' +import { openPlayerInventory } from './inventoryWindows' +import { chatInputValueGlobal } from './react/Chat' +import { fsState } from './loadSave' +import { customCommandsConfig } from './customCommands' +import type { CustomCommand } from './react/KeybindingsCustom' +import { showOptionsModal } from './react/SelectOption' +import widgets from './react/widgets' +import { getItemFromBlock } from './chatUtils' +import { gamepadUiCursorState, moveGamepadCursorByPx } from './react/GamepadUiCursor' +import { completeResourcepackPackInstall, copyServerResourcePackToRegular, resourcePackState } from './resourcePack' +import { showNotification } from './react/NotificationProvider' +import { lastConnectOptions } from './react/AppStatusProvider' +import { onCameraMove, onControInit } from './cameraRotationControls' +import { createNotificationProgressReporter } from './core/progressReporter' +import { appStorage } from './react/appStorageProvider' +import { switchGameMode } from './packetsReplay/replayPackets' +import { tabListState } from './react/PlayerListOverlayProvider' +import { type ActionType, type ActionHoldConfig, type CustomAction } from './appConfig' +import { playerState } from './mineflayer/playerState' + +export const customKeymaps = proxy(appStorage.keybindings) +subscribe(customKeymaps, () => { + appStorage.keybindings = customKeymaps +}) + +const controlOptions = { + preventDefault: true +} + +export const contro = new ControMax({ + commands: { + general: { + // movement + jump: ['Space', 'A'], + inventory: ['KeyE', 'X'], + drop: ['KeyQ', 'B'], + dropStack: [null], + sneak: ['ShiftLeft'], + toggleSneakOrDown: [null, 'Right Stick'], + sprint: ['ControlLeft', 'Left Stick'], + // game interactions + nextHotbarSlot: [null, 'Right Bumper'], + prevHotbarSlot: [null, 'Left Bumper'], + attackDestroy: [null, 'Right Trigger'], + interactPlace: [null, 'Left Trigger'], + swapHands: ['KeyF'], + selectItem: ['KeyH'], + rotateCameraLeft: [null], + rotateCameraRight: [null], + rotateCameraUp: [null], + rotateCameraDown: [null], + // ui? + chat: [['KeyT', 'Enter']], + command: ['Slash'], + playersList: ['Tab'], + debugOverlay: ['F3'], + debugOverlayHelpMenu: [null], + // client side + zoom: ['KeyC'], + viewerConsole: ['Backquote'], + togglePerspective: ['F5'], + }, + ui: { + toggleFullscreen: ['F11'], + back: [null/* 'Escape' */, 'B'], + toggleMap: ['KeyJ'], + leftClick: [null, 'A'], + rightClick: [null, 'Y'], + speedupCursor: [null, 'Left Stick'], + pauseMenu: [null, 'Start'] + }, + communication: { + toggleMicrophone: ['KeyM'], + }, + advanced: { + lockUrl: ['KeyY'], + }, + custom: {} as Record, + // waila: { + // showLookingBlockRecipe: ['Numpad3'], + // showLookingBlockUsages: ['Numpad4'] + // } + } satisfies Record>, + movementKeymap: 'WASD', + movementVector: '2d', + groupedCommands: { + general: { + switchSlot: ['Digits', []] + } + }, +}, { + defaultControlOptions: controlOptions, + target: document, + captureEvents () { + return true + }, + storeProvider: { + load: () => customKeymaps, + save () { }, + }, + gamepadPollingInterval: 10 +}) +window.controMax = contro +export type Command = CommandEventArgument['command'] + +export const isCommandDisabled = (command: Command) => { + return miscUiState.appConfig?.disabledCommands?.includes(command) +} + +onControInit() + +updateBinds(customKeymaps) + +const updateDoPreventDefault = () => { + controlOptions.preventDefault = miscUiState.gameLoaded && !activeModalStack.length +} + +subscribe(miscUiState, updateDoPreventDefault) +subscribe(activeModalStack, updateDoPreventDefault) +updateDoPreventDefault() + +const setSprinting = (state: boolean) => { + bot.setControlState('sprint', state) + gameAdditionalState.isSprinting = state +} + +const isSpectatingEntity = () => { + return appViewer.playerState.utils.isSpectatingEntity() +} + +contro.on('movementUpdate', ({ vector, soleVector, gamepadIndex }) => { + // Don't allow movement while spectating an entity + if (isSpectatingEntity()) return + + if (gamepadIndex !== undefined && gamepadUiCursorState.display) { + const deadzone = 0.1 // TODO make deadzone configurable + if (Math.abs(soleVector.x) < deadzone && Math.abs(soleVector.z) < deadzone) { + return + } + moveGamepadCursorByPx(soleVector.x, true) + moveGamepadCursorByPx(soleVector.z, false) + emitMousemove() + } + miscUiState.usingGamepadInput = gamepadIndex !== undefined + if (!bot || !isGameActive(false)) return + + // if (viewer.world.freeFlyMode) { + // // Create movement vector from input + // const direction = new THREE.Vector3(0, 0, 0) + // if (vector.z !== undefined) direction.z = vector.z + // if (vector.x !== undefined) direction.x = vector.x + + // // Apply camera rotation to movement direction + // direction.applyQuaternion(viewer.camera.quaternion) + + // // Update freeFlyState position with normalized direction + // const moveSpeed = 1 + // direction.multiplyScalar(moveSpeed) + // viewer.world.freeFlyState.position.add(new Vec3(direction.x, direction.y, direction.z)) + // return + // } + + // gamepadIndex will be used for splitscreen in future + const coordToAction = [ + ['z', -1, 'forward'], + ['z', 1, 'back'], + ['x', -1, 'left'], + ['x', 1, 'right'], + ] as const + + const newState: Partial = {} + for (const [coord, v] of Object.entries(vector)) { + if (v === undefined || Math.abs(v) < 0.3) continue + // todo use raw values eg for slow movement + const mappedValue = v < 0 ? -1 : 1 + // eslint-disable-next-line @typescript-eslint/no-non-null-asserted-optional-chain + const foundAction = coordToAction.find(([c, mapV]) => c === coord && mapV === mappedValue)?.[2]! + newState[foundAction] = true + } + + for (const key of ['forward', 'back', 'left', 'right'] as const) { + if (newState[key] === bot.controlState[key]) continue + const action = !!newState[key] + if (action && !isGameActive(true)) continue + bot.setControlState(key, action) + + if (key === 'forward') { + // todo workaround: need to refactor + if (action) { + void contro.emit('trigger', { command: 'general.forward' } as any) + } else { + void contro.emit('release', { command: 'general.forward' } as any) + setSprinting(false) + } + } + } +}) + +let lastCommandTrigger = null as { command: string, time: number } | null + +const secondActionActivationTimeout = 300 +const secondActionCommands = { + 'general.jump' () { + // if (bot.game.gameMode === 'spectator') return + toggleFly() + }, + 'general.forward' () { + setSprinting(true) + } +} + +// detect pause open, as ANY keyup event is not fired when you exit pointer lock (esc) +subscribe(activeModalStack, () => { + if (activeModalStack.length) { + // iterate over pressedKeys + for (const key of contro.pressedKeys) { + contro.pressedKeyOrButtonChanged({ code: key }, false) + } + } +}) + +const emitMousemove = () => { + const { x, y } = gamepadUiCursorState + const xAbs = x / 100 * window.innerWidth + const yAbs = y / 100 * window.innerHeight + const element = document.elementFromPoint(xAbs, yAbs) as HTMLElement | null + if (!element) return + element.dispatchEvent(new MouseEvent('mousemove', { + clientX: xAbs, + clientY: yAbs + })) +} + +let lastClickedEl = null as HTMLElement | null +let lastClickedElTimeout: ReturnType | undefined +const inModalCommand = (command: Command, pressed: boolean) => { + if (pressed && !gamepadUiCursorState.display) return + + if (pressed) { + if (command === 'ui.back') { + hideCurrentModal() + } + if (command === 'ui.pauseMenu') { + // hide all modals + hideAllModals() + } + if (command === 'ui.leftClick' || command === 'ui.rightClick') { + // in percent + const { x, y } = gamepadUiCursorState + const xAbs = x / 100 * window.innerWidth + const yAbs = y / 100 * window.innerHeight + const el = document.elementFromPoint(xAbs, yAbs) as HTMLElement + if (el) { + if (el === lastClickedEl && command === 'ui.leftClick') { + el.dispatchEvent(new MouseEvent('dblclick', { + bubbles: true, + clientX: xAbs, + clientY: yAbs + })) + return + } + el.dispatchEvent(new MouseEvent('mousedown', { + button: command === 'ui.leftClick' ? 0 : 2, + bubbles: true, + clientX: xAbs, + clientY: yAbs + })) + el.dispatchEvent(new MouseEvent(command === 'ui.leftClick' ? 'click' : 'contextmenu', { + bubbles: true, + clientX: xAbs, + clientY: yAbs + })) + el.dispatchEvent(new MouseEvent('mouseup', { + button: command === 'ui.leftClick' ? 0 : 2, + bubbles: true, + clientX: xAbs, + clientY: yAbs + })) + el.focus() + lastClickedEl = el + if (lastClickedElTimeout) clearTimeout(lastClickedElTimeout) + lastClickedElTimeout = setTimeout(() => { + lastClickedEl = null + }, 500) + } + } + } + + if (command === 'ui.speedupCursor') { + gamepadUiCursorState.multiply = pressed ? 2 : 1 + } +} + +// Camera rotation controls +const cameraRotationControls = { + activeDirections: new Set<'left' | 'right' | 'up' | 'down'>(), + interval: null as ReturnType | null, + config: { + speed: 1, // movement per interval + interval: 5 // ms between movements + }, + movements: { + left: { movementX: -0.5, movementY: 0 }, + right: { movementX: 0.5, movementY: 0 }, + up: { movementX: 0, movementY: -0.5 }, + down: { movementX: 0, movementY: 0.5 } + }, + updateMovement () { + if (cameraRotationControls.activeDirections.size === 0) { + if (cameraRotationControls.interval) { + clearInterval(cameraRotationControls.interval) + cameraRotationControls.interval = null + } + return + } + + if (!cameraRotationControls.interval) { + cameraRotationControls.interval = setInterval(() => { + // Combine all active movements + const movement = { movementX: 0, movementY: 0 } + for (const direction of cameraRotationControls.activeDirections) { + movement.movementX += cameraRotationControls.movements[direction].movementX + movement.movementY += cameraRotationControls.movements[direction].movementY + } + + onCameraMove({ + ...movement, + type: 'keyboardRotation', + stopPropagation () {} + }) + }, cameraRotationControls.config.interval) + } + }, + start (direction: 'left' | 'right' | 'up' | 'down') { + cameraRotationControls.activeDirections.add(direction) + cameraRotationControls.updateMovement() + }, + stop (direction: 'left' | 'right' | 'up' | 'down') { + cameraRotationControls.activeDirections.delete(direction) + cameraRotationControls.updateMovement() + }, + handleCommand (command: string, pressed: boolean) { + // Don't allow movement while spectating an entity + if (isSpectatingEntity()) return + + const directionMap = { + 'general.rotateCameraLeft': 'left', + 'general.rotateCameraRight': 'right', + 'general.rotateCameraUp': 'up', + 'general.rotateCameraDown': 'down' + } as const + + const direction = directionMap[command] + if (direction) { + if (pressed) cameraRotationControls.start(direction) + else cameraRotationControls.stop(direction) + return true + } + return false + } +} +window.cameraRotationControls = cameraRotationControls + +const setSneaking = (state: boolean) => { + gameAdditionalState.isSneaking = state + bot.setControlState('sneak', state) + +} + +const onTriggerOrReleased = (command: Command, pressed: boolean) => { + // always allow release! + if (!bot || !isGameActive(false)) return + if (stringStartsWith(command, 'general')) { + // handle general commands + // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check + switch (command) { + case 'general.jump': + if (isSpectatingEntity()) break + // if (viewer.world.freeFlyMode) { + // const moveSpeed = 0.5 + // viewer.world.freeFlyState.position.add(new Vec3(0, pressed ? moveSpeed : 0, 0)) + // } else { + bot.setControlState('jump', pressed) + // } + break + case 'general.sneak': + // if (viewer.world.freeFlyMode) { + // const moveSpeed = 0.5 + // viewer.world.freeFlyState.position.add(new Vec3(0, pressed ? -moveSpeed : 0, 0)) + // } else { + setSneaking(pressed) + // } + break + case 'general.sprint': + // todo add setting to change behavior + if (pressed) { + setSprinting(pressed) + } + break + case 'general.toggleSneakOrDown': + if (gameAdditionalState.isFlying) { + setSneaking(pressed) + } else if (pressed) { + setSneaking(!gameAdditionalState.isSneaking) + } + break + case 'general.attackDestroy': + document.dispatchEvent(new MouseEvent(pressed ? 'mousedown' : 'mouseup', { button: 0 })) + break + case 'general.interactPlace': + document.dispatchEvent(new MouseEvent(pressed ? 'mousedown' : 'mouseup', { button: 2 })) + break + case 'general.zoom': + gameAdditionalState.isZooming = pressed + break + case 'general.debugOverlay': + if (pressed) { + miscUiState.showDebugHud = !miscUiState.showDebugHud + } + break + case 'general.debugOverlayHelpMenu': + if (pressed) { + void onF3LongPress() + } + break + case 'general.rotateCameraLeft': + case 'general.rotateCameraRight': + case 'general.rotateCameraUp': + case 'general.rotateCameraDown': + cameraRotationControls.handleCommand(command, pressed) + break + case 'general.playersList': + tabListState.isOpen = pressed + break + case 'general.viewerConsole': + if (lastConnectOptions.value?.viewerWsConnect) { + showModal({ reactType: 'console' }) + } + break + case 'general.togglePerspective': + if (pressed) { + const currentPerspective = playerState.reactive.perspective + // eslint-disable-next-line sonarjs/no-nested-switch + switch (currentPerspective) { + case 'first_person': + playerState.reactive.perspective = 'third_person_back' + break + case 'third_person_back': + playerState.reactive.perspective = 'third_person_front' + break + case 'third_person_front': + playerState.reactive.perspective = 'first_person' + break + } + } + break + } + } else if (stringStartsWith(command, 'ui')) { + switch (command) { + case 'ui.pauseMenu': + if (pressed) { + if (activeModalStack.length) { + hideCurrentModal() + } else { + showModal({ reactType: 'pause-screen' }) + } + } + break + case 'ui.back': + case 'ui.toggleFullscreen': + case 'ui.toggleMap': + case 'ui.leftClick': + case 'ui.rightClick': + case 'ui.speedupCursor': + // These are handled elsewhere + break + } + } +} + +// im still not sure, maybe need to refactor to handle in inventory instead +const alwaysPressedHandledCommand = (command: Command) => { + inModalCommand(command, true) + // triggered even outside of the game + if (command === 'general.inventory') { + if (activeModalStack.at(-1)?.reactType?.startsWith?.('player_win:')) { // todo? + hideCurrentModal() + } + } + if (command === 'advanced.lockUrl') { + lockUrl() + } + if (command === 'communication.toggleMicrophone') { + toggleMicrophoneMuted?.() + } +} + +export function lockUrl () { + let newQs = '' + if (fsState.saveLoaded && fsState.inMemorySave) { + const worldFolder = fsState.inMemorySavePath + const save = worldFolder.split('/').at(-1) + newQs = `loadSave=${save}` + } else if (process.env.NODE_ENV === 'development') { + newQs = `reconnect=1` + } else if (lastConnectOptions.value?.server) { + const qs = new URLSearchParams() + const { server, botVersion, proxy, username } = lastConnectOptions.value + qs.set('ip', server) + if (botVersion) qs.set('version', botVersion) + if (proxy) qs.set('proxy', proxy) + if (username) qs.set('username', username) + newQs = String(qs.toString()) + } + + if (newQs) { + window.history.replaceState({}, '', `${window.location.pathname}?${newQs}`) + } +} + +function cycleHotbarSlot (dir: 1 | -1) { + const newHotbarSlot = (bot.quickBarSlot + dir + 9) % 9 + bot.setQuickBarSlot(newHotbarSlot) +} + +// custom commands handler +const customCommandsHandler = ({ command }) => { + const [section, name] = command.split('.') + if (!isGameActive(true) || section !== 'custom') return + + if (contro.userConfig?.custom) { + customCommandsConfig[(contro.userConfig.custom[name] as CustomCommand).type].handler((contro.userConfig.custom[name] as CustomCommand).inputs) + } +} +contro.on('trigger', customCommandsHandler) + +contro.on('trigger', ({ command }) => { + if (isCommandDisabled(command)) return + + const willContinue = !isGameActive(true) + alwaysPressedHandledCommand(command) + if (willContinue) return + + const secondActionCommand = secondActionCommands[command] + if (secondActionCommand) { + if (command === lastCommandTrigger?.command && Date.now() - lastCommandTrigger.time < secondActionActivationTimeout) { + const commandToTrigger = secondActionCommands[lastCommandTrigger.command] + commandToTrigger() + lastCommandTrigger = null + } else { + lastCommandTrigger = { + command, + time: Date.now(), + } + } + } + + onTriggerOrReleased(command, true) + + if (stringStartsWith(command, 'general')) { + switch (command) { + case 'general.jump': + case 'general.sneak': + case 'general.toggleSneakOrDown': + case 'general.sprint': + case 'general.attackDestroy': + case 'general.rotateCameraLeft': + case 'general.rotateCameraRight': + case 'general.rotateCameraUp': + case 'general.rotateCameraDown': + case 'general.debugOverlay': + case 'general.debugOverlayHelpMenu': + case 'general.playersList': + case 'general.togglePerspective': + // no-op + break + case 'general.swapHands': { + if (isSpectatingEntity()) break + bot._client.write('block_dig', { + 'status': 6, + 'location': { + 'x': 0, + 'z': 0, + 'y': 0 + }, + 'face': 0, + }) + break + } + case 'general.interactPlace': + // handled in onTriggerOrReleased + break + case 'general.inventory': + if (isSpectatingEntity()) break + document.exitPointerLock?.() + openPlayerInventory() + break + case 'general.drop': { + if (isSpectatingEntity()) break + // protocol 1.9+ + bot._client.write('block_dig', { + 'status': 4, + 'location': { + 'x': 0, + 'z': 0, + 'y': 0 + }, + 'face': 0, + sequence: 0 + }) + const slot = bot.inventory.hotbarStart + bot.quickBarSlot + const item = bot.inventory.slots[slot] + if (item) { + item.count-- + bot.inventory.updateSlot(slot, item.count > 0 ? item : null!) + } + break + } + case 'general.dropStack': { + if (bot.heldItem) { + void bot.tossStack(bot.heldItem) + } + break + } + case 'general.chat': + showModal({ reactType: 'chat' }) + break + case 'general.command': + chatInputValueGlobal.value = '/' + showModal({ reactType: 'chat' }) + break + case 'general.selectItem': + if (isSpectatingEntity()) break + void selectItem() + break + case 'general.nextHotbarSlot': + if (isSpectatingEntity()) break + cycleHotbarSlot(1) + break + case 'general.prevHotbarSlot': + if (isSpectatingEntity()) break + cycleHotbarSlot(-1) + break + case 'general.zoom': + break + case 'general.viewerConsole': + if (lastConnectOptions.value?.viewerWsConnect) { + showModal({ reactType: 'console' }) + } + break + } + } + + if (command === 'ui.toggleFullscreen') { + void goFullscreen(true) + } +}) + +// show-hide Fullmap +contro.on('trigger', ({ command }) => { + if (command !== 'ui.toggleMap') return + const isActive = isGameActive(true) + if (activeModalStack.at(-1)?.reactType === 'full-map') { + miscUiState.displayFullmap = false + hideModal({ reactType: 'full-map' }) + } else if (isActive && !activeModalStack.length) { + miscUiState.displayFullmap = true + showModal({ reactType: 'full-map' }) + } +}) + +contro.on('release', ({ command }) => { + if (isCommandDisabled(command)) return + + inModalCommand(command, false) + onTriggerOrReleased(command, false) +}) + +// hard-coded keybindings + +export const f3Keybinds: Array<{ + key?: string, + action: () => void | Promise, + mobileTitle: string + enabled?: () => boolean +}> = [ + { + key: 'KeyA', + action () { + //@ts-expect-error + const loadedChunks = Object.entries(worldView.loadedChunks).filter(([, v]) => v).map(([key]) => key.split(',').map(Number)) + for (const [x, z] of loadedChunks) { + worldView!.unloadChunk({ x, z }) + } + // for (const child of viewer.scene.children) { + // if (child.name === 'chunk') { // should not happen + // viewer.scene.remove(child) + // console.warn('forcefully removed chunk from scene') + // } + // } + if (localServer) { + //@ts-expect-error not sure why it is private... maybe revisit api? + localServer.players[0].world.columns = {} + } + void reloadChunks() + if (appViewer.backend?.backendMethods && typeof appViewer.backend.backendMethods.reloadWorld === 'function') { + appViewer.backend.backendMethods.reloadWorld() + } + }, + mobileTitle: 'Reload chunks', + }, + { + key: 'KeyG', + action () { + options.showChunkBorders = !options.showChunkBorders + }, + mobileTitle: 'Toggle chunk borders', + }, + { + key: 'KeyH', + action () { + showModal({ reactType: 'chunks-debug' }) + }, + mobileTitle: 'Show Chunks Debug', + }, + { + action () { + showModal({ reactType: 'renderer-debug' }) + }, + mobileTitle: 'Renderer Debug Menu', + }, + { + key: 'KeyY', + async action () { + // waypoints + const widgetNames = widgets.map(widget => widget.name) + const widget = await showOptionsModal('Open Widget', widgetNames) + if (!widget) return + showModal({ reactType: `widget-${widget}` }) + }, + mobileTitle: 'Open Widget' + }, + { + key: 'KeyT', + async action () { + // TODO! + if (resourcePackState.resourcePackInstalled || gameAdditionalState.usingServerResourcePack) { + showNotification('Reloading textures...') + await completeResourcepackPackInstall('default', 'default', gameAdditionalState.usingServerResourcePack, createNotificationProgressReporter()) + } + }, + mobileTitle: 'Reload Textures' + }, + { + key: 'F4', + async action () { + let nextGameMode: GameMode + switch (bot.game.gameMode) { + case 'creative': { + nextGameMode = 'survival' + + break + } + case 'survival': { + nextGameMode = 'adventure' + + break + } + case 'adventure': { + nextGameMode = 'spectator' + + break + } + case 'spectator': { + nextGameMode = 'creative' + + break + } + // No default + } + if (lastConnectOptions.value?.worldStateFileContents) { + switchGameMode(nextGameMode) + } else { + bot.chat(`/gamemode ${nextGameMode}`) + } + }, + mobileTitle: 'Cycle Game Mode' + }, + { + key: 'KeyP', + async action () { + const { uuid, ping: playerPing, username } = bot.player + const proxyPing = await bot['pingProxy']() + void showOptionsModal(`${username}: last known total latency (ping): ${playerPing}. Connected to ${lastConnectOptions.value?.proxy} with current ping ${proxyPing}. Player UUID: ${uuid}`, []) + }, + mobileTitle: 'Show Player & Ping Details', + enabled: () => !lastConnectOptions.value?.singleplayer && !!bot.player + }, + { + action () { + void copyServerResourcePackToRegular() + }, + mobileTitle: 'Copy Server Resource Pack', + enabled: () => !!gameAdditionalState.usingServerResourcePack + } +] + +export const reloadChunksAction = () => { + const action = f3Keybinds.find(f3Keybind => f3Keybind.key === 'KeyA') + void action!.action() +} + +document.addEventListener('keydown', (e) => { + if (!isGameActive(false)) return + if (contro.pressedKeys.has('F3')) { + const keybind = f3Keybinds.find((v) => v.key === e.code) + if (keybind && (keybind.enabled?.() ?? true)) { + void keybind.action() + e.stopPropagation() + } + } +}, { + capture: true, +}) + +const isFlying = () => (bot.entity as any).flying + +const startFlying = (sendAbilities = true) => { + if (sendAbilities) { + bot._client.write('abilities', { + flags: 2, + }) + } + (bot.entity as any).flying = true +} + +const endFlying = (sendAbilities = true) => { + if (!isFlying()) return + if (sendAbilities) { + bot._client.write('abilities', { + flags: 0, + }) + } + (bot.entity as any).flying = false +} + +export const onBotCreate = () => { +} + +const toggleFly = (newState = !isFlying(), sendAbilities?: boolean) => { + if (!bot.entity.canFly) return + + if (newState) { + startFlying(sendAbilities) + } else { + endFlying(sendAbilities) + } + gameAdditionalState.isFlying = isFlying() +} + +const selectItem = async () => { + const block = bot.blockAtCursor(5) + if (!block) return + const itemId = getItemFromBlock(block)?.id + if (!itemId) return + const Item = require('prismarine-item')(bot.version) + const item = new Item(itemId, 1, 0) + await bot.creative.setInventorySlot(bot.inventory.hotbarStart + bot.quickBarSlot, item) + bot.updateHeldItem() +} + +addEventListener('mousedown', async (e) => { + // always prevent default for side buttons (back / forward navigation) + if (e.button === 3 || e.button === 4) { + e.preventDefault() + } + + if ((e.target as HTMLElement).matches?.('#VRButton')) return + if (!isInRealGameSession() && !(e.target as HTMLElement).id.includes('ui-root')) return + void pointerLock.requestPointerLock() + if (!bot) return + getThreeJsRendererMethods()?.onPageInteraction() + // wheel click + // todo support ctrl+wheel (+nbt) + if (e.button === 1) { + await selectItem() + } +}) + +window.addEventListener('keydown', (e) => { + if (e.code !== 'Escape') return + if (!activeModalStack.length) { + getThreeJsRendererMethods()?.onPageInteraction() + } + + if (activeModalStack.length) { + const hideAll = e.ctrlKey || e.metaKey + if (hideAll) { + hideAllModals() + } else { + hideCurrentModal() + } + if (activeModalStack.length === 0) { + getThreeJsRendererMethods()?.onPageInteraction() + pointerLock.justHitEscape = true + } + } else if (pointerLock.hasPointerLock) { + document.exitPointerLock?.() + if (options.autoExitFullscreen) { + void document.exitFullscreen() + } + } else { + document.dispatchEvent(new Event('pointerlockchange')) + } +}) + +window.addEventListener('keydown', (e) => { + if (e.code !== 'F2' || e.repeat || !isGameActive(true)) return + e.preventDefault() + const canvas = document.getElementById('viewer-canvas') as HTMLCanvasElement + if (!canvas) return + const link = document.createElement('a') + link.href = canvas.toDataURL('image/png') + const date = new Date() + link.download = `screenshot ${date.toLocaleString().replaceAll('.', '-').replace(',', '')}.png` + link.click() +}) + +window.addEventListener('keydown', (e) => { + if (e.code !== 'F1' || e.repeat || !isGameActive(true)) return + e.preventDefault() + miscUiState.showUI = !miscUiState.showUI +}) + +// #region experimental debug things +window.addEventListener('keydown', (e) => { + if (e.code === 'KeyL' && e.altKey && !e.shiftKey && !e.ctrlKey && !e.metaKey) { + console.clear() + } + if (e.code === 'KeyK' && e.altKey && e.shiftKey && !e.ctrlKey && !e.metaKey) { + if (sessionStorage.delayLoadUntilFocus) { + sessionStorage.removeItem('delayLoadUntilFocus') + } else { + sessionStorage.setItem('delayLoadUntilFocus', 'true') + } + } + if (e.code === 'KeyK' && e.altKey && !e.shiftKey && !e.ctrlKey && !e.metaKey) { + // eslint-disable-next-line no-debugger + debugger + } +}) +// #endregion + +export function updateBinds (commands: any) { + contro.inputSchema.commands.custom = Object.fromEntries(Object.entries(commands?.custom ?? {}).map(([key, value]) => { + return [key, { + keys: [], + gamepad: [], + type: '', + inputs: [] + }] + })) + + for (const [group, actions] of Object.entries(commands)) { + contro.userConfig![group] = Object.fromEntries(Object.entries(actions).map(([key, value]) => { + const newValue = { + keys: value?.keys ?? undefined, + gamepad: value?.gamepad ?? undefined, + } + + if (group === 'custom') { + newValue['type'] = (value).type + newValue['inputs'] = (value).inputs + } + + return [key, newValue] + })) + } +} + +export const onF3LongPress = async () => { + const actions = f3Keybinds.filter(f3Keybind => { + return f3Keybind.mobileTitle && (f3Keybind.enabled?.() ?? true) + }) + const actionNames = actions.map(f3Keybind => { + return `${f3Keybind.mobileTitle}${f3Keybind.key ? ` (F3+${f3Keybind.key})` : ''}` + }) + const select = await showOptionsModal('', actionNames) + if (!select) return + const actionIndex = actionNames.indexOf(select) + const f3Keybind = actions[actionIndex]! + void f3Keybind.action() +} + +export const handleMobileButtonCustomAction = (action: CustomAction) => { + const handler = customCommandsConfig[action.type]?.handler + if (handler) { + handler([...action.input]) + } +} + +export const triggerCommand = (command: Command, isDown: boolean) => { + handleMobileButtonActionCommand(command, isDown) +} + +export const handleMobileButtonActionCommand = (command: ActionType | ActionHoldConfig, isDown: boolean) => { + const commandValue = typeof command === 'string' ? command : 'command' in command ? command.command : command + + // Check if command is disabled before proceeding + if (typeof commandValue === 'string' && isCommandDisabled(commandValue as Command)) return + + if (typeof commandValue === 'string' && !stringStartsWith(commandValue, 'custom')) { + const event: CommandEventArgument = { + command: commandValue as Command, + schema: { + keys: [], + gamepad: [] + } + } + if (isDown) { + contro.emit('trigger', event) + } else { + contro.emit('release', event) + } + } else if (typeof commandValue === 'object') { + if (isDown) { + handleMobileButtonCustomAction(commandValue) + } + } +} + +export const handleMobileButtonLongPress = (actionHold: ActionHoldConfig) => { + if (typeof actionHold.longPressAction === 'string' && actionHold.longPressAction === 'general.debugOverlayHelpMenu') { + void onF3LongPress() + } else if (actionHold.longPressAction) { + handleMobileButtonActionCommand(actionHold.longPressAction, true) + } +} diff --git a/src/core/ideChannels.ts b/src/core/ideChannels.ts new file mode 100644 index 00000000..a9c517f7 --- /dev/null +++ b/src/core/ideChannels.ts @@ -0,0 +1,106 @@ +import { proxy } from 'valtio' + +export const ideState = proxy({ + id: '', + contents: '', + line: 0, + column: 0, + language: 'typescript', + title: '', +}) +globalThis.ideState = ideState + +export const registerIdeChannels = () => { + registerIdeOpenChannel() + registerIdeSaveChannel() +} + +const registerIdeOpenChannel = () => { + const CHANNEL_NAME = 'minecraft-web-client:ide-open' + + const packetStructure = [ + 'container', + [ + { + name: 'id', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'language', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'contents', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'line', + type: 'i32' + }, + { + name: 'column', + type: 'i32' + }, + { + name: 'title', + type: ['pstring', { countType: 'i16' }] + } + ] + ] + + bot._client.registerChannel(CHANNEL_NAME, packetStructure, true) + + bot._client.on(CHANNEL_NAME as any, (data) => { + const { id, language, contents, line, column, title } = data + + ideState.contents = contents + ideState.line = line + ideState.column = column + ideState.id = id + ideState.language = language || 'typescript' + ideState.title = title + }) + + console.debug(`registered custom channel ${CHANNEL_NAME} channel`) +} +const IDE_SAVE_CHANNEL_NAME = 'minecraft-web-client:ide-save' +const registerIdeSaveChannel = () => { + + const packetStructure = [ + 'container', + [ + { + name: 'id', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'contents', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'language', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'line', + type: 'i32' + }, + { + name: 'column', + type: 'i32' + }, + ] + ] + bot._client.registerChannel(IDE_SAVE_CHANNEL_NAME, packetStructure, true) +} + +export const saveIde = () => { + bot._client.writeChannel(IDE_SAVE_CHANNEL_NAME, { + id: ideState.id, + contents: ideState.contents, + language: ideState.language, + // todo: reflect updated + line: ideState.line, + column: ideState.column, + }) +} diff --git a/src/core/importExport.ts b/src/core/importExport.ts new file mode 100644 index 00000000..b3e26347 --- /dev/null +++ b/src/core/importExport.ts @@ -0,0 +1,219 @@ +import { appStorage } from '../react/appStorageProvider' +import { getChangedSettings, options } from '../optionsStorage' +import { customKeymaps } from '../controls' +import { showInputsModal } from '../react/SelectOption' + +interface ExportedFile { + _about: string + options?: Record + keybindings?: Record + servers?: any[] + username?: string + proxy?: string + proxies?: string[] + accountTokens?: any[] +} + +export const importData = async () => { + try { + const input = document.createElement('input') + input.type = 'file' + input.accept = '.json' + input.click() + + const file = await new Promise((resolve) => { + input.onchange = () => { + if (!input.files?.[0]) return + resolve(input.files[0]) + } + }) + + const text = await file.text() + const data = JSON.parse(text) + + if (!data._about?.includes('Minecraft Web Client')) { + const doContinue = confirm('This file does not appear to be a Minecraft Web Client profile. Continue anyway?') + if (!doContinue) return + } + + // Build available data types for selection + const availableData: Record, { present: boolean, description: string }> = { + options: { present: !!data.options, description: 'Game settings and preferences' }, + keybindings: { present: !!data.keybindings, description: 'Custom key mappings' }, + servers: { present: !!data.servers, description: 'Saved server list' }, + username: { present: !!data.username, description: 'Username' }, + proxy: { present: !!data.proxy, description: 'Selected proxy server' }, + proxies: { present: !!data.proxies, description: 'Global proxies list' }, + accountTokens: { present: !!data.accountTokens, description: 'Account authentication tokens' }, + } + + // Filter to only present data types + const presentTypes = Object.fromEntries(Object.entries(availableData) + .filter(([_, info]) => info.present) + .map(([key, info]) => [key, info])) + + if (Object.keys(presentTypes).length === 0) { + alert('No compatible data found in the imported file.') + return + } + + const importChoices = await showInputsModal('Select Data to Import', { + mergeData: { + type: 'checkbox', + label: 'Merge with existing data (uncheck to remove old data)', + defaultValue: true, + }, + ...Object.fromEntries(Object.entries(presentTypes).map(([key, info]) => [key, { + type: 'checkbox', + label: info.description, + defaultValue: true, + }])) + }) as { mergeData: boolean } & Record + + if (!importChoices) return + + const importedTypes: string[] = [] + const shouldMerge = importChoices.mergeData + + if (importChoices.options && data.options) { + if (shouldMerge) { + Object.assign(options, data.options) + } else { + for (const key of Object.keys(options)) { + if (key in data.options) { + options[key as any] = data.options[key] + } + } + } + importedTypes.push('settings') + } + + if (importChoices.keybindings && data.keybindings) { + if (shouldMerge) { + Object.assign(customKeymaps, data.keybindings) + } else { + for (const key of Object.keys(customKeymaps)) delete customKeymaps[key] + Object.assign(customKeymaps, data.keybindings) + } + importedTypes.push('keybindings') + } + + if (importChoices.servers && data.servers) { + if (shouldMerge && appStorage.serversList) { + // Merge by IP, update existing entries and add new ones + const existingIps = new Set(appStorage.serversList.map(s => s.ip)) + const newServers = data.servers.filter(s => !existingIps.has(s.ip)) + appStorage.serversList = [...appStorage.serversList, ...newServers] + } else { + appStorage.serversList = data.servers + } + importedTypes.push('servers') + } + + if (importChoices.username && data.username) { + appStorage.username = data.username + importedTypes.push('username') + } + + if ((importChoices.proxy && data.proxy) || (importChoices.proxies && data.proxies)) { + if (!appStorage.proxiesData) { + appStorage.proxiesData = { proxies: [], selected: '' } + } + + if (importChoices.proxies && data.proxies) { + if (shouldMerge) { + // Merge unique proxies + const uniqueProxies = new Set([...appStorage.proxiesData.proxies, ...data.proxies]) + appStorage.proxiesData.proxies = [...uniqueProxies] + } else { + appStorage.proxiesData.proxies = data.proxies + } + importedTypes.push('proxies list') + } + + if (importChoices.proxy && data.proxy) { + appStorage.proxiesData.selected = data.proxy + importedTypes.push('selected proxy') + } + } + + if (importChoices.accountTokens && data.accountTokens) { + if (shouldMerge && appStorage.authenticatedAccounts) { + // Merge by unique identifier (assuming accounts have some unique ID or username) + const existingAccounts = new Set(appStorage.authenticatedAccounts.map(a => a.username)) + const newAccounts = data.accountTokens.filter(a => !existingAccounts.has(a.username)) + appStorage.authenticatedAccounts = [...appStorage.authenticatedAccounts, ...newAccounts] + } else { + appStorage.authenticatedAccounts = data.accountTokens + } + importedTypes.push('account tokens') + } + + alert(`Profile imported successfully! Imported data: ${importedTypes.join(', ')}.\nYou may need to reload the page for some changes to take effect.`) + } catch (err) { + console.error('Failed to import profile:', err) + alert('Failed to import profile: ' + (err.message || err)) + } +} + +export const exportData = async () => { + const data = await showInputsModal('Export Profile', { + profileName: { + type: 'text', + }, + exportSettings: { + type: 'checkbox', + defaultValue: true, + }, + exportKeybindings: { + type: 'checkbox', + defaultValue: true, + }, + exportServers: { + type: 'checkbox', + defaultValue: true, + }, + saveUsernameAndProxy: { + type: 'checkbox', + defaultValue: true, + }, + exportGlobalProxiesList: { + type: 'checkbox', + defaultValue: false, + }, + exportAccountTokens: { + type: 'checkbox', + defaultValue: false, + }, + }) + const fileName = `${data.profileName ? `${data.profileName}-` : ''}web-client-profile.json` + const json: ExportedFile = { + _about: 'Minecraft Web Client (mcraft.fun) Profile', + ...data.exportSettings ? { + options: getChangedSettings(), + } : {}, + ...data.exportKeybindings ? { + keybindings: customKeymaps, + } : {}, + ...data.exportServers ? { + servers: appStorage.serversList, + } : {}, + ...data.saveUsernameAndProxy ? { + username: appStorage.username, + proxy: appStorage.proxiesData?.selected, + } : {}, + ...data.exportGlobalProxiesList ? { + proxies: appStorage.proxiesData?.proxies, + } : {}, + ...data.exportAccountTokens ? { + accountTokens: appStorage.authenticatedAccounts, + } : {}, + } + const blob = new Blob([JSON.stringify(json, null, 2)], { type: 'application/json' }) + const url = URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = url + a.download = fileName + a.click() + URL.revokeObjectURL(url) +} diff --git a/src/core/progressReporter.ts b/src/core/progressReporter.ts new file mode 100644 index 00000000..75878fd2 --- /dev/null +++ b/src/core/progressReporter.ts @@ -0,0 +1,234 @@ +import { setLoadingScreenStatus } from '../appStatus' +import { appStatusState } from '../react/AppStatusProvider' +import { hideNotification, showNotification } from '../react/NotificationProvider' +import { pixelartIcons } from '../react/PixelartIcon' + +export interface ProgressReporter { + currentMessage: string | undefined + beginStage (stage: string, title: string): void + endStage (stage: string): void + setSubStage (stage: string, subStageTitle: string): void + reportProgress (stage: string, progress: number): void + executeWithMessage(message: string, fn: () => Promise): Promise + executeWithMessage(message: string, stage: string, fn: () => Promise): Promise + + setMessage (message: string): void + + end(): void + error(message: string): void +} + +interface ReporterDisplayImplementation { + setMessage (message: string): void + end (): void + error(message: string): void +} + +interface StageInfo { + title: string + subStage?: string + progress?: number +} + +const NO_STAGES_ACTION_END = false + +const createProgressReporter = (implementation: ReporterDisplayImplementation): ProgressReporter => { + const stages = new Map() + let currentMessage: string | undefined + let ended = false + + const end = () => { + if (ended) return + ended = true + stages.clear() + implementation.end() + } + + const updateStatus = () => { + if (ended) return + const activeStages = [...stages.entries()] + if (activeStages.length === 0) { + if (NO_STAGES_ACTION_END) { + end() + } else { + implementation.setMessage('Waiting for tasks') + } + return + } + + const [currentStage, info] = activeStages.at(-1)! + let message = info.title + if (info.subStage) { + message += ` - ${info.subStage}` + } + if (info.progress !== undefined) { + const num = Math.round(info.progress * 100) + if (isFinite(num)) { + message += `: ${num}%` + } + } + + currentMessage = message + implementation.setMessage(message) + } + + const reporter = { + beginStage (stage: string, title: string) { + if (stages.has(stage)) { + throw new Error(`Stage ${stage} already is running`) + } + stages.set(stage, { title }) + updateStatus() + }, + + endStage (stage: string) { + stages.delete(stage) + updateStatus() + }, + + setSubStage (stage: string, subStageTitle: string) { + const info = stages.get(stage) + if (info) { + info.subStage = subStageTitle + updateStatus() + } + }, + + reportProgress (stage: string, progress: number) { + const info = stages.get(stage) + if (info) { + info.progress = progress + updateStatus() + } + }, + + async executeWithMessage(...args: any[]): Promise { + const message = args[0] + const stage = typeof args[1] === 'string' ? args[1] : undefined + const fn = typeof args[1] === 'string' ? args[2] : args[1] + + const tempStage = stage ?? 'temp-' + Math.random().toString(36).slice(2) + reporter.beginStage(tempStage, message) + try { + const result = await fn() + return result + } finally { + reporter.endStage(tempStage) + } + }, + + end (): void { + end() + }, + + setMessage (message: string): void { + if (ended) return + implementation.setMessage(message) + }, + + get currentMessage () { + return currentMessage + }, + + error (message: string): void { + if (ended) return + implementation.error(message) + } + } + + return reporter +} + +const fullScreenReporters = [] as ProgressReporter[] +export const createFullScreenProgressReporter = (): ProgressReporter => { + const reporter = createProgressReporter({ + setMessage (message: string) { + if (appStatusState.isError) return + setLoadingScreenStatus(message) + }, + end () { + if (appStatusState.isError) return + fullScreenReporters.splice(fullScreenReporters.indexOf(reporter), 1) + if (fullScreenReporters.length === 0) { + setLoadingScreenStatus(undefined) + } else { + setLoadingScreenStatus(fullScreenReporters.at(-1)!.currentMessage) + } + }, + + error (message: string): void { + if (appStatusState.isError) return + setLoadingScreenStatus(message, true) + } + }) + fullScreenReporters.push(reporter) + return reporter +} + +export const createNotificationProgressReporter = (endMessage?: string): ProgressReporter => { + const id = `progress-reporter-${Math.random().toString(36).slice(2)}` + return createProgressReporter({ + setMessage (message: string) { + showNotification(`${message}...`, '', false, '', undefined, true, id) + }, + end () { + if (endMessage) { + showNotification(endMessage, '', false, pixelartIcons.check, undefined, true) + } else { + hideNotification(id) + } + }, + + error (message: string): void { + showNotification(message, '', true, '', undefined, true) + } + }) +} + +export const createConsoleLogProgressReporter = (group?: string): ProgressReporter => { + return createProgressReporter({ + setMessage (message: string) { + console.log(group ? `[${group}] ${message}` : message) + }, + end () { + console.log(group ? `[${group}] done` : 'done') + }, + + error (message: string): void { + console.error(message) + } + }) +} + +export const createWrappedProgressReporter = (reporter: ProgressReporter, message?: string) => { + const stage = `wrapped-${message}` + if (message) { + reporter.beginStage(stage, message) + } + + return createProgressReporter({ + setMessage (message: string) { + reporter.setMessage(message) + }, + end () { + if (message) { + reporter.endStage(stage) + } + }, + + error (message: string): void { + reporter.error(message) + } + }) +} + +export const createNullProgressReporter = (): ProgressReporter => { + return createProgressReporter({ + setMessage (message: string) { + }, + end () { + }, + error (message: string) { + } + }) +} diff --git a/src/core/timers.ts b/src/core/timers.ts new file mode 100644 index 00000000..570f46c0 --- /dev/null +++ b/src/core/timers.ts @@ -0,0 +1,139 @@ +import { options } from '../optionsStorage' + +interface Timer { + id: number + callback: () => void + targetTime: number + isInterval: boolean + interval?: number + cleanup?: () => void +} + +let nextTimerId = 1 +const timers: Timer[] = [] + +// TODO implementation breaks tps (something is wrong with intervals) +const fixBrowserTimers = () => { + const originalSetTimeout = window.setTimeout + //@ts-expect-error + window.setTimeout = (callback: () => void, delay: number) => { + if (!delay) { + return originalSetTimeout(callback) + } + const id = nextTimerId++ + const targetTime = performance.now() + delay + timers.push({ id, callback, targetTime, isInterval: false }) + originalSetTimeout(() => { + checkTimers() + }, delay) + return id + } + + const originalSetInterval = window.setInterval + //@ts-expect-error + window.setInterval = (callback: () => void, interval: number) => { + if (!interval) { + return originalSetInterval(callback, interval) + } + const id = nextTimerId++ + const targetTime = performance.now() + interval + const originalInterval = originalSetInterval(() => { + checkTimers() + }, interval) + timers.push({ + id, + callback, + targetTime, + isInterval: true, + interval, + cleanup () { + originalClearInterval(originalInterval) + }, + }) + return id + } + + const originalClearTimeout = window.clearTimeout + //@ts-expect-error + window.clearTimeout = (id: number) => { + const index = timers.findIndex(t => t.id === id) + if (index !== -1) { + timers.splice(index, 1) + } + return originalClearTimeout(id) + } + + const originalClearInterval = window.clearInterval + //@ts-expect-error + window.clearInterval = (id: number) => { + const index = timers.findIndex(t => t.id === id) + if (index !== -1) { + const timer = timers[index] + if (timer.cleanup) { + timer.cleanup() + } + timers.splice(index, 1) + } + return originalClearInterval(id) + } +} + +export const checkTimers = () => { + const now = performance.now() + + let triggered = false + for (let i = timers.length - 1; i >= 0; i--) { + const timer = timers[i] + + if (now >= timer.targetTime) { + triggered = true + timer.callback() + + if (timer.isInterval && timer.interval) { + // Reschedule interval + timer.targetTime = now + timer.interval + } else { + // Remove one-time timer + timers.splice(i, 1) + } + } + } + + if (!triggered) { + console.log('No timers triggered!') + } +} + +// workaround for browser timers throttling after 5 minutes of tab inactivity +export const preventThrottlingWithSound = () => { + try { + const audioContext = new (window.AudioContext || (window as any).webkitAudioContext)() + const oscillator = audioContext.createOscillator() + const gainNode = audioContext.createGain() + + // Unfortunatelly cant use 0 + gainNode.gain.value = 0.001 + + // Connect nodes + oscillator.connect(gainNode) + gainNode.connect(audioContext.destination) + + // Use a very low frequency + oscillator.frequency.value = 1 + + // Start playing + oscillator.start() + + return async () => { + try { + oscillator.stop() + await audioContext.close() + } catch (err) { + console.warn('Error stopping silent audio:', err) + } + } + } catch (err) { + console.error('Error creating silent audio:', err) + return () => {} + } +} diff --git a/src/createLocalServer.ts b/src/createLocalServer.ts new file mode 100644 index 00000000..d0beac9a --- /dev/null +++ b/src/createLocalServer.ts @@ -0,0 +1,17 @@ +import { LocalServer } from './customServer' + +const { createMCServer } = require('flying-squid/dist') + +export const startLocalServer = (serverOptions) => { + const passOptions = { ...serverOptions, Server: LocalServer } + const server: NonNullable = createMCServer(passOptions) + server.formatMessage = (message) => `[server] ${message}` + server.options = passOptions + //@ts-expect-error todo remove + server.looseProtocolMode = true + return server +} + +// features that flying-squid doesn't support at all +// todo move & generate in flying-squid +export const unsupportedLocalServerFeatures = ['transactionPacketExists', 'teleportUsesOwnPacket'] diff --git a/src/customChannels.ts b/src/customChannels.ts new file mode 100644 index 00000000..506ea776 --- /dev/null +++ b/src/customChannels.ts @@ -0,0 +1,504 @@ +import PItem from 'prismarine-item' +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' +import { options } from './optionsStorage' +import { jeiCustomCategories } from './inventoryWindows' +import { registerIdeChannels } from './core/ideChannels' + +export default () => { + customEvents.on('mineflayerBotCreated', async () => { + if (!options.customChannels) return + bot.once('login', () => { + registerBlockModelsChannel() + registerMediaChannels() + registerSectionAnimationChannels() + registeredJeiChannel() + registerBlockInteractionsCustomizationChannel() + registerWaypointChannels() + registerIdeChannels() + }) + }) +} + +const registerChannel = (channelName: string, packetStructure: any[], handler: (data: any) => void, waitForWorld = true) => { + bot._client.registerChannel(channelName, packetStructure, true) + bot._client.on(channelName as any, async (data) => { + if (waitForWorld) { + await appViewer.worldReady + handler(data) + } else { + handler(data) + } + }) + + console.debug(`registered custom channel ${channelName} channel`) +} + +const registerBlockInteractionsCustomizationChannel = () => { + const CHANNEL_NAME = 'minecraft-web-client:block-interactions-customization' + const packetStructure = [ + 'container', + [ + { + name: 'newConfiguration', + type: ['pstring', { countType: 'i16' }] + }, + ] + ] + + registerChannel(CHANNEL_NAME, packetStructure, (data) => { + const config = JSON.parse(data.newConfiguration) + bot.mouse.setConfigFromPacket(config) + }, true) +} + +const registerWaypointChannels = () => { + const packetStructure = [ + 'container', + [ + { + name: 'id', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'x', + type: 'f32' + }, + { + name: 'y', + type: 'f32' + }, + { + name: 'z', + type: 'f32' + }, + { + name: 'minDistance', + type: 'i32' + }, + { + name: 'label', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'color', + type: 'i32' + }, + { + name: 'metadataJson', + type: ['pstring', { countType: 'i16' }] + } + ] + ] + + registerChannel('minecraft-web-client:waypoint-add', packetStructure, (data) => { + // Parse metadata if provided + let metadata: any = {} + if (data.metadataJson && data.metadataJson.trim() !== '') { + try { + metadata = JSON.parse(data.metadataJson) + } catch (error) { + console.warn('Failed to parse waypoint metadataJson:', error) + } + } + + getThreeJsRendererMethods()?.addWaypoint(data.id, data.x, data.y, data.z, { + minDistance: data.minDistance, + label: data.label || undefined, + color: data.color || undefined, + metadata + }) + }) + + registerChannel('minecraft-web-client:waypoint-delete', [ + 'container', + [ + { + name: 'id', + type: ['pstring', { countType: 'i16' }] + } + ] + ], (data) => { + getThreeJsRendererMethods()?.removeWaypoint(data.id) + }) +} + +const registerBlockModelsChannel = () => { + const CHANNEL_NAME = 'minecraft-web-client:blockmodels' + + const packetStructure = [ + 'container', + [ + { + name: 'worldName', // currently not used + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'x', + type: 'i32' + }, + { + name: 'y', + type: 'i32' + }, + { + name: 'z', + type: 'i32' + }, + { + name: 'model', + type: ['pstring', { countType: 'i16' }] + } + ] + ] + + registerChannel(CHANNEL_NAME, packetStructure, (data) => { + const { worldName, x, y, z, model } = data + + const chunkX = Math.floor(x / 16) * 16 + const chunkZ = Math.floor(z / 16) * 16 + const chunkKey = `${chunkX},${chunkZ}` + const blockPosKey = `${x},${y},${z}` + + getThreeJsRendererMethods()?.updateCustomBlock(chunkKey, blockPosKey, model) + }, true) +} + +const registerSectionAnimationChannels = () => { + const ADD_CHANNEL = 'minecraft-web-client:section-animation-add' + const REMOVE_CHANNEL = 'minecraft-web-client:section-animation-remove' + + /** + * Add a section animation + * @param id - Section position for animation like `16,32,16` + * @param offset - Initial offset in blocks + * @param speedX - Movement speed in blocks per second on X axis + * @param speedY - Movement speed in blocks per second on Y axis + * @param speedZ - Movement speed in blocks per second on Z axis + * @param limitX - Maximum offset in blocks on X axis (0 means no limit) + * @param limitY - Maximum offset in blocks on Y axis (0 means no limit) + * @param limitZ - Maximum offset in blocks on Z axis (0 means no limit) + */ + const addPacketStructure = [ + 'container', + [ + { name: 'id', type: ['pstring', { countType: 'i16' }] }, + { name: 'offset', type: 'f32' }, + { name: 'speedX', type: 'f32' }, + { name: 'speedY', type: 'f32' }, + { name: 'speedZ', type: 'f32' }, + { name: 'limitX', type: 'f32' }, + { name: 'limitY', type: 'f32' }, + { name: 'limitZ', type: 'f32' } + ] + ] + + /** + * Remove a section animation + * @param id - Identifier of the animation to remove + */ + const removePacketStructure = [ + 'container', + [ + { name: 'id', type: ['pstring', { countType: 'i16' }] } + ] + ] + + registerChannel(ADD_CHANNEL, addPacketStructure, (data) => { + const { id, offset, speedX, speedY, speedZ, limitX, limitY, limitZ } = data + getThreeJsRendererMethods()?.addSectionAnimation(id, { + time: performance.now(), + speedX, + speedY, + speedZ, + currentOffsetX: offset, + currentOffsetY: offset, + currentOffsetZ: offset, + limitX: limitX === 0 ? undefined : limitX, + limitY: limitY === 0 ? undefined : limitY, + limitZ: limitZ === 0 ? undefined : limitZ + }) + }, true) + + registerChannel(REMOVE_CHANNEL, removePacketStructure, (data) => { + const { id } = data + getThreeJsRendererMethods()?.removeSectionAnimation(id) + }, true) + + console.debug('Registered section animation channels') +} + +window.testSectionAnimation = (speedY = 1) => { + const pos = bot.entity.position + const id = `${Math.floor(pos.x / 16) * 16},${Math.floor(pos.y / 16) * 16},${Math.floor(pos.z / 16) * 16}` + getThreeJsRendererMethods()?.addSectionAnimation(id, { + time: performance.now(), + speedX: 0, + speedY, + speedZ: 0, + currentOffsetX: 0, + currentOffsetY: 0, + currentOffsetZ: 0, + // limitX: 10, + // limitY: 10, + }) +} + +const registeredJeiChannel = () => { + const CHANNEL_NAME = 'minecraft-web-client:jei' + // id - string, categoryTitle - string, items - string (json array) + const packetStructure = [ + 'container', + [ + { + name: 'id', + type: ['pstring', { countType: 'i16' }] + }, + { + name: '_categoryTitle', + type: ['pstring', { countType: 'i16' }] + }, + { + name: 'items', + type: ['pstring', { countType: 'i16' }] + }, + ] + ] + + bot._client.registerChannel(CHANNEL_NAME, packetStructure, true) + + bot._client.on(CHANNEL_NAME as any, (data) => { + const { id, categoryTitle, items } = data + if (items === '') { + // remove category + jeiCustomCategories.value = jeiCustomCategories.value.filter(x => x.id !== id) + return + } + const PrismarineItem = PItem(bot.version) + jeiCustomCategories.value.push({ + id, + categoryTitle, + items: JSON.parse(items).map(x => { + const itemString = x.itemName || x.item_name || x.item || x.itemId + const itemId = loadedData.itemsByName[itemString.replace('minecraft:', '')] + if (!itemId) { + console.warn(`Could not add item ${itemString} to JEI category ${categoryTitle} because it was not found`) + return null + } + // const item = new PrismarineItem(itemId.id, x.itemCount || x.item_count || x.count || 1, x.itemDamage || x.item_damage || x.damage || 0, x.itemNbt || x.item_nbt || x.nbt || null) + return PrismarineItem.fromNotch({ + ...x, + itemId: itemId.id, + }) + }) + }) + }) + + console.debug(`registered custom channel ${CHANNEL_NAME} channel`) +} + +const registerMediaChannels = () => { + // Media Add Channel + const ADD_CHANNEL = 'minecraft-web-client:media-add' + const addPacketStructure = [ + 'container', + [ + { name: 'id', type: ['pstring', { countType: 'i16' }] }, + { name: 'x', type: 'f32' }, + { name: 'y', type: 'f32' }, + { name: 'z', type: 'f32' }, + { name: 'width', type: 'f32' }, + { name: 'height', type: 'f32' }, + { name: 'rotation', type: 'i16' }, // 0: 0° - towards positive z, 1: 90° - positive x, 2: 180° - negative z, 3: 270° - negative x (3-6 is same but double side) + { name: 'source', type: ['pstring', { countType: 'i16' }] }, + { name: 'loop', type: 'bool' }, + { name: 'volume', type: 'f32' }, // 0 + { name: '_aspectRatioMode', type: 'i16' }, // 0 + { name: '_background', type: 'i16' }, // 0 + { name: '_opacity', type: 'i16' }, // 1 + { name: '_cropXStart', type: 'f32' }, // 0 + { name: '_cropYStart', type: 'f32' }, // 0 + { name: '_cropXEnd', type: 'f32' }, // 0 + { name: '_cropYEnd', type: 'f32' }, // 0 + ] + ] + + // Media Control Channels + const PLAY_CHANNEL = 'minecraft-web-client:media-play' + const PAUSE_CHANNEL = 'minecraft-web-client:media-pause' + const SEEK_CHANNEL = 'minecraft-web-client:media-seek' + const VOLUME_CHANNEL = 'minecraft-web-client:media-volume' + const SPEED_CHANNEL = 'minecraft-web-client:media-speed' + const DESTROY_CHANNEL = 'minecraft-web-client:media-destroy' + + const noDataPacketStructure = [ + 'container', + [ + { name: 'id', type: ['pstring', { countType: 'i16' }] } + ] + ] + + const setNumberPacketStructure = [ + 'container', + [ + { name: 'id', type: ['pstring', { countType: 'i16' }] }, + { name: 'seconds', type: 'f32' } + ] + ] + + // Register channels + registerChannel(PLAY_CHANNEL, noDataPacketStructure, (data) => { + const { id } = data + getThreeJsRendererMethods()?.setVideoPlaying(id, true) + }, true) + registerChannel(PAUSE_CHANNEL, noDataPacketStructure, (data) => { + const { id } = data + getThreeJsRendererMethods()?.setVideoPlaying(id, false) + }, true) + registerChannel(SEEK_CHANNEL, setNumberPacketStructure, (data) => { + const { id, seconds } = data + getThreeJsRendererMethods()?.setVideoSeeking(id, seconds) + }, true) + registerChannel(VOLUME_CHANNEL, setNumberPacketStructure, (data) => { + const { id, volume } = data + getThreeJsRendererMethods()?.setVideoVolume(id, volume) + }, true) + registerChannel(SPEED_CHANNEL, setNumberPacketStructure, (data) => { + const { id, speed } = data + getThreeJsRendererMethods()?.setVideoSpeed(id, speed) + }, true) + registerChannel(DESTROY_CHANNEL, noDataPacketStructure, (data) => { + const { id } = data + getThreeJsRendererMethods()?.destroyMedia(id) + }, true) + + // Handle media add + registerChannel(ADD_CHANNEL, addPacketStructure, (data) => { + const { id, x, y, z, width, height, rotation, source, loop, volume, background, opacity } = data + + // Add new video + getThreeJsRendererMethods()?.addMedia(id, { + position: { x, y, z }, + size: { width, height }, + // side: 'towards', + src: source, + rotation: rotation as 0 | 1 | 2 | 3, + doubleSide: false, + background, + opacity: opacity / 100, + allowOrigins: options.remoteContentNotSameOrigin === false ? [getCurrentTopDomain()] : options.remoteContentNotSameOrigin, + loop, + volume + }) + }) + + // --- + + // Video interaction channel + const interactionPacketStructure = [ + 'container', + [ + { name: 'id', type: ['pstring', { countType: 'i16' }] }, + { name: 'x', type: 'f32' }, + { name: 'y', type: 'f32' }, + { name: 'isRightClick', type: 'bool' } + ] + ] + + bot._client.registerChannel(MEDIA_INTERACTION_CHANNEL, interactionPacketStructure, true) + + // Media play channel + bot._client.registerChannel(MEDIA_PLAY_CHANNEL_CLIENTBOUND, noDataPacketStructure, true) + const mediaStopPacketStructure = [ + 'container', + [ + { name: 'id', type: ['pstring', { countType: 'i16' }] }, + // ended - emitted even when loop is true (will continue playing) + // error: ... + // stalled - connection drops, server stops sending data + // waiting - connection is slow, server is sending data, but not fast enough (buffering) + // control + { name: 'reason', type: ['pstring', { countType: 'i16' }] }, + { name: 'time', type: 'f32' } + ] + ] + bot._client.registerChannel(MEDIA_STOP_CHANNEL_CLIENTBOUND, mediaStopPacketStructure, true) + + console.debug('Registered media channels') +} + +const MEDIA_INTERACTION_CHANNEL = 'minecraft-web-client:media-interaction' +const MEDIA_PLAY_CHANNEL_CLIENTBOUND = 'minecraft-web-client:media-play' +const MEDIA_STOP_CHANNEL_CLIENTBOUND = 'minecraft-web-client:media-stop' + +export const sendVideoInteraction = (id: string, x: number, y: number, isRightClick: boolean) => { + bot._client.writeChannel(MEDIA_INTERACTION_CHANNEL, { id, x, y, isRightClick }) +} + +export const sendVideoPlay = (id: string) => { + bot._client.writeChannel(MEDIA_PLAY_CHANNEL_CLIENTBOUND, { id }) +} + +export const sendVideoStop = (id: string, reason: string, time: number) => { + bot._client.writeChannel(MEDIA_STOP_CHANNEL_CLIENTBOUND, { id, reason, time }) +} + +export const videoCursorInteraction = () => { + const { intersectMedia } = appViewer.rendererState.world + if (!intersectMedia) return null + return intersectMedia +} +window.videoCursorInteraction = videoCursorInteraction + +const addTestVideo = (rotation = 0 as 0 | 1 | 2 | 3, scale = 1, isImage = false) => { + const block = window.cursorBlockRel() + if (!block) return + const { position: startPosition } = block + + // Add video with proper positioning + getThreeJsRendererMethods()?.addMedia('test-video', { + position: { + x: startPosition.x, + y: startPosition.y + 1, + z: startPosition.z + }, + size: { + width: scale, + height: scale + }, + src: isImage ? 'https://bucket.mcraft.fun/test_image.png' : 'https://bucket.mcraft.fun/test_video.mp4', + rotation, + // doubleSide: true, + background: 0x00_00_00, // Black color + // TODO broken + // uvMapping: { + // startU: 0, + // endU: 1, + // startV: 0, + // endV: 1 + // }, + opacity: 1, + allowOrigins: true, + }) +} +window.addTestVideo = addTestVideo + +function getCurrentTopDomain (): string { + const { hostname } = location + // Split hostname into parts + const parts = hostname.split('.') + + // Handle special cases like co.uk, com.br, etc. + if (parts.length > 2) { + // Check for common country codes with additional segments + if (parts.at(-2) === 'co' || + parts.at(-2) === 'com' || + parts.at(-2) === 'org' || + parts.at(-2) === 'gov') { + // Return last 3 parts (e.g., example.co.uk) + return parts.slice(-3).join('.') + } + } + + // Return last 2 parts (e.g., example.com) + return parts.slice(-2).join('.') +} diff --git a/src/customClient.js b/src/customClient.js new file mode 100644 index 00000000..b1a99904 --- /dev/null +++ b/src/customClient.js @@ -0,0 +1,91 @@ +//@ts-check +import * as nbt from 'prismarine-nbt' +import { options } from './optionsStorage' + +const { EventEmitter } = require('events') +const debug = require('debug')('minecraft-protocol') +const states = require('minecraft-protocol/src/states') + +window.serverDataChannel ??= {} +export const customCommunication = { + sendData(data) { + setTimeout(() => { + window.serverDataChannel[this.isServer ? 'emitClient' : 'emitServer'](data) + }) + }, + receiverSetup(processData) { + window.serverDataChannel[this.isServer ? 'emitServer' : 'emitClient'] = (data) => { + processData(data) + } + } +} + +class CustomChannelClient extends EventEmitter { + constructor(isServer, version) { + super() + this.version = version + this.isServer = !!isServer + this.state = states.HANDSHAKING + } + + get state() { + return this.protocolState + } + + setSerializer(state) { + customCommunication.receiverSetup.call(this, (/** @type {{name, params, state?}} */parsed) => { + if (!options.excludeCommunicationDebugEvents.includes(parsed.name)) { + debug(`receive in ${this.isServer ? 'server' : 'client'}: ${parsed.name}`) + } + this.emit(parsed.name, parsed.params, parsed) + this.emit('packet_name', parsed.name, parsed.params, parsed) + }) + } + + // eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures, grouped-accessor-pairs + set state(newProperty) { + const oldProperty = this.protocolState + this.protocolState = newProperty + + this.setSerializer(this.protocolState) + + this.emit('state', newProperty, oldProperty) + } + + end(endReason, fullReason) { + // eslint-disable-next-line unicorn/no-this-assignment + const client = this + if (client.state === states.PLAY) { + fullReason ||= loadedData.supportFeature('chatPacketsUseNbtComponents') + ? nbt.comp({ text: nbt.string(endReason) }) + : JSON.stringify({ text: endReason }) + client.write('kick_disconnect', { reason: fullReason }) + } else if (client.state === states.LOGIN) { + fullReason ||= JSON.stringify({ text: endReason }) + client.write('disconnect', { reason: fullReason }) + } + + this._endReason = endReason + this.emit('end', this._endReason) // still emits on server side only, doesn't send anything to our client + } + + write(name, params) { + if (!options.excludeCommunicationDebugEvents.includes(name)) { + debug(`[${this.state}] from ${this.isServer ? 'server' : 'client'}: ` + name) + debug(params) + } + + this.emit('writePacket', name, params) + customCommunication.sendData.call(this, { name, params, state: this.state }) + } + + writeBundle(packets) { + // no-op + } + + writeRaw(buffer) { + // no-op + } +} + +export default CustomChannelClient diff --git a/src/customCommands.ts b/src/customCommands.ts new file mode 100644 index 00000000..75c13f68 --- /dev/null +++ b/src/customCommands.ts @@ -0,0 +1,91 @@ +import { guiOptionsScheme, tryFindOptionConfig } from './optionsGuiScheme' +import { options } from './optionsStorage' + +export const customCommandsConfig = { + chat: { + input: [ + { + type: 'text', + placeholder: 'Command to send e.g. gamemode creative' + } + ], + handler ([command]) { + bot.chat(`/${command.replace(/^\//, '')}`) + } + }, + setOrToggleSetting: { + input: [ + { + type: 'select', + // maybe title case? + options: Object.keys(options) + }, + { + type: 'select', + options: ['toggle', 'set'] + }, + ([setting = '', action = ''] = []) => { + const value = options[setting] + if (!action || value === undefined || action === 'toggle') return null + if (action === 'set') { + const getBase = () => { + const config = tryFindOptionConfig(setting as any) + if (config && 'values' in config) { + return { + type: 'select', + options: config.values + } + } + if (config?.type === 'toggle' || typeof value === 'boolean') { + return { + type: 'select', + options: ['true', 'false'] + } + } + if (config?.type === 'slider' || value.type === 'number') { + return { + type: 'number', + } + } + return { + type: 'text' + } + } + return { + ...getBase(), + placeholder: value + } + } + } + ], + handler ([setting, action, value]) { + if (action === 'toggle' || action === undefined) { + const value = options[setting] + const config = tryFindOptionConfig(setting) + if (config && 'values' in config && config.values) { + const { values } = config + const currentIndex = values.indexOf(value) + const nextIndex = (currentIndex + 1) % values.length + options[setting] = values[nextIndex] + } else { + options[setting] = typeof value === 'boolean' ? !value : typeof value === 'number' ? value + 1 : value + } + } else { + options[setting] = value + } + } + }, + jsScripts: { + input: [ + { + type: 'text', + placeholder: 'JavaScript code to run in main thread (sensitive!)' + } + ], + handler ([code]) { + // eslint-disable-next-line no-new-func -- this is a feature, not a bug + new Function(code)() + } + }, + // openCommandsScreen: {} +} diff --git a/src/customServer.ts b/src/customServer.ts new file mode 100644 index 00000000..972636fe --- /dev/null +++ b/src/customServer.ts @@ -0,0 +1,20 @@ +import EventEmitter from 'events' + +import CustomChannelClient from './customClient' + +export class LocalServer extends EventEmitter.EventEmitter { + socketServer = null + cipher = null + decipher = null + clients = {} + + constructor (public version, public customPackets, public hideErrors = false) { + super() + } + + listen () { + this.emit('connection', new CustomChannelClient(true, this.version)) + } + + close () { } +} diff --git a/src/defaultLocalServerOptions.js b/src/defaultLocalServerOptions.js new file mode 100644 index 00000000..3b93910d --- /dev/null +++ b/src/defaultLocalServerOptions.js @@ -0,0 +1,39 @@ +module.exports = { + 'motd': 'A Minecraft Server \nRunning flying-squid', + // host: '', + // eslint-disable-next-line unicorn/numeric-separators-style + 'port': 25565, + 'max-players': 10, + 'online-mode': false, + 'gameMode': 0, + 'difficulty': 0, + 'worldFolder': 'world', + 'pluginsFolder': true, + // todo set sid, disable entities auto-spawn + 'generation': { + // grass_field + // diamond_square + // empty + // superflat + // all_the_blocks + // nether + 'name': 'diamond_square', + options: {} + // 'options': { + // 'worldHeight': 80 + // } + }, + 'kickTimeout': 10_000, + 'plugins': {}, + 'modpe': false, + 'view-distance': 2, + 'player-list-text': { + 'header': 'Flying squid', + 'footer': 'Integrated server' + }, + keepAlive: false, + 'everybody-op': true, + 'max-entities': 100, + 'version': '1.18', + versionMajor: '1.18' +} diff --git a/src/defaultOptions.ts b/src/defaultOptions.ts new file mode 100644 index 00000000..48c1cfad --- /dev/null +++ b/src/defaultOptions.ts @@ -0,0 +1,159 @@ +export const defaultOptions = { + renderDistance: 3, + keepChunksDistance: 1, + multiplayerRenderDistance: 3, + closeConfirmation: true, + autoFullScreen: false, + mouseRawInput: true, + autoExitFullscreen: false, + localUsername: 'wanderer', + mouseSensX: 50, + mouseSensY: -1, + chatWidth: 320, + chatHeight: 180, + chatScale: 100, + chatOpacity: 100, + chatOpacityOpened: 100, + messagesLimit: 200, + volume: 50, + enableMusic: true, + musicVolume: 50, + // fov: 70, + fov: 75, + defaultPerspective: 'first_person' as 'first_person' | 'third_person_back' | 'third_person_front', + guiScale: 3, + autoRequestCompletions: true, + touchButtonsSize: 40, + touchButtonsOpacity: 80, + touchButtonsPosition: 12, + touchControlsPositions: getDefaultTouchControlsPositions(), + touchControlsSize: getTouchControlsSize(), + touchMovementType: 'modern' as 'modern' | 'classic', + touchInteractionType: 'classic' as 'classic' | 'buttons', + gpuPreference: 'default' as 'default' | 'high-performance' | 'low-power', + backgroundRendering: '20fps' as 'full' | '20fps' | '5fps', + /** @unstable */ + disableAssets: false, + /** @unstable */ + debugLogNotFrequentPackets: false, + unimplementedContainers: false, + dayCycleAndLighting: true, + loadPlayerSkins: true, + renderEars: true, + lowMemoryMode: false, + starfieldRendering: true, + defaultSkybox: true, + enabledResourcepack: null as string | null, + useVersionsTextures: 'latest', + serverResourcePacks: 'prompt' as 'prompt' | 'always' | 'never', + showHand: true, + viewBobbing: true, + displayRecordButton: true, + packetsLoggerPreset: 'all' as 'all' | 'no-buffers', + serversAutoVersionSelect: 'auto' as 'auto' | 'latest' | '1.20.4' | string, + customChannels: false, + remoteContentNotSameOrigin: false as boolean | string[], + packetsRecordingAutoStart: false, + language: 'auto', + preciseMouseInput: false, + // todo ui setting, maybe enable by default? + waitForChunksRender: false as 'sp-only' | boolean, + jeiEnabled: true as boolean | Array<'creative' | 'survival' | 'adventure' | 'spectator'>, + modsSupport: false, + modsAutoUpdate: 'check' as 'check' | 'never' | 'always', + modsUpdatePeriodCheck: 24, // hours + preventBackgroundTimeoutKick: false, + preventSleep: false, + debugContro: false, + debugChatScroll: false, + chatVanillaRestrictions: true, + debugResponseTimeIndicator: false, + chatPingExtension: true, + // antiAliasing: false, + topRightTimeDisplay: 'only-fullscreen' as 'only-fullscreen' | 'always' | 'never', + + clipWorldBelowY: undefined as undefined | number, // will be removed + disableSignsMapsSupport: false, + singleplayerAutoSave: false, + showChunkBorders: false, // todo rename option + frameLimit: false as number | false, + alwaysBackupWorldBeforeLoading: undefined as boolean | undefined | null, + alwaysShowMobileControls: false, + excludeCommunicationDebugEvents: [] as string[], + preventDevReloadWhilePlaying: false, + numWorkers: 4, + localServerOptions: { + gameMode: 1 + } as any, + saveLoginPassword: 'prompt' as 'prompt' | 'never' | 'always', + preferLoadReadonly: false, + experimentalClientSelfReload: false, + remoteSoundsSupport: false, + remoteSoundsLoadTimeout: 500, + disableLoadPrompts: false, + guestUsername: 'guest', + askGuestName: true, + errorReporting: true, + /** Actually might be useful */ + showCursorBlockInSpectator: false, + renderEntities: true, + smoothLighting: true, + newVersionsLighting: false, + chatSelect: true, + autoJump: 'auto' as 'auto' | 'always' | 'never', + autoParkour: false, + vrSupport: true, // doesn't directly affect the VR mode, should only disable the button which is annoying to android users + vrPageGameRendering: false, + renderDebug: 'basic' as 'none' | 'advanced' | 'basic', + rendererPerfDebugOverlay: false, + + // advanced bot options + autoRespawn: false, + mutedSounds: [] as string[], + plugins: [] as Array<{ enabled: boolean, name: string, description: string, script: string }>, + /** Wether to popup sign editor on server action */ + autoSignEditor: true, + wysiwygSignEditor: 'auto' as 'auto' | 'always' | 'never', + showMinimap: 'never' as 'always' | 'singleplayer' | 'never', + minimapOptimizations: true, + displayBossBars: true, + disabledUiParts: [] as string[], + neighborChunkUpdates: true, + highlightBlockColor: 'auto' as 'auto' | 'blue' | 'classic', + activeRenderer: 'threejs', + rendererSharedOptions: { + _experimentalSmoothChunkLoading: true, + _renderByChunks: false + } +} + +function getDefaultTouchControlsPositions () { + return { + action: [ + 70, + 76 + ], + sneak: [ + 84, + 76 + ], + break: [ + 70, + 57 + ], + jump: [ + 84, + 57 + ], + } as Record +} + +function getTouchControlsSize () { + return { + joystick: 55, + action: 36, + break: 36, + jump: 36, + sneak: 36, + } +} diff --git a/src/devReload.ts b/src/devReload.ts new file mode 100644 index 00000000..e778d8d4 --- /dev/null +++ b/src/devReload.ts @@ -0,0 +1,11 @@ +import { isMobile } from 'renderer/viewer/lib/simpleUtils' + +if (process.env.NODE_ENV === 'development') { + // mobile devtools + if (isMobile()) { + // can be changed to require('eruda') + //@ts-expect-error + void import('https://cdn.skypack.dev/eruda').then(({ default: eruda }) => eruda.init()) + } +} +console.log('JS Loaded in', Date.now() - window.startLoad) diff --git a/src/devtools.ts b/src/devtools.ts new file mode 100644 index 00000000..1f8ef8e8 --- /dev/null +++ b/src/devtools.ts @@ -0,0 +1,324 @@ +// global variables useful for debugging + +import fs from 'fs' +import { WorldRendererThree } from 'renderer/viewer/three/worldrendererThree' +import { enable, disable, enabled } from 'debug' +import { Vec3 } from 'vec3' + +customEvents.on('mineflayerBotCreated', () => { + window.debugServerPacketNames = Object.fromEntries(Object.keys(loadedData.protocol.play.toClient.types).map(name => { + name = name.replace('packet_', '') + return [name, name] + })) + window.debugClientPacketNames = Object.fromEntries(Object.keys(loadedData.protocol.play.toServer.types).map(name => { + name = name.replace('packet_', '') + return [name, name] + })) +}) + +window.Vec3 = Vec3 +window.cursorBlockRel = (x = 0, y = 0, z = 0) => { + const newPos = bot.blockAtCursor(5)?.position.offset(x, y, z) + if (!newPos) return + return bot.world.getBlock(newPos) +} + +window.entityCursor = () => { + return bot.mouse.getCursorState().entity +} + +// wanderer +window.inspectPlayer = () => require('fs').promises.readFile('/world/playerdata/9e487d23-2ffc-365a-b1f8-f38203f59233.dat').then(window.nbt.parse).then(console.log) + +Object.defineProperty(window, 'debugSceneChunks', { + get () { + if (!(window.world instanceof WorldRendererThree)) return undefined + return (window.world)?.getLoadedChunksRelative?.(bot.entity.position, true) + }, +}) + +window.chunkKey = (xRel = 0, zRel = 0) => { + const pos = bot.entity.position + return `${(Math.floor(pos.x / 16) + xRel) * 16},${(Math.floor(pos.z / 16) + zRel) * 16}` +} + +window.sectionKey = (xRel = 0, yRel = 0, zRel = 0) => { + const pos = bot.entity.position + return `${(Math.floor(pos.x / 16) + xRel) * 16},${(Math.floor(pos.y / 16) + yRel) * 16},${(Math.floor(pos.z / 16) + zRel) * 16}` +} + +window.keys = (obj) => Object.keys(obj) +window.values = (obj) => Object.values(obj) + +window.len = (obj) => Object.keys(obj).length + +customEvents.on('gameLoaded', () => { + bot._client.on('packet', (data, { name }) => { + if (sessionStorage.ignorePackets?.includes(name)) { + console.log('ignoring packet', name) + const oldEmit = bot._client.emit + let i = 0 + // ignore next 3 emits + //@ts-expect-error + bot._client.emit = (...args) => { + if (i++ === 3) { + oldEmit.apply(bot._client, args) + bot._client.emit = oldEmit + } + } + } + }) +}) + +window.inspectPacket = (packetName, isFromClient = false, fullOrListener: boolean | ((...args) => void) = false) => { + if (typeof isFromClient === 'function') { + fullOrListener = isFromClient + isFromClient = false + } + const listener = typeof fullOrListener === 'function' + ? (name, ...args) => fullOrListener(...args, name) + : (name, ...args) => { + const displayName = name === packetName ? name : `${name} (${packetName})` + console.log('packet', displayName, fullOrListener ? args : args[0]) + } + + // Pre-compile regex if using wildcards + const pattern = typeof packetName === 'string' && packetName.includes('*') + ? new RegExp('^' + packetName.replaceAll('*', '.*') + '$') + : null + + const packetNameListener = (name, data) => { + if (pattern) { + if (pattern.test(name)) { + listener(name, data) + } + } else if (name === packetName) { + listener(name, data) + } + } + const packetListener = (data, { name }) => { + packetNameListener(name, data) + } + + const attach = () => { + if (isFromClient) { + bot?._client.prependListener('writePacket', packetNameListener) + } else { + bot?._client.prependListener('packet_name', packetNameListener) + bot?._client.prependListener('packet', packetListener) + } + } + const detach = () => { + if (isFromClient) { + bot?._client.removeListener('writePacket', packetNameListener) + } else { + bot?._client.removeListener('packet_name', packetNameListener) + bot?._client.removeListener('packet', packetListener) + } + } + attach() + customEvents.on('mineflayerBotCreated', attach) + + const returnobj = {} + Object.defineProperty(returnobj, 'detach', { + get () { + detach() + customEvents.removeListener('mineflayerBotCreated', attach) + return true + }, + }) + return returnobj +} + +window.downloadFile = async (path: string) => { + if (!path.startsWith('/') && localServer) path = `${localServer.options.worldFolder}/${path}` + const data = await fs.promises.readFile(path) + const blob = new Blob([data], { type: 'application/octet-stream' }) + const url = URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = url + a.download = path.split('/').at(-1)! + a.click() + URL.revokeObjectURL(url) +} + +Object.defineProperty(window, 'debugToggle', { + get () { + localStorage.debug = localStorage.debug === '*' ? '' : '*' + if (enabled('*')) { + disable() + return 'disabled debug' + } else { + enable('*') + return 'enabled debug' + } + }, + set (v) { + enable(v) + localStorage.debug = v + console.log('Enabled debug for', v) + } +}) + +customEvents.on('gameLoaded', () => { + window.holdingBlock = (window.world as WorldRendererThree | undefined)?.holdingBlock +}) + +window.clearStorage = (...keysToKeep: string[]) => { + for (let i = 0; i < localStorage.length; i++) { + const key = localStorage.key(i) + if (key && !keysToKeep.includes(key)) { + localStorage.removeItem(key) + } + } + return `Cleared ${localStorage.length - keysToKeep.length} items from localStorage. Kept: ${keysToKeep.join(', ')}` +} + + +// PERF DEBUG + +// for advanced debugging, use with watch expression + +window.statsPerSecAvg = {} +let currentStatsPerSec = {} as Record +const waitingStatsPerSec = {} +window.markStart = (label) => { + waitingStatsPerSec[label] ??= [] + waitingStatsPerSec[label][0] = performance.now() +} +window.markEnd = (label) => { + if (!waitingStatsPerSec[label]?.[0]) return + currentStatsPerSec[label] ??= [] + currentStatsPerSec[label].push(performance.now() - waitingStatsPerSec[label][0]) + delete waitingStatsPerSec[label] +} +const updateStatsPerSecAvg = () => { + window.statsPerSecAvg = Object.fromEntries(Object.entries(currentStatsPerSec).map(([key, value]) => { + return [key, { + avg: value.reduce((a, b) => a + b, 0) / value.length, + count: value.length + }] + })) + currentStatsPerSec = {} +} + + +window.statsPerSec = {} +let statsPerSecCurrent = {} +let lastReset = performance.now() +window.addStatPerSec = (name) => { + statsPerSecCurrent[name] ??= 0 + statsPerSecCurrent[name]++ +} +window.statsPerSecCurrent = statsPerSecCurrent +setInterval(() => { + window.statsPerSec = { duration: Math.floor(performance.now() - lastReset), ...statsPerSecCurrent, } + statsPerSecCurrent = {} + window.statsPerSecCurrent = statsPerSecCurrent + updateStatsPerSecAvg() + lastReset = performance.now() +}, 1000) + +// --- + +// Add type declaration for performance.memory +declare global { + interface Performance { + memory?: { + usedJSHeapSize: number + totalJSHeapSize: number + jsHeapSizeLimit: number + } + } +} + +// Performance metrics WebSocket client +let ws: WebSocket | null = null +let wsReconnectTimeout: NodeJS.Timeout | null = null +let metricsInterval: NodeJS.Timeout | null = null + +// Start collecting metrics immediately +const startTime = performance.now() + +function collectAndSendMetrics () { + if (!ws || ws.readyState !== WebSocket.OPEN) return + + const metrics = { + loadTime: performance.now() - startTime, + memoryUsage: (performance.memory?.usedJSHeapSize ?? 0) / 1024 / 1024, + timestamp: Date.now() + } + + ws.send(JSON.stringify(metrics)) +} + +function getWebSocketUrl () { + const wsPort = process.env.WS_PORT + if (!wsPort) return null + + const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:' + const { hostname } = window.location + return `${protocol}//${hostname}:${wsPort}` +} + +function connectWebSocket () { + if (ws) return + + const wsUrl = getWebSocketUrl() + if (!wsUrl) { + return + } + + ws = new WebSocket(wsUrl) + + ws.onopen = () => { + console.log('Connected to metrics server') + if (wsReconnectTimeout) { + clearTimeout(wsReconnectTimeout) + wsReconnectTimeout = null + } + + // Start sending metrics immediately after connection + collectAndSendMetrics() + + // Clear existing interval if any + if (metricsInterval) { + clearInterval(metricsInterval) + } + + // Set new interval + metricsInterval = setInterval(collectAndSendMetrics, 500) + } + + ws.onclose = () => { + console.log('Disconnected from metrics server') + ws = null + + // Clear metrics interval + if (metricsInterval) { + clearInterval(metricsInterval) + metricsInterval = null + } + + // Try to reconnect after 3 seconds + wsReconnectTimeout = setTimeout(connectWebSocket, 3000) + } + + ws.onerror = (error) => { + console.error('WebSocket error:', error) + } +} + +// Connect immediately +connectWebSocket() + +// Add command to request current metrics +window.requestMetrics = () => { + const metrics = { + loadTime: performance.now() - startTime, + memoryUsage: (performance.memory?.usedJSHeapSize ?? 0) / 1024 / 1024, + timestamp: Date.now() + } + console.log('Current metrics:', metrics) + return metrics +} diff --git a/src/downloadAndOpenFile.ts b/src/downloadAndOpenFile.ts new file mode 100644 index 00000000..1ff318ff --- /dev/null +++ b/src/downloadAndOpenFile.ts @@ -0,0 +1,150 @@ +import prettyBytes from 'pretty-bytes' +import { openWorldFromHttpDir, openWorldZip } from './browserfs' +import { getResourcePackNames, installResourcepackPack, resourcePackState, updateTexturePackInstalledState } from './resourcePack' +import { setLoadingScreenStatus } from './appStatus' +import { appQueryParams, appQueryParamsArray } from './appParams' +import { VALID_REPLAY_EXTENSIONS, openFile } from './packetsReplay/replayPackets' +import { createFullScreenProgressReporter } from './core/progressReporter' +import { ConnectOptions } from './connect' + +export const getFixedFilesize = (bytes: number) => { + return prettyBytes(bytes, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) +} + +export const isInterestedInDownload = () => { + const { map, texturepack, replayFileUrl } = appQueryParams + const { mapDir } = appQueryParamsArray + return !!map || !!texturepack || !!replayFileUrl || !!mapDir +} + +const inner = async () => { + const { map, texturepack, replayFileUrl } = appQueryParams + const { mapDir } = appQueryParamsArray + return downloadAndOpenMapFromUrl(map, texturepack, mapDir, replayFileUrl) +} + +export const downloadAndOpenMapFromUrl = async (mapUrl: string | undefined, texturepackUrl: string | undefined, mapUrlDir: string[] | undefined, replayFileUrl: string | undefined, connectOptions?: Partial) => { + if (replayFileUrl) { + setLoadingScreenStatus('Downloading replay file') + const response = await fetch(replayFileUrl) + const contentLength = response.headers?.get('Content-Length') + const size = contentLength ? +contentLength : undefined + const filename = replayFileUrl.split('/').pop() + + let downloadedBytes = 0 + const buffer = await new Response(new ReadableStream({ + async start (controller) { + if (!response.body) throw new Error('Server returned no response!') + const reader = response.body.getReader() + + // eslint-disable-next-line no-constant-condition + while (true) { + const { done, value } = await reader.read() + + if (done) { + controller.close() + break + } + + downloadedBytes += value.byteLength + + // Calculate download progress as a percentage + const progress = size ? (downloadedBytes / size) * 100 : undefined + setLoadingScreenStatus(`Download replay file progress: ${progress === undefined ? '?' : Math.floor(progress)}% (${getFixedFilesize(downloadedBytes)} / ${size && getFixedFilesize(size)})`, false, true) + + // Pass the received data to the controller + controller.enqueue(value) + } + }, + })).arrayBuffer() + + // Convert buffer to text, handling any compression automatically + const decoder = new TextDecoder() + const contents = decoder.decode(buffer) + + openFile({ + contents, + filename, + filesize: size + }) + return true + } + + const mapUrlDirGuess = appQueryParams.mapDirGuess + const mapUrlDirBaseUrl = appQueryParams.mapDirBaseUrl + if (mapUrlDir?.length) { + await openWorldFromHttpDir(mapUrlDir, mapUrlDirBaseUrl ?? undefined) + return true + } + + if (mapUrlDirGuess) { + // await openWorldFromHttpDir(undefined, mapUrlDirGuess) + return true + } + + // fixme + if (texturepackUrl) mapUrl = texturepackUrl + if (!mapUrl) return false + + if (texturepackUrl) { + await updateTexturePackInstalledState() + if (resourcePackState.resourcePackInstalled) { + if (!confirm(`You are going to install a new resource pack, which will REPLACE the current one: ${await getResourcePackNames()[0]} Continue?`)) return + } + } + const name = mapUrl.slice(mapUrl.lastIndexOf('/') + 1).slice(-25) + const downloadThing = texturepackUrl ? 'texturepack' : 'world' + setLoadingScreenStatus(`Downloading ${downloadThing} ${name}...`) + + const response = await fetch(mapUrl) + const contentType = response.headers.get('Content-Type') + if (!contentType || !contentType.startsWith('application/zip')) { + alert('Invalid map file') + } + const contentLengthStr = response.headers?.get('Content-Length') + const contentLength = contentLengthStr && +contentLengthStr + setLoadingScreenStatus(`Downloading ${downloadThing} ${name}: have to download ${contentLength && getFixedFilesize(contentLength)}...`) + + let downloadedBytes = 0 + const buffer = await new Response(new ReadableStream({ + async start (controller) { + if (!response.body) throw new Error('Server returned no response!') + const reader = response.body.getReader() + + // eslint-disable-next-line no-constant-condition + while (true) { + const { done, value } = await reader.read() + + if (done) { + controller.close() + break + } + + downloadedBytes += value.byteLength + + // Calculate download progress as a percentage + const progress = contentLength ? (downloadedBytes / contentLength) * 100 : undefined + setLoadingScreenStatus(`Download ${downloadThing} progress: ${progress === undefined ? '?' : Math.floor(progress)}% (${getFixedFilesize(downloadedBytes)} / ${contentLength && getFixedFilesize(contentLength)})`, false, true) + + // Pass the received data to the controller + controller.enqueue(value) + } + }, + })).arrayBuffer() + if (texturepackUrl) { + const name = mapUrl.slice(mapUrl.lastIndexOf('/') + 1).slice(-30) + await installResourcepackPack(buffer, createFullScreenProgressReporter(), name) + } else { + await openWorldZip(buffer, undefined, connectOptions) + } + return true +} + +export default async () => { + try { + return await inner() + } catch (err) { + setLoadingScreenStatus(`Failed to download/open. Either refresh page or remove map param from URL. Reason: ${err.message}`) + return true + } +} diff --git a/src/dragndrop.ts b/src/dragndrop.ts new file mode 100644 index 00000000..5a16bc05 --- /dev/null +++ b/src/dragndrop.ts @@ -0,0 +1,151 @@ +import { promisify } from 'util' +import fs from 'fs' +import * as nbt from 'prismarine-nbt' +import RegionFile from 'prismarine-provider-anvil/src/region' +import { versions } from 'minecraft-data' +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' +import { openWorldDirectory, openWorldZip } from './browserfs' +import { isGameActive } from './globalState' +import { showNotification } from './react/NotificationProvider' +import { openFile, VALID_REPLAY_EXTENSIONS } from './packetsReplay/replayPackets' + +const parseNbt = promisify(nbt.parse) +const simplifyNbt = nbt.simplify +window.nbt = nbt + +// Supported image types for skybox +const VALID_IMAGE_EXTENSIONS = ['.png', '.jpg', '.jpeg', '.webp'] + +// todo display drop zone +for (const event of ['drag', 'dragstart', 'dragend', 'dragover', 'dragenter', 'dragleave', 'drop']) { + window.addEventListener(event, (e: any) => { + if (e.dataTransfer && !e.dataTransfer.types.includes('Files')) { + // e.dataTransfer.effectAllowed = "none" + return + } + e.preventDefault() + }) +} +window.addEventListener('drop', async e => { + if (!e.dataTransfer?.files.length) return + const { items } = e.dataTransfer + const item = items[0] + if (item.getAsFileSystemHandle) { + const filehandle = await item.getAsFileSystemHandle() as FileSystemFileHandle | FileSystemDirectoryHandle + if (filehandle.kind === 'file') { + const file = await filehandle.getFile() + + await handleDroppedFile(file) + } else { + if (isGameActive(false)) { + alert('Exit current world first, before loading a new one.') + return + } + await openWorldDirectory(filehandle) + } + } else { + await handleDroppedFile(item.getAsFile()!) + } +}) + +async function handleDroppedFile (file: File) { + // Check for image files first when game is active + if (isGameActive(false) && VALID_IMAGE_EXTENSIONS.some(ext => file.name.toLowerCase().endsWith(ext))) { + try { + // Convert image to base64 + const reader = new FileReader() + const base64Promise = new Promise((resolve, reject) => { + reader.onload = () => resolve(reader.result as string) + reader.onerror = reject + }) + reader.readAsDataURL(file) + const base64Image = await base64Promise + + // Get ThreeJS backend methods and update skybox + const setSkyboxImage = getThreeJsRendererMethods()?.setSkyboxImage + if (setSkyboxImage) { + await setSkyboxImage(base64Image) + showNotification('Skybox updated successfully') + } else { + showNotification('Cannot update skybox - renderer does not support it') + } + return + } catch (err) { + console.error('Failed to update skybox:', err) + showNotification('Failed to update skybox', 'error') + return + } + } + + if (file.name.endsWith('.zip')) { + void openWorldZip(file) + return + } + // if (file.name.endsWith('.mca')) // TODO let's do something interesting with it: viewer? + if (file.name.endsWith('.rar')) { + alert('Rar files are not supported yet!') + return + } + if (VALID_REPLAY_EXTENSIONS.some(ext => file.name.endsWith(ext)) || file.name.startsWith('packets-replay')) { + const contents = await file.text() + openFile({ + contents, + filename: file.name, + filesize: file.size + }) + return + } + if (file.name.endsWith('.mca')) { + const tempPath = '/temp/temp.mca' + try { + await fs.promises.writeFile(tempPath, Buffer.from(await file.arrayBuffer()) as any) + const region = new RegionFile(tempPath) + await region.initialize() + const chunks: Record = {} + console.log('Reading chunks...') + console.log(chunks) + let versionDetected = false + for (const [i, _] of Array.from({ length: 32 }).entries()) { + for (const [k, _] of Array.from({ length: 32 }).entries()) { + // todo, may use faster reading, but features is not commonly used + // eslint-disable-next-line no-await-in-loop + const nbt = await region.read(i, k) + chunks[`${i},${k}`] = nbt + if (nbt && !versionDetected) { + const simplified = simplifyNbt(nbt) + const version = versions.pc.find(x => x['dataVersion'] === simplified.DataVersion)?.minecraftVersion + console.log('Detected version', version ?? 'unknown') + versionDetected = true + } + } + } + Object.defineProperty(chunks, 'simplified', { + get () { + const mapped = {} + for (const [i, _] of Array.from({ length: 32 }).entries()) { + for (const [k, _] of Array.from({ length: 32 }).entries()) { + const key = `${i},${k}` + const chunk = chunks[key] + if (!chunk) continue + mapped[key] = simplifyNbt(chunk) + } + } + return mapped + }, + }) + console.log('Done!', chunks) + } finally { + await fs.promises.unlink(tempPath) + } + return + } + + const buffer = await file.arrayBuffer() + const parsed = await parseNbt(Buffer.from(buffer)).catch((err) => { + alert('Couldn\'t parse nbt, ensure you are opening .dat or file (or .zip/folder with a world)') + throw err + }) + showNotification(`${file.name} data available in browser console`) + console.log('raw', parsed) + console.log('simplified', nbt.simplify(parsed)) +} diff --git a/src/entities.ts b/src/entities.ts new file mode 100644 index 00000000..674f91ef --- /dev/null +++ b/src/entities.ts @@ -0,0 +1,368 @@ +import { Entity } from 'prismarine-entity' +import { versionToNumber } from 'renderer/viewer/common/utils' +import tracker from '@nxg-org/mineflayer-tracker' +import { loader as autoJumpPlugin } from '@nxg-org/mineflayer-auto-jump' +import { subscribeKey } from 'valtio/utils' +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' +import { Team } from 'mineflayer' +import { options, watchValue } from './optionsStorage' +import { gameAdditionalState, miscUiState } from './globalState' +import { EntityStatus } from './mineflayer/entityStatus' + + +const updateAutoJump = () => { + if (!bot?.autoJumper) return + const autoJump = options.autoParkour || (options.autoJump === 'auto' ? miscUiState.currentTouch && !miscUiState.usingGamepadInput : options.autoJump === 'always') + bot.autoJumper.setOpts({ + // jumpIntoWater: options.autoParkour, + jumpOnAllEdges: options.autoParkour, + // strictBlockCollision: true, + }) + if (autoJump === bot.autoJumper.enabled) return + if (autoJump) { + bot.autoJumper.enable() + } else { + bot.autoJumper.disable() + } +} +subscribeKey(options, 'autoJump', () => { + updateAutoJump() +}) +subscribeKey(options, 'autoParkour', () => { + updateAutoJump() +}) +subscribeKey(miscUiState, 'usingGamepadInput', () => { + updateAutoJump() +}) +subscribeKey(miscUiState, 'currentTouch', () => { + updateAutoJump() +}) + +customEvents.on('gameLoaded', () => { + bot.loadPlugin(tracker) + bot.loadPlugin(autoJumpPlugin) + updateAutoJump() + + const playerPerAnimation = {} as Record + const checkEntityData = (e: Entity) => { + if (!e.username) return + window.debugEntityMetadata ??= {} + window.debugEntityMetadata[e.username] = e + if (e.type === 'player') { + bot.tracker.trackEntity(e) + } + } + + const trackBotEntity = () => { + // Always track the bot entity for animations + if (bot.entity) { + bot.tracker.trackEntity(bot.entity) + } + } + + let lastCall = 0 + bot.on('physicsTick', () => { + // throttle, tps: 6 + if (Date.now() - lastCall < 166) return + lastCall = Date.now() + for (const [id, { tracking, info }] of Object.entries(bot.tracker.trackingData)) { + if (!tracking) continue + const e = bot.entities[id] + if (!e) continue + const speed = info.avgVel + const WALKING_SPEED = 0.03 + const SPRINTING_SPEED = 0.18 + const isCrouched = e === bot.entity ? gameAdditionalState.isSneaking : e['crouching'] + const isWalking = Math.abs(speed.x) > WALKING_SPEED || Math.abs(speed.z) > WALKING_SPEED + const isSprinting = Math.abs(speed.x) > SPRINTING_SPEED || Math.abs(speed.z) > SPRINTING_SPEED + + const newAnimation = + isCrouched ? (isWalking ? 'crouchWalking' : 'crouch') + : isWalking ? (isSprinting ? 'running' : 'walking') + : 'idle' + if (newAnimation !== playerPerAnimation[id]) { + // Handle bot entity animation specially (for player entity in third person) + if (e === bot.entity) { + getThreeJsRendererMethods()?.playEntityAnimation('player_entity', newAnimation) + } else { + getThreeJsRendererMethods()?.playEntityAnimation(e.id, newAnimation) + } + playerPerAnimation[id] = newAnimation + } + } + }) + + bot.on('entitySwingArm', (e) => { + getThreeJsRendererMethods()?.playEntityAnimation(e.id, 'oneSwing') + }) + + bot.on('botArmSwingStart', (hand) => { + if (hand === 'right') { + getThreeJsRendererMethods()?.playEntityAnimation('player_entity', 'oneSwing') + } + }) + + bot.inventory.on('updateSlot', (slot) => { + if (slot === 5 || slot === 6 || slot === 7 || slot === 8) { + const item = bot.inventory.slots[slot]! + bot.entity.equipment[slot - 3] = item + appViewer.worldView?.emit('playerEntity', bot.entity) + } + }) + bot.on('heldItemChanged', () => { + const item = bot.inventory.slots[bot.quickBarSlot + 36]! + bot.entity.equipment[0] = item + appViewer.worldView?.emit('playerEntity', bot.entity) + }) + + bot._client.on('damage_event', (data) => { + const { entityId, sourceTypeId: damage } = data + getThreeJsRendererMethods()?.damageEntity(entityId, damage) + }) + + bot._client.on('entity_status', (data) => { + if (versionToNumber(bot.version) >= versionToNumber('1.19.4')) return + const { entityId, entityStatus } = data + if (entityStatus === EntityStatus.HURT) { + getThreeJsRendererMethods()?.damageEntity(entityId, entityStatus) + } + + if (entityStatus === EntityStatus.BURNED) { + updateEntityStates(entityId, true, true) + } + }) + + // on fire events + bot._client.on('entity_metadata', (data) => { + if (data.entityId !== bot.entity.id) return + handleEntityMetadata(data) + }) + + bot.on('end', () => { + if (onFireTimeout) { + clearTimeout(onFireTimeout) + } + }) + + bot.on('respawn', () => { + if (onFireTimeout) { + clearTimeout(onFireTimeout) + } + }) + + const updateCamera = (entity: Entity) => { + if (bot.game.gameMode !== 'spectator') return + bot.entity.position = entity.position.clone() + void bot.look(entity.yaw, entity.pitch, true) + bot.entity.yaw = entity.yaw + bot.entity.pitch = entity.pitch + } + + bot.on('entityGone', (entity) => { + bot.tracker.stopTrackingEntity(entity, true) + }) + + bot.on('entityMoved', (e) => { + checkEntityData(e) + if (appViewer.playerState.reactive.cameraSpectatingEntity === e.id) { + updateCamera(e) + } + }) + bot._client.on('entity_velocity', (packet) => { + const e = bot.entities[packet.entityId] + if (!e) return + checkEntityData(e) + }) + + for (const entity of Object.values(bot.entities)) { + if (entity !== bot.entity) { + checkEntityData(entity) + } + } + + // Track bot entity initially + trackBotEntity() + + bot.on('entitySpawn', (e) => { + checkEntityData(e) + if (appViewer.playerState.reactive.cameraSpectatingEntity === e.id) { + updateCamera(e) + } + }) + bot.on('entityUpdate', checkEntityData) + bot.on('entityEquip', checkEntityData) + + // Re-track bot entity after login + bot.on('login', () => { + setTimeout(() => { + trackBotEntity() + }) // Small delay to ensure bot.entity is properly set + }) + + bot._client.on('camera', (packet) => { + if (bot.player.entity.id === packet.cameraId) { + if (appViewer.playerState.utils.isSpectatingEntity() && appViewer.playerState.reactive.cameraSpectatingEntity) { + const entity = bot.entities[appViewer.playerState.reactive.cameraSpectatingEntity] + appViewer.playerState.reactive.cameraSpectatingEntity = undefined + if (entity) { + // do a force entity update + bot.emit('entityUpdate', entity) + } + } + } else if (appViewer.playerState.reactive.gameMode === 'spectator') { + const entity = bot.entities[packet.cameraId] + appViewer.playerState.reactive.cameraSpectatingEntity = packet.cameraId + if (entity) { + updateCamera(entity) + // do a force entity update + bot.emit('entityUpdate', entity) + } + } + }) + + const applySkinTexturesProxy = (url: string | undefined) => { + const { appConfig } = miscUiState + if (appConfig?.skinTexturesProxy) { + return url?.replace('http://textures.minecraft.net/', appConfig.skinTexturesProxy) + .replace('https://textures.minecraft.net/', appConfig.skinTexturesProxy) + } + return url + } + + // Texture override from packet properties + const updateSkin = (player: import('mineflayer').Player) => { + if (!player.uuid || !player.username || !player.skinData) return + + try { + const skinUrl = applySkinTexturesProxy(player.skinData.url) + const capeUrl = applySkinTexturesProxy((player.skinData as any).capeUrl) + + // Find entity with matching UUID and update skin + let entityId = '' + for (const [entId, entity] of Object.entries(bot.entities)) { + if (entity.uuid === player.uuid) { + entityId = entId + break + } + } + // even if not found, still record to cache + void getThreeJsRendererMethods()!.updatePlayerSkin(entityId, player.username, player.uuid, skinUrl ?? true, capeUrl) + } catch (err) { + reportError(new Error('Error applying skin texture:', { cause: err })) + } + } + + bot.on('playerJoined', updateSkin) + bot.on('playerUpdated', updateSkin) + for (const entity of Object.values(bot.players)) { + updateSkin(entity) + } + + const teamUpdated = (team: Team) => { + for (const entity of Object.values(bot.entities)) { + if (entity.type === 'player' && entity.username && team.members.includes(entity.username) || entity.uuid && team.members.includes(entity.uuid)) { + bot.emit('entityUpdate', entity) + } + } + } + bot.on('teamUpdated', teamUpdated) + for (const team of Object.values(bot.teams)) { + teamUpdated(team) + } + + const updateEntityNameTags = (team: Team) => { + for (const entity of Object.values(bot.entities)) { + const entityTeam = entity.type === 'player' && entity.username ? bot.teamMap[entity.username] : entity.uuid ? bot.teamMap[entity.uuid] : undefined + if ((entityTeam?.nameTagVisibility === 'hideForOwnTeam' && entityTeam.name === team.name) + || (entityTeam?.nameTagVisibility === 'hideForOtherTeams' && entityTeam.name !== team.name)) { + bot.emit('entityUpdate', entity) + } + } + } + + const doEntitiesNeedUpdating = (team: Team) => { + return team.nameTagVisibility === 'never' + || (team.nameTagVisibility === 'hideForOtherTeams' && appViewer.playerState.reactive.team?.team !== team.team) + || (team.nameTagVisibility === 'hideForOwnTeam' && appViewer.playerState.reactive.team?.team === team.team) + } + + bot.on('teamMemberAdded', (team: Team, members: string[]) => { + if (members.includes(bot.username) && appViewer.playerState.reactive.team?.team !== team.team) { + appViewer.playerState.reactive.team = team + // Player was added to a team, need to check if any entities need updating + updateEntityNameTags(team) + } else if (doEntitiesNeedUpdating(team)) { + // Need to update all entities that were added + for (const entity of Object.values(bot.entities)) { + if (entity.type === 'player' && entity.username && members.includes(entity.username) || entity.uuid && members.includes(entity.uuid)) { + bot.emit('entityUpdate', entity) + } + } + } + }) + + bot.on('teamMemberRemoved', (team: Team, members: string[]) => { + if (members.includes(bot.username) && appViewer.playerState.reactive.team?.team === team.team) { + appViewer.playerState.reactive.team = undefined + // Player was removed from a team, need to check if any entities need updating + updateEntityNameTags(team) + } else if (doEntitiesNeedUpdating(team)) { + // Need to update all entities that were removed + for (const entity of Object.values(bot.entities)) { + if (entity.type === 'player' && entity.username && members.includes(entity.username) || entity.uuid && members.includes(entity.uuid)) { + bot.emit('entityUpdate', entity) + } + } + } + }) + + bot.on('teamRemoved', (team: Team) => { + if (appViewer.playerState.reactive.team?.team === team?.team) { + appViewer.playerState.reactive.team = undefined + // Player's team was removed, need to update all entities that are in a team + updateEntityNameTags(team) + } + }) + +}) + +// Constants +const SHARED_FLAGS_KEY = 0 +const ENTITY_FLAGS = { + ON_FIRE: 0x01, // Bit 0 + SNEAKING: 0x02, // Bit 1 + SPRINTING: 0x08, // Bit 3 + SWIMMING: 0x10, // Bit 4 + INVISIBLE: 0x20, // Bit 5 + GLOWING: 0x40, // Bit 6 + FALL_FLYING: 0x80 // Bit 7 (elytra flying) +} + +let onFireTimeout: NodeJS.Timeout | undefined +const updateEntityStates = (entityId: number, onFire: boolean, timeout?: boolean) => { + if (entityId !== bot.entity.id) return + appViewer.playerState.reactive.onFire = onFire + if (onFireTimeout) { + clearTimeout(onFireTimeout) + } + if (timeout) { + onFireTimeout = setTimeout(() => { + updateEntityStates(entityId, false, false) + }, 5000) + } +} + +// Process entity metadata packet +function handleEntityMetadata (packet: { entityId: number, metadata: Array<{ key: number, type: string, value: number }> }) { + const { entityId, metadata } = packet + + // Find shared flags in metadata + const flagsData = metadata.find(meta => meta.key === SHARED_FLAGS_KEY && + meta.type === 'byte') + + // Update fire state if flags were found + if (flagsData) { + const wasOnFire = appViewer.playerState.reactive.onFire + appViewer.playerState.reactive.onFire = (flagsData.value & ENTITY_FLAGS.ON_FIRE) !== 0 + } +} diff --git a/src/env.d.ts b/src/env.d.ts new file mode 100644 index 00000000..e565fcec --- /dev/null +++ b/src/env.d.ts @@ -0,0 +1,37 @@ +declare namespace NodeJS { + interface ProcessEnv { + // Build configuration + NODE_ENV: 'development' | 'production' + MIN_MC_VERSION?: string + MAX_MC_VERSION?: string + ALWAYS_COMPRESS_LARGE_DATA?: 'true' | 'false' + SINGLE_FILE_BUILD?: 'true' | 'false' + WS_PORT?: string + DISABLE_SERVICE_WORKER?: 'true' | 'false' + CONFIG_JSON_SOURCE?: 'BUNDLED' | 'REMOTE' + LOCAL_CONFIG_FILE?: string + BUILD_VERSION?: string + + // Build internals + GITHUB_REPOSITORY?: string + VERCEL_GIT_REPO_OWNER?: string + VERCEL_GIT_REPO_SLUG?: string + + // UI + MAIN_MENU_LINKS?: string + ALWAYS_MINIMAL_SERVER_UI?: 'true' | 'false' + + // App features + ENABLE_COOKIE_STORAGE?: string + COOKIE_STORAGE_PREFIX?: string + + // Build info. Release information + RELEASE_TAG?: string + RELEASE_LINK?: string + RELEASE_CHANGELOG?: string + + // Build info + INLINED_APP_CONFIG?: string + GITHUB_URL?: string + } +} diff --git a/src/errorLoadingScreenHelpers.ts b/src/errorLoadingScreenHelpers.ts new file mode 100644 index 00000000..2f882f89 --- /dev/null +++ b/src/errorLoadingScreenHelpers.ts @@ -0,0 +1,12 @@ +export const guessProblem = (errorMessage: string) => { + if (errorMessage.endsWith('Socket error: ECONNREFUSED')) { + return 'Most probably the server is not running.' + } +} + +export const loadingTexts = [ + 'Like the project? Give us a star on GitHub or rate us on AlternativeTo!', + 'To stay updated with the latest changes, go to the GitHub page, click on "Watch", choose "Custom", and then opt for "Releases"!', + 'Upvote features on GitHub issues to help us prioritize them!', + 'Want to contribute to the project? Check out Contributing.md on GitHub!', +] diff --git a/src/external/index.ts b/src/external/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/flyingSquidEvents.ts b/src/flyingSquidEvents.ts new file mode 100644 index 00000000..7231dd27 --- /dev/null +++ b/src/flyingSquidEvents.ts @@ -0,0 +1,27 @@ +import { saveServer } from './flyingSquidUtils' +import { watchUnloadForCleanup } from './gameUnload' +import { showModal } from './globalState' +import { options } from './optionsStorage' +import { chatInputValueGlobal } from './react/Chat' +import { showNotification } from './react/NotificationProvider' + +export default () => { + localServer!.on('warpsLoaded', () => { + if (!localServer) return + showNotification(`${localServer.warps.length} Warps loaded`, 'Use /warp to teleport to a warp point.', false, 'label-alt', () => { + chatInputValueGlobal.value = '/warp ' + showModal({ reactType: 'chat' }) + }) + }) + + if (options.singleplayerAutoSave) { + const autoSaveInterval = setInterval(() => { + if (options.singleplayerAutoSave) { + void saveServer(true) + } + }, 2000) + watchUnloadForCleanup(() => { + clearInterval(autoSaveInterval) + }) + } +} diff --git a/src/flyingSquidUtils.ts b/src/flyingSquidUtils.ts new file mode 100644 index 00000000..2ae0be7c --- /dev/null +++ b/src/flyingSquidUtils.ts @@ -0,0 +1,44 @@ +import * as crypto from 'crypto' +import UUID from 'uuid-1345' +import { fsState } from './loadSave' + + +// https://github.com/PrismarineJS/node-minecraft-protocol/blob/cf1f67117d586b5e6e21f0d9602da12e9fcf46b6/src/server/login.js#L170 +function javaUUID (s: string) { + const hash = crypto.createHash('md5') + hash.update(s, 'utf8') + const buffer = hash.digest() + buffer[6] = (buffer[6] & 15) | 48 + buffer[8] = (buffer[8] & 63) | 128 + return buffer +} + +export function nameToMcOfflineUUID (name) { + return (new UUID(javaUUID('OfflinePlayer:' + name))).toString() +} + +export async function savePlayers (autoSave: boolean) { + if (!localServer?.players[0]) return + if (autoSave && new URL(location.href).searchParams.get('noSave') === 'true') return + //@ts-expect-error TODO + await localServer.savePlayersSingleplayer() +} + +// todo flying squid should expose save function instead +export const saveServer = async (autoSave = true) => { + if (!localServer || fsState.isReadonly) return + // todo + console.time('save server') + const worlds = [(localServer as any).overworld] as Array + await Promise.all([localServer.writeLevelDat(), savePlayers(autoSave), ...worlds.map(async world => world.saveNow())]) + console.timeEnd('save server') +} +export const disconnect = async () => { + if (localServer) { + await saveServer() + void localServer.quit() // todo investigate we should await + } + window.history.replaceState({}, '', `${window.location.pathname}`) // remove qs + bot.end('You left the server') + location.reload() +} diff --git a/src/gameUnload.ts b/src/gameUnload.ts new file mode 100644 index 00000000..d5622411 --- /dev/null +++ b/src/gameUnload.ts @@ -0,0 +1,17 @@ +import { subscribe } from 'valtio' +import { miscUiState } from './globalState' + +let toCleanup = [] as Array<() => void> + +export const watchUnloadForCleanup = (func: () => void) => { + toCleanup.push(func) +} + +subscribe(miscUiState, () => { + if (!miscUiState.gameLoaded) { + for (const func of toCleanup) { + func() + } + toCleanup = [] + } +}) diff --git a/src/generatedClientPackets.ts b/src/generatedClientPackets.ts new file mode 100644 index 00000000..2715cd73 --- /dev/null +++ b/src/generatedClientPackets.ts @@ -0,0 +1,543 @@ +export interface ClientWriteMap { + keep_alive: /** 1.7 */ { + keepAliveId: number; + } | /** 1.12.2 */ { + keepAliveId: bigint; + }; + /** Removed in 1.19 */ + chat: /** 1.7 */ { + message: string; + }; + use_entity: /** 1.7 */ { + target: number; + mouse: number; + x: any; + y: any; + z: any; + } | /** 1.9 */ { + target: number; + mouse: number; + x: any; + y: any; + z: any; + hand: any; + } | /** 1.16 */ { + target: number; + mouse: number; + x: any; + y: any; + z: any; + hand: any; + sneaking: boolean; + }; + flying: /** 1.7 */ { + onGround: boolean; + }; + position: /** 1.7 */ { + x: number; + stance: number; + y: number; + z: number; + onGround: boolean; + } | /** 1.8 */ { + x: number; + y: number; + z: number; + onGround: boolean; + }; + look: /** 1.7 */ { + yaw: number; + pitch: number; + onGround: boolean; + }; + position_look: /** 1.7 */ { + x: number; + stance: number; + y: number; + z: number; + yaw: number; + pitch: number; + onGround: boolean; + } | /** 1.8 */ { + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + onGround: boolean; + }; + block_dig: /** 1.7 */ { + status: number; + location: any; + face: number; + } | /** 1.8 */ { + status: number; + location: { x: number, y: number, z: number }; + face: number; + } | /** 1.19 */ { + status: number; + location: { x: number, y: number, z: number }; + face: number; + sequence: number; + }; + block_place: /** 1.7 */ { + location: any; + direction: number; + heldItem: any; + cursorX: number; + cursorY: number; + cursorZ: number; + } | /** 1.8 */ { + location: { x: number, y: number, z: number }; + direction: number; + heldItem: any; + cursorX: number; + cursorY: number; + cursorZ: number; + } | /** 1.9 */ { + location: { x: number, y: number, z: number }; + direction: number; + hand: number; + cursorX: number; + cursorY: number; + cursorZ: number; + } | /** 1.14 */ { + hand: number; + location: { x: number, y: number, z: number }; + direction: number; + cursorX: number; + cursorY: number; + cursorZ: number; + insideBlock: boolean; + } | /** 1.19 */ { + hand: number; + location: { x: number, y: number, z: number }; + direction: number; + cursorX: number; + cursorY: number; + cursorZ: number; + insideBlock: boolean; + sequence: number; + }; + held_item_slot: /** 1.7 */ { + slotId: number; + }; + arm_animation: /** 1.7 */ { + entityId: number; + animation: number; + } | /** 1.8 */ { + + } | /** 1.9 */ { + hand: number; + }; + entity_action: /** 1.7 */ { + entityId: number; + actionId: number; + jumpBoost: number; + }; + steer_vehicle: /** 1.7 */ { + sideways: number; + forward: number; + jump: boolean; + unmount: boolean; + } | /** 1.8 */ { + sideways: number; + forward: number; + jump: number; + }; + close_window: /** 1.7 */ { + windowId: number; + }; + window_click: /** 1.7 */ { + windowId: number; + slot: number; + mouseButton: number; + action: number; + mode: number; + item: any; + } | /** 1.17 */ { + windowId: number; + slot: number; + mouseButton: number; + mode: number; + changedSlots: any; + cursorItem: any; + } | /** 1.17.1 */ { + windowId: number; + stateId: number; + slot: number; + mouseButton: number; + mode: number; + changedSlots: any; + cursorItem: any; + }; + /** Removed in 1.17 */ + transaction: /** 1.7 */ { + windowId: number; + action: number; + accepted: boolean; + }; + set_creative_slot: /** 1.7 */ { + slot: number; + item: any; + }; + enchant_item: /** 1.7 */ { + windowId: number; + enchantment: number; + }; + update_sign: /** 1.7 */ { + location: any; + text1: string; + text2: string; + text3: string; + text4: string; + } | /** 1.8 */ { + location: { x: number, y: number, z: number }; + text1: string; + text2: string; + text3: string; + text4: string; + } | /** 1.20 */ { + location: { x: number, y: number, z: number }; + isFrontText: boolean; + text1: string; + text2: string; + text3: string; + text4: string; + }; + abilities: /** 1.7 */ { + flags: number; + flyingSpeed: number; + walkingSpeed: number; + } | /** 1.16 */ { + flags: number; + }; + tab_complete: /** 1.7 */ { + text: string; + } | /** 1.8 */ { + text: string; + block: any; + } | /** 1.9 */ { + text: string; + assumeCommand: boolean; + lookedAtBlock: any; + } | /** 1.13 */ { + transactionId: number; + text: string; + }; + settings: /** 1.7 */ { + locale: string; + viewDistance: number; + chatFlags: number; + chatColors: boolean; + difficulty: number; + showCape: boolean; + } | /** 1.8 */ { + locale: string; + viewDistance: number; + chatFlags: number; + chatColors: boolean; + skinParts: number; + } | /** 1.9 */ { + locale: string; + viewDistance: number; + chatFlags: number; + chatColors: boolean; + skinParts: number; + mainHand: number; + } | /** 1.17 */ { + locale: string; + viewDistance: number; + chatFlags: number; + chatColors: boolean; + skinParts: number; + mainHand: number; + disableTextFiltering: boolean; + } | /** 1.18 */ { + locale: string; + viewDistance: number; + chatFlags: number; + chatColors: boolean; + skinParts: number; + mainHand: number; + enableTextFiltering: boolean; + enableServerListing: boolean; + }; + client_command: /** 1.7 */ { + payload: number; + } | /** 1.9 */ { + actionId: number; + }; + custom_payload: /** 1.7 */ { + channel: string; + data: any; + }; + packet: /** 1.7 */ { + name: any; + params: any; + }; + spectate: /** 1.8 */ { + target: any; + }; + resource_pack_receive: /** 1.8 */ { + hash: string; + result: number; + } | /** 1.10 */ { + result: number; + } | /** 1.20.3 */ { + uuid: any; + result: number; + }; + teleport_confirm: /** 1.9 */ { + teleportId: number; + }; + vehicle_move: /** 1.9 */ { + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + }; + steer_boat: /** 1.9 */ { + leftPaddle: boolean; + rightPaddle: boolean; + }; + use_item: /** 1.9 */ { + hand: number; + } | /** 1.19 */ { + hand: number; + sequence: number; + }; + /** Removed in 1.12.1 */ + prepare_crafting_grid: /** 1.12 */ { + windowId: number; + actionNumber: number; + returnEntry: any; + prepareEntry: any; + }; + /** Removed in 1.16.2 */ + crafting_book_data: /** 1.12 */ { + type: number; + undefined: any; + }; + advancement_tab: /** 1.12 */ { + action: number; + tabId: any; + }; + craft_recipe_request: /** 1.12.1 */ { + windowId: number; + recipe: number; + makeAll: boolean; + } | /** 1.13 */ { + windowId: number; + recipe: string; + makeAll: boolean; + }; + query_block_nbt: /** 1.13 */ { + transactionId: number; + location: { x: number, y: number, z: number }; + }; + edit_book: /** 1.13 */ { + new_book: any; + signing: boolean; + } | /** 1.13.1 */ { + new_book: any; + signing: boolean; + hand: number; + } | /** 1.17.1 */ { + hand: number; + pages: any; + title: any; + }; + query_entity_nbt: /** 1.13 */ { + transactionId: number; + entityId: number; + }; + pick_item: /** 1.13 */ { + slot: number; + }; + name_item: /** 1.13 */ { + name: string; + }; + select_trade: /** 1.13 */ { + slot: number; + }; + set_beacon_effect: /** 1.13 */ { + primary_effect: number; + secondary_effect: number; + } | /** 1.19 */ { + primary_effect: any; + secondary_effect: any; + }; + update_command_block: /** 1.13 */ { + location: { x: number, y: number, z: number }; + command: string; + mode: number; + flags: number; + }; + update_command_block_minecart: /** 1.13 */ { + entityId: number; + command: string; + track_output: boolean; + }; + update_structure_block: /** 1.13 */ { + location: { x: number, y: number, z: number }; + action: number; + mode: number; + name: string; + offset_x: number; + offset_y: number; + offset_z: number; + size_x: number; + size_y: number; + size_z: number; + mirror: number; + rotation: number; + metadata: string; + integrity: number; + seed: any; + flags: number; + } | /** 1.19 */ { + location: { x: number, y: number, z: number }; + action: number; + mode: number; + name: string; + offset_x: number; + offset_y: number; + offset_z: number; + size_x: number; + size_y: number; + size_z: number; + mirror: number; + rotation: number; + metadata: string; + integrity: number; + seed: number; + flags: number; + }; + set_difficulty: /** 1.14 */ { + newDifficulty: number; + }; + lock_difficulty: /** 1.14 */ { + locked: boolean; + }; + update_jigsaw_block: /** 1.14 */ { + location: { x: number, y: number, z: number }; + attachmentType: string; + targetPool: string; + finalState: string; + } | /** 1.16 */ { + location: { x: number, y: number, z: number }; + name: string; + target: string; + pool: string; + finalState: string; + jointType: string; + } | /** 1.20.3 */ { + location: { x: number, y: number, z: number }; + name: string; + target: string; + pool: string; + finalState: string; + jointType: string; + selection_priority: number; + placement_priority: number; + }; + generate_structure: /** 1.16 */ { + location: { x: number, y: number, z: number }; + levels: number; + keepJigsaws: boolean; + }; + displayed_recipe: /** 1.16.2 */ { + recipeId: string; + }; + recipe_book: /** 1.16.2 */ { + bookId: number; + bookOpen: boolean; + filterActive: boolean; + }; + pong: /** 1.17 */ { + id: number; + }; + chat_command: /** 1.19 */ { + command: string; + timestamp: bigint; + salt: bigint; + argumentSignatures: any; + signedPreview: boolean; + } | /** 1.19.2 */ { + command: string; + timestamp: bigint; + salt: bigint; + argumentSignatures: any; + signedPreview: boolean; + previousMessages: any; + lastRejectedMessage: any; + } | /** 1.19.3 */ { + command: string; + timestamp: bigint; + salt: bigint; + argumentSignatures: any; + messageCount: number; + acknowledged: any; + }; + chat_message: /** 1.19 */ { + message: string; + timestamp: bigint; + salt: bigint; + signature: any; + signedPreview: boolean; + } | /** 1.19.2 */ { + message: string; + timestamp: bigint; + salt: bigint; + signature: any; + signedPreview: boolean; + previousMessages: any; + lastRejectedMessage: any; + } | /** 1.19.3 */ { + message: string; + timestamp: bigint; + salt: bigint; + signature: any; + offset: number; + acknowledged: any; + }; + /** Removed in 1.19.3 */ + chat_preview: /** 1.19 */ { + query: number; + message: string; + }; + message_acknowledgement: /** 1.19.2 */ { + previousMessages: any; + lastRejectedMessage: any; + } | /** 1.19.3 */ { + count: number; + }; + chat_session_update: /** 1.19.3 */ { + sessionUUID: any; + expireTime: bigint; + publicKey: any; + signature: any; + }; + chunk_batch_received: /** 1.20.2 */ { + chunksPerTick: number; + }; + /** Removed in 1.20.3 */ + configuation_acknowledged: /** 1.20.2 */ { + + }; + ping_request: /** 1.20.2 */ { + id: bigint; + }; + configuration_acknowledged: /** 1.20.3 */ { + + }; + set_slot_state: /** 1.20.3 */ { + slot_id: number; + window_id: number; + state: boolean; + }; +} + +export declare const clientWrite: (name: T, data: ClientWriteMap[T]) => Buffer diff --git a/src/generatedServerPackets.ts b/src/generatedServerPackets.ts new file mode 100644 index 00000000..3b3ce018 --- /dev/null +++ b/src/generatedServerPackets.ts @@ -0,0 +1,1474 @@ +// from server to client + +export interface ClientOnMap { + keep_alive: /** 1.7 */ { + keepAliveId: number; + } | /** 1.12.2 */ { + keepAliveId: bigint; + }; + login:/** 1.8 */ { + entityId: number; + gameMode: number; + dimension: number; + difficulty: number; + maxPlayers: number; + levelType: string; + reducedDebugInfo: boolean; + } | /** 1.14 */ { + entityId: number; + gameMode: number; + dimension: number; + maxPlayers: number; + levelType: string; + viewDistance: number; + reducedDebugInfo: boolean; + } | /** 1.15 */ { + entityId: number; + gameMode: number; + dimension: number; + hashedSeed: bigint; + maxPlayers: number; + levelType: string; + viewDistance: number; + reducedDebugInfo: boolean; + enableRespawnScreen: boolean; + } | /** 1.16 */ { + entityId: number; + gameMode: number; + previousGameMode: number; + worldNames: any; + dimensionCodec: any; + dimension: string; + worldName: string; + hashedSeed: bigint; + maxPlayers: number; + viewDistance: number; + reducedDebugInfo: boolean; + enableRespawnScreen: boolean; + isDebug: boolean; + isFlat: boolean; + } | /** 1.16.2 */ { + entityId: number; + isHardcore: boolean; + gameMode: number; + previousGameMode: number; + worldNames: any; + dimensionCodec: any; + dimension: any; + worldName: string; + hashedSeed: bigint; + maxPlayers: number; + viewDistance: number; + reducedDebugInfo: boolean; + enableRespawnScreen: boolean; + isDebug: boolean; + isFlat: boolean; + } | /** 1.18 */ { + entityId: number; + isHardcore: boolean; + gameMode: number; + previousGameMode: number; + worldNames: any; + dimensionCodec: any; + dimension: any; + worldName: string; + hashedSeed: bigint; + maxPlayers: number; + viewDistance: number; + simulationDistance: number; + reducedDebugInfo: boolean; + enableRespawnScreen: boolean; + isDebug: boolean; + isFlat: boolean; + } | /** 1.19 */ { + entityId: number; + isHardcore: boolean; + gameMode: number; + previousGameMode: number; + worldNames: any; + dimensionCodec: any; + worldType: string; + worldName: string; + hashedSeed: bigint; + maxPlayers: number; + viewDistance: number; + simulationDistance: number; + reducedDebugInfo: boolean; + enableRespawnScreen: boolean; + isDebug: boolean; + isFlat: boolean; + death: any; + } | /** 1.20 */ { + entityId: number; + isHardcore: boolean; + gameMode: number; + previousGameMode: number; + worldNames: any; + dimensionCodec: any; + worldType: string; + worldName: string; + hashedSeed: bigint; + maxPlayers: number; + viewDistance: number; + simulationDistance: number; + reducedDebugInfo: boolean; + enableRespawnScreen: boolean; + isDebug: boolean; + isFlat: boolean; + death: any; + portalCooldown: number; + }; + /** Removed in 1.19 */ + chat: /** 1.7 */ { + message: string; + } | /** 1.8 */ { + message: string; + position: number; + } | /** 1.16 */ { + message: string; + position: number; + sender: any; + }; + update_time: /** 1.7 */ { + age: bigint; + time: bigint; + }; + entity_equipment: /** 1.7 */ { + entityId: number; + slot: number; + item: any; + } | /** 1.16 */ { + entityId: number; + equipments: any; + }; + spawn_position:/** 1.8 */ { + location: { x: number, y: number, z: number }; + } | /** 1.17 */ { + location: { x: number, y: number, z: number }; + angle: number; + }; + update_health: /** 1.7 */ { + health: number; + food: number; + foodSaturation: number; + }; + respawn: /** 1.7 */ { + dimension: number; + difficulty: number; + gamemode: number; + levelType: string; + } | /** 1.14 */ { + dimension: number; + gamemode: number; + levelType: string; + } | /** 1.15 */ { + dimension: number; + hashedSeed: bigint; + gamemode: number; + levelType: string; + } | /** 1.16 */ { + dimension: string; + worldName: string; + hashedSeed: bigint; + gamemode: number; + previousGamemode: number; + isDebug: boolean; + isFlat: boolean; + copyMetadata: boolean; + } | /** 1.16.2 */ { + dimension: any; + worldName: string; + hashedSeed: bigint; + gamemode: number; + previousGamemode: number; + isDebug: boolean; + isFlat: boolean; + copyMetadata: boolean; + } | /** 1.19 */ { + dimension: string; + worldName: string; + hashedSeed: bigint; + gamemode: number; + previousGamemode: number; + isDebug: boolean; + isFlat: boolean; + copyMetadata: boolean; + death: any; + } | /** 1.20 */ { + dimension: string; + worldName: string; + hashedSeed: bigint; + gamemode: number; + previousGamemode: number; + isDebug: boolean; + isFlat: boolean; + copyMetadata: boolean; + death: any; + portalCooldown: number; + }; + position: /** 1.8 */ { + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + flags: number; + } | /** 1.9 */ { + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + flags: number; + teleportId: number; + } | /** 1.17 */ { + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + flags: number; + teleportId: number; + dismountVehicle: boolean; + } /** 1.19.4 */ ; + held_item_slot: /** 1.7 */ { + slot: number; + }; + /** Removed in 1.14 */ + bed: /** 1.7 */ { + entityId: number; + location: any; + } | /** 1.8 */ { + entityId: number; + location: { x: number, y: number, z: number }; + }; + animation: /** 1.7 */ { + entityId: number; + animation: number; + }; + named_entity_spawn: /** 1.7 */ { + entityId: number; + playerUUID: string; + playerName: string; + data: any; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + currentItem: number; + metadata: any; + } | /** 1.8 */ { + entityId: number; + playerUUID: any; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + currentItem: number; + metadata: any; + } | /** 1.9 */ { + entityId: number; + playerUUID: any; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + metadata: any; + } | /** 1.15 */ { + entityId: number; + playerUUID: any; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + }; + collect: /** 1.7 */ { + collectedEntityId: number; + collectorEntityId: number; + } | /** 1.11 */ { + collectedEntityId: number; + collectorEntityId: number; + pickupItemCount: number; + }; + spawn_entity: /** 1.7 */ { + entityId: number; + type: number; + x: number; + y: number; + z: number; + pitch: number; + yaw: number; + objectData: any; + } | /** 1.9 */ { + entityId: number; + objectUUID: any; + type: number; + x: number; + y: number; + z: number; + pitch: number; + yaw: number; + objectData: number; + velocityX: number; + velocityY: number; + velocityZ: number; + } | /** 1.19 */ { + entityId: number; + objectUUID: any; + type: number; + x: number; + y: number; + z: number; + pitch: number; + yaw: number; + headPitch: number; + objectData: number; + velocityX: number; + velocityY: number; + velocityZ: number; + }; + /** Removed in 1.19 */ + spawn_entity_living: /** 1.7 */ { + entityId: number; + type: number; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + headPitch: number; + velocityX: number; + velocityY: number; + velocityZ: number; + metadata: any; + } | /** 1.9 */ { + entityId: number; + entityUUID: any; + type: number; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + headPitch: number; + velocityX: number; + velocityY: number; + velocityZ: number; + metadata: any; + } | /** 1.15 */ { + entityId: number; + entityUUID: any; + type: number; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + headPitch: number; + velocityX: number; + velocityY: number; + velocityZ: number; + }; + /** Removed in 1.19 */ + spawn_entity_painting: /** 1.7 */ { + entityId: number; + title: string; + location: any; + direction: number; + } | /** 1.8 */ { + entityId: number; + title: string; + location: { x: number, y: number, z: number }; + direction: number; + } | /** 1.9 */ { + entityId: number; + entityUUID: any; + title: string; + location: { x: number, y: number, z: number }; + direction: number; + } | /** 1.13 */ { + entityId: number; + entityUUID: any; + title: number; + location: { x: number, y: number, z: number }; + direction: number; + }; + spawn_entity_experience_orb: /** 1.7 */ { + entityId: number; + x: number; + y: number; + z: number; + count: number; + }; + entity_velocity: /** 1.7 */ { + entityId: number; + velocityX: number; + velocityY: number; + velocityZ: number; + }; + /** Removed in 1.17 */ + entity_destroy: /** 1.17.1 */ { + entityIds: any; + }; + /** Removed in 1.17 */ + entity: /** 1.7 */ { + entityId: number; + }; + rel_entity_move: /** 1.7 */ { + entityId: number; + dX: number; + dY: number; + dZ: number; + } | /** 1.8 */ { + entityId: number; + dX: number; + dY: number; + dZ: number; + onGround: boolean; + }; + entity_look: /** 1.7 */ { + entityId: number; + yaw: number; + pitch: number; + } | /** 1.8 */ { + entityId: number; + yaw: number; + pitch: number; + onGround: boolean; + }; + entity_move_look: /** 1.7 */ { + entityId: number; + dX: number; + dY: number; + dZ: number; + yaw: number; + pitch: number; + } | /** 1.8 */ { + entityId: number; + dX: number; + dY: number; + dZ: number; + yaw: number; + pitch: number; + onGround: boolean; + }; + entity_teleport: /** 1.7 */ { + entityId: number; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + } | /** 1.8 */ { + entityId: number; + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + onGround: boolean; + }; + entity_head_rotation: /** 1.7 */ { + entityId: number; + headYaw: number; + }; + entity_status: /** 1.7 */ { + entityId: number; + entityStatus: number; + }; + attach_entity: /** 1.7 */ { + entityId: number; + vehicleId: number; + leash: boolean; + } | /** 1.9 */ { + entityId: number; + vehicleId: number; + }; + entity_metadata: /** 1.7 */ { + entityId: number; + metadata: any; + }; + entity_effect: /** 1.7 */ { + entityId: number; + effectId: number; + amplifier: number; + duration: number; + } | /** 1.8 */ { + entityId: number; + effectId: number; + amplifier: number; + duration: number; + hideParticles: boolean; + } | /** 1.9 */ { + entityId: number; + effectId: number; + amplifier: number; + duration: number; + hideParticles: number; + } | /** 1.19 */ { + entityId: number; + effectId: number; + amplifier: number; + duration: number; + hideParticles: number; + factorCodec: any; + }; + remove_entity_effect: /** 1.7 */ { + entityId: number; + effectId: number; + }; + experience: /** 1.7 */ { + experienceBar: number; + level: number; + totalExperience: number; + } | /** 1.19.3 */ { + experienceBar: number; + totalExperience: number; + level: number; + }; + /** Removed in 1.9 */ + update_attributes: /** 1.7 */ { + entityId: number; + properties: any; + }; + map_chunk: /** 1.7 */ { + x: number; + z: number; + groundUp: boolean; + bitMap: number; + addBitMap: number; + compressedChunkData: any; + } | /** 1.8 */ { + x: number; + z: number; + groundUp: boolean; + bitMap: number; + chunkData: any; + } | /** 1.9.4 */ { + x: number; + z: number; + groundUp: boolean; + bitMap: number; + chunkData: any; + blockEntities: any; + } | /** 1.14 */ { + x: number; + z: number; + groundUp: boolean; + bitMap: number; + heightmaps: any; + chunkData: any; + blockEntities: any; + } | /** 1.15 */ { + x: number; + z: number; + groundUp: boolean; + bitMap: number; + heightmaps: any; + biomes: any; + chunkData: any; + blockEntities: any; + } | /** 1.16 */ { + x: number; + z: number; + groundUp: boolean; + ignoreOldData: boolean; + bitMap: number; + heightmaps: any; + biomes: any; + chunkData: any; + blockEntities: any; + } /** 1.16.2 */ | /** 1.17 */ { + x: number; + z: number; + bitMap: any; + heightmaps: any; + biomes: any; + chunkData: any; + blockEntities: any; + } | /** 1.18 */ { + x: number; + z: number; + heightmaps: any; + chunkData: any; + blockEntities: any; + trustEdges: boolean; + skyLightMask: any; + blockLightMask: any; + emptySkyLightMask: any; + emptyBlockLightMask: any; + skyLight: any; + blockLight: any; + } | /** 1.20 */ { + x: number; + z: number; + heightmaps: any; + chunkData: any; + blockEntities: any; + skyLightMask: any; + blockLightMask: any; + emptySkyLightMask: any; + emptyBlockLightMask: any; + skyLight: any; + blockLight: any; + }; + multi_block_change: /** 1.7 */ { + chunkX: number; + chunkZ: number; + recordCount: any; + dataLength: number; + records: any; + } | /** 1.8 */ { + chunkX: number; + chunkZ: number; + records: any; + } | /** 1.16.2 */ { + chunkCoordinates: any; + notTrustEdges: boolean; + records: any; + } | /** 1.19.2 */ { + chunkCoordinates: any; + suppressLightUpdates: boolean; + records: any; + } | /** 1.20 */ { + chunkCoordinates: any; + records: any; + }; + block_change: /** 1.7 */ { + location: any; + type: number; + metadata: number; + } | /** 1.8 */ { + location: { x: number, y: number, z: number }; + type: number; + }; + block_action: /** 1.7 */ { + location: any; + byte1: number; + byte2: number; + blockId: number; + } | /** 1.8 */ { + location: { x: number, y: number, z: number }; + byte1: number; + byte2: number; + blockId: number; + }; + block_break_animation: /** 1.7 */ { + entityId: number; + location: any; + destroyStage: number; + } | /** 1.8 */ { + entityId: number; + location: { x: number, y: number, z: number }; + destroyStage: number; + }; + /** Removed in 1.9 */ + map_chunk_bulk: /** 1.7 */ { + chunkColumnCount: any; + dataLength: any; + skyLightSent: boolean; + compressedChunkData: any; + meta: any; + } | /** 1.8 */ { + skyLightSent: boolean; + meta: any; + data: any; + }; + explosion: /** 1.7 */ { + x: number; + y: number; + z: number; + radius: number; + affectedBlockOffsets: any; + playerMotionX: number; + playerMotionY: number; + playerMotionZ: number; + }; + world_event: /** 1.7 */ { + effectId: number; + location: any; + data: number; + global: boolean; + } | /** 1.8 */ { + effectId: number; + location: { x: number, y: number, z: number }; + data: number; + global: boolean; + }; + /** Removed in 1.19.3 */ + named_sound_effect: /** 1.7 */ { + soundName: string; + x: number; + y: number; + z: number; + volume: number; + pitch: number; + } | /** 1.9 */ { + soundName: string; + soundCategory: number; + x: number; + y: number; + z: number; + volume: number; + pitch: number; + } | /** 1.19 */ { + soundName: string; + soundCategory: number; + x: number; + y: number; + z: number; + volume: number; + pitch: number; + seed: bigint; + }; + world_particles: /** 1.7 */ { + particleName: string; + x: number; + y: number; + z: number; + offsetX: number; + offsetY: number; + offsetZ: number; + particleData: number; + particles: number; + } | /** 1.8 */ { + particleId: number; + longDistance: boolean; + x: number; + y: number; + z: number; + offsetX: number; + offsetY: number; + offsetZ: number; + particleData: number; + particles: number; + data: any; + }; + game_state_change: /** 1.7 */ { + reason: number; + gameMode: number; + }; + /** Removed in 1.16 */ + spawn_entity_weather: /** 1.7 */ { + entityId: number; + type: number; + x: number; + y: number; + z: number; + }; + open_window: /** 1.7 */ { + windowId: number; + inventoryType: number; + windowTitle: string; + slotCount: number; + useProvidedTitle: boolean; + entityId: any; + } | /** 1.8 */ { + windowId: number; + inventoryType: string; + windowTitle: string; + slotCount: number; + entityId: any; + } | /** 1.14 */ { + windowId: number; + inventoryType: number; + windowTitle: string; + }; + close_window: /** 1.7 */ { + windowId: number; + }; + set_slot: /** 1.7 */ { + windowId: number; + slot: number; + item: any; + } | /** 1.17.1 */ { + windowId: number; + stateId: number; + slot: number; + item: any; + }; + window_items: /** 1.7 */ { + windowId: number; + items: any; + } | /** 1.17.1 */ { + windowId: number; + stateId: number; + items: any; + carriedItem: any; + }; + craft_progress_bar: /** 1.7 */ { + windowId: number; + property: number; + value: number; + }; + /** Removed in 1.17 */ + transaction: /** 1.7 */ { + windowId: number; + action: number; + accepted: boolean; + }; + /** Removed in 1.9.4 */ + update_sign: /** 1.7 */ { + location: any; + text1: string; + text2: string; + text3: string; + text4: string; + } | /** 1.8 */ { + location: { x: number, y: number, z: number }; + text1: string; + text2: string; + text3: string; + text4: string; + }; + map: /** 1.7 */ { + itemDamage: number; + data: any; + } | /** 1.8 */ { + itemDamage: number; + scale: number; + icons: any; + columns: number; + rows: any; + x: any; + y: any; + data: any; + } | /** 1.9 */ { + itemDamage: number; + scale: number; + trackingPosition: boolean; + icons: any; + columns: number; + rows: any; + x: any; + y: any; + data: any; + } | /** 1.14 */ { + itemDamage: number; + scale: number; + trackingPosition: boolean; + locked: boolean; + icons: any; + columns: number; + rows: any; + x: any; + y: any; + data: any; + } | /** 1.17 */ { + itemDamage: number; + scale: number; + locked: boolean; + icons: any; + columns: number; + rows: any; + x: any; + y: any; + data: any; + }; + tile_entity_data: /** 1.7 */ { + location: any; + action: number; + nbtData: any; + } | /** 1.8 */ { + location: { x: number, y: number, z: number }; + action: number; + nbtData: any; + }; + open_sign_entity: /** 1.7 */ { + location: any; + } | /** 1.8 */ { + location: { x: number, y: number, z: number }; + } | /** 1.20 */ { + location: { x: number, y: number, z: number }; + isFrontText: boolean; + }; + statistics: /** 1.7 */ { + entries: any; + }; + player_info: /** 1.8 */ { + action: number; + data: any; + }; + abilities: /** 1.7 */ { + flags: number; + flyingSpeed: number; + walkingSpeed: number; + }; + tab_complete: /** 1.7 */ { + matches: any; + } | /** 1.13 */ { + transactionId: number; + start: number; + length: number; + matches: any; + }; + scoreboard_objective:/** 1.8 */ { + name: string; + action: number; + displayText: any; + type: any; + }; + scoreboard_score:/** 1.8 */ { + itemName: string; + action: number; + scoreName: string; + value: any; + }; + scoreboard_display_objective: /** 1.7 */ { + position: number; + name: string; + }; + /** Removed in 1.9 */ + scoreboard_team: /** 1.7 */ { + team: string; + mode: number; + name: any; + prefix: any; + suffix: any; + friendlyFire: any; + players: any; + } | /** 1.8 */ { + team: string; + mode: number; + name: any; + prefix: any; + suffix: any; + friendlyFire: any; + nameTagVisibility: any; + color: any; + players: any; + }; + custom_payload: /** 1.7 */ { + channel: string; + data: any; + }; + kick_disconnect: /** 1.7 */ { + reason: string; + }; + packet: /** 1.7 */ { + name: any; + params: any; + }; + difficulty: /** 1.8 */ { + difficulty: number; + } | /** 1.14 */ { + difficulty: number; + difficultyLocked: boolean; + }; + /** Removed in 1.17 */ + combat_event: /** 1.8 */ { + event: number; + duration: any; + playerId: any; + entityId: any; + message: any; + }; + camera: /** 1.8 */ { + cameraId: number; + }; + /** Removed in 1.17 */ + world_border: /** 1.8 */ { + action: number; + radius: any; + x: any; + z: any; + old_radius: any; + new_radius: any; + speed: any; + portalBoundary: any; + warning_time: any; + warning_blocks: any; + }; + /** Removed in 1.17 */ + title: /** 1.8 */ { + action: number; + text: any; + fadeIn: any; + stay: any; + fadeOut: any; + }; + /** Removed in 1.9 */ + set_compression: /** 1.8 */ { + threshold: number; + }; + playerlist_header: /** 1.8 */ { + header: string; + footer: string; + }; + resource_pack_send: /** 1.8 */ { + url: string; + hash: string; + } | /** 1.17 */ { + url: string; + hash: string; + forced: boolean; + promptMessage: any; + }; + /** Removed in 1.9 */ + update_entity_nbt: /** 1.8 */ { + entityId: number; + tag: any; + }; + boss_bar: /** 1.9 */ { + entityUUID: any; + action: number; + title: any; + health: any; + color: any; + dividers: any; + flags: any; + }; + set_cooldown: /** 1.9 */ { + itemID: number; + cooldownTicks: number; + }; + unload_chunk: /** 1.9 */ { + chunkX: number; + chunkZ: number; + }; + vehicle_move: /** 1.9 */ { + x: number; + y: number; + z: number; + yaw: number; + pitch: number; + }; + set_passengers: /** 1.9 */ { + entityId: number; + passengers: any; + }; + teams: /** 1.9 */ { + team: string; + mode: number; + name: any; + prefix: any; + suffix: any; + friendlyFire: any; + nameTagVisibility: any; + collisionRule: any; + color: any; + players: any; + } | /** 1.13 */ { + team: string; + mode: number; + name: any; + friendlyFire: any; + nameTagVisibility: any; + collisionRule: any; + formatting: any; + prefix: any; + suffix: any; + players: any; + }; + sound_effect: /** 1.9 */ { + soundId: number; + soundCategory: number; + x: number; + y: number; + z: number; + volume: number; + pitch: number; + } | /** 1.19 */ { + soundId: number; + soundCategory: number; + x: number; + y: number; + z: number; + volume: number; + pitch: number; + seed: bigint; + }; + entity_update_attributes: /** 1.9 */ { + entityId: number; + properties: any; + }; + advancements: /** 1.12 */ { + reset: boolean; + advancementMapping: any; + identifiers: any; + progressMapping: any; + }; + unlock_recipes: /** 1.12 */ { + action: number; + craftingBookOpen: boolean; + filteringCraftable: boolean; + recipes1: any; + recipes2: any; + } | /** 1.13 */ { + action: number; + craftingBookOpen: boolean; + filteringCraftable: boolean; + smeltingBookOpen: boolean; + filteringSmeltable: boolean; + recipes1: any; + recipes2: any; + } | /** 1.16.2 */ { + action: number; + craftingBookOpen: boolean; + filteringCraftable: boolean; + smeltingBookOpen: boolean; + filteringSmeltable: boolean; + blastFurnaceOpen: boolean; + filteringBlastFurnace: boolean; + smokerBookOpen: boolean; + filteringSmoker: boolean; + recipes1: any; + recipes2: any; + }; + select_advancement_tab: /** 1.12 */ { + id: any; + }; + craft_recipe_response: /** 1.12.1 */ { + windowId: number; + recipe: number; + } | /** 1.13 */ { + windowId: number; + recipe: string; + }; + declare_commands: /** 1.13 */ { + nodes: any; + rootIndex: number; + }; + face_player: /** 1.13 */ { + feet_eyes: number; + x: number; + y: number; + z: number; + isEntity: boolean; + entityId: any; + entity_feet_eyes: any; + }; + nbt_query_response: /** 1.13 */ { + transactionId: number; + nbt: any; + }; + stop_sound: /** 1.13 */ { + flags: number; + source: any; + sound: any; + }; + declare_recipes: /** 1.13 */ { + recipes: any; + }; + tags: /** 1.13 */ { + blockTags: any; + itemTags: any; + fluidTags: any; + } | /** 1.14 */ { + blockTags: any; + itemTags: any; + fluidTags: any; + entityTags: any; + } | /** 1.17 */ { + tags: any; + }; + open_horse_window: /** 1.14 */ { + windowId: number; + nbSlots: number; + entityId: number; + }; + update_light: /** 1.14 */ { + chunkX: number; + chunkZ: number; + skyLightMask: number; + blockLightMask: number; + emptySkyLightMask: number; + emptyBlockLightMask: number; + data: any; + } | /** 1.16 */ { + chunkX: number; + chunkZ: number; + trustEdges: boolean; + skyLightMask: number; + blockLightMask: number; + emptySkyLightMask: number; + emptyBlockLightMask: number; + data: any; + } | /** 1.17 */ { + chunkX: number; + chunkZ: number; + trustEdges: boolean; + skyLightMask: any; + blockLightMask: any; + emptySkyLightMask: any; + emptyBlockLightMask: any; + skyLight: any; + blockLight: any; + } | /** 1.20 */ { + chunkX: number; + chunkZ: number; + skyLightMask: any; + blockLightMask: any; + emptySkyLightMask: any; + emptyBlockLightMask: any; + skyLight: any; + blockLight: any; + }; + trade_list: /** 1.14 */ { + windowId: number; + trades: any; + villagerLevel: number; + experience: number; + isRegularVillager: boolean; + } | /** 1.14.3 */ { + windowId: number; + trades: any; + villagerLevel: number; + experience: number; + isRegularVillager: boolean; + canRestock: boolean; + }; + open_book: /** 1.14 */ { + hand: number; + }; + update_view_position: /** 1.14 */ { + chunkX: number; + chunkZ: number; + }; + update_view_distance: /** 1.14 */ { + viewDistance: number; + }; + entity_sound_effect: /** 1.14 */ { + soundId: number; + soundCategory: number; + entityId: number; + volume: number; + pitch: number; + } | /** 1.19.2 */ { + soundId: number; + soundCategory: number; + entityId: number; + volume: number; + pitch: number; + seed: bigint; + }; + acknowledge_player_digging: /** 1.14.4 */ { + location: { x: number, y: number, z: number }; + block: number; + status: number; + successful: boolean; + } | /** 1.19 */ { + sequenceId: number; + }; + end_combat_event: /** 1.17 */ { + duration: number; + entityId: number; + } | /** 1.20 */ { + duration: number; + }; + enter_combat_event: /** 1.17 */ { + + }; + death_combat_event: /** 1.17 */ { + playerId: number; + entityId: number; + message: string; + } | /** 1.20 */ { + playerId: number; + message: string; + }; + /** Removed in 1.17.1 */ + destroy_entity: /** 1.17 */ { + entityId: number; + }; + /** Removed in 1.19 */ + sculk_vibration_signal: /** 1.17 */ { + sourcePosition: { x: number, y: number, z: number }; + destinationIdentifier: string; + destination: any; + arrivalTicks: number; + }; + clear_titles: /** 1.17 */ { + reset: boolean; + }; + initialize_world_border: /** 1.17 */ { + x: number; + z: number; + oldDiameter: number; + newDiameter: number; + speed: any; + portalTeleportBoundary: number; + warningBlocks: number; + warningTime: number; + } | /** 1.19 */ { + x: number; + z: number; + oldDiameter: number; + newDiameter: number; + speed: number; + portalTeleportBoundary: number; + warningBlocks: number; + warningTime: number; + }; + action_bar: /** 1.17 */ { + text: string; + }; + world_border_center: /** 1.17 */ { + x: number; + z: number; + }; + world_border_lerp_size: /** 1.17 */ { + oldDiameter: number; + newDiameter: number; + speed: any; + } | /** 1.19 */ { + oldDiameter: number; + newDiameter: number; + speed: number; + }; + world_border_size: /** 1.17 */ { + diameter: number; + }; + world_border_warning_delay: /** 1.17 */ { + warningTime: number; + }; + world_border_warning_reach: /** 1.17 */ { + warningBlocks: number; + }; + ping: /** 1.17 */ { + id: number; + }; + set_title_subtitle: /** 1.17 */ { + text: string; + }; + set_title_text: /** 1.17 */ { + text: string; + }; + set_title_time: /** 1.17 */ { + fadeIn: number; + stay: number; + fadeOut: number; + }; + simulation_distance: /** 1.18 */ { + distance: number; + }; + /** Removed in 1.19.3 */ + chat_preview: /** 1.19 */ { + queryId: number; + message: any; + }; + player_chat: /** 1.19 */ { + signedChatContent: string; + unsignedChatContent: any; + type: number; + senderUuid: any; + senderName: string; + senderTeam: any; + timestamp: bigint; + salt: bigint; + signature: any; + } | /** 1.19.2 */ { + previousSignature: any; + senderUuid: any; + signature: any; + plainMessage: string; + formattedMessage: any; + timestamp: bigint; + salt: bigint; + previousMessages: any; + unsignedContent: any; + filterType: number; + filterTypeMask: any; + type: number; + networkName: string; + networkTargetName: any; + } | /** 1.19.3 */ { + senderUuid: any; + index: number; + signature: any; + plainMessage: string; + timestamp: bigint; + salt: bigint; + previousMessages: any; + unsignedChatContent: any; + filterType: number; + filterTypeMask: any; + type: number; + networkName: string; + networkTargetName: any; + }; + /** Removed in 1.19.3 */ + should_display_chat_preview: /** 1.19 */ { + should_display_chat_preview: boolean; + }; + system_chat: /** 1.19 */ { + content: string; + type: number; + } | /** 1.19.2 */ { + content: string; + isActionBar: boolean; + }; + server_data: /** 1.19 */ { + motd: any; + icon: any; + previewsChat: boolean; + } | /** 1.19.2 */ { + motd: any; + icon: any; + previewsChat: boolean; + enforcesSecureChat: boolean; + } | /** 1.19.3 */ { + motd: any; + icon: any; + enforcesSecureChat: boolean; + } | /** 1.19.4 */ { + motd: string; + iconBytes: any; + enforcesSecureChat: boolean; + }; + chat_suggestions: /** 1.19.2 */ { + action: number; + entries: any; + }; + hide_message: /** 1.19.2 */ { + signature: any; + } | /** 1.19.3 */ { + id: number; + signature: any; + }; + /** Removed in 1.19.3 */ + message_header: /** 1.19.2 */ { + previousSignature: any; + senderUuid: any; + signature: any; + messageHash: any; + }; + profileless_chat: /** 1.19.3 */ { + message: string; + type: number; + name: string; + target: any; + }; + player_remove: /** 1.19.3 */ { + players: any; + }; + feature_flags: /** 1.19.3 */ { + features: any; + }; + chunk_biomes: /** 1.19.4 */ { + biomes: any; + }; + damage_event: /** 1.19.4 */ { + entityId: number; + sourceTypeId: number; + sourceCauseId: any; + sourceDirectId: any; + sourcePosition: any; + }; + hurt_animation: /** 1.19.4 */ { + entityId: number; + yaw: number; + }; +} + +type ClientOnMcProtocolEvents = ClientOnMap & { + [x: `raw.${string}`]: any + packet: any + state: any +} + +export declare const clientOn: (name: T, callback: (data: ClientOnMcProtocolEvents[T], packetMeta: import('minecraft-protocol').PacketMeta) => void) => void diff --git a/src/getCollisionInteractionShapes.ts b/src/getCollisionInteractionShapes.ts new file mode 100644 index 00000000..9dead22b --- /dev/null +++ b/src/getCollisionInteractionShapes.ts @@ -0,0 +1,17 @@ +import { getRenamedData } from 'flying-squid/dist/blockRenames' +import outputInteractionShapesJson from './interactionShapesGenerated.json' +import './getCollisionShapes' + +export default () => { + customEvents.on('gameLoaded', () => { + // todo also remap block states (e.g. redstone)! + const renamedBlocksInteraction = getRenamedData('blocks', Object.keys(outputInteractionShapesJson), '1.20.2', bot.version) + const interactionShapes = { + ...outputInteractionShapesJson, + ...Object.fromEntries(Object.entries(outputInteractionShapesJson).map(([block, shape], i) => [renamedBlocksInteraction[i], shape])) + } + interactionShapes[''] = interactionShapes['air'] + // todo make earlier + window.interactionShapes = interactionShapes + }) +} diff --git a/src/getCollisionShapes.ts b/src/getCollisionShapes.ts new file mode 100644 index 00000000..383adc0e --- /dev/null +++ b/src/getCollisionShapes.ts @@ -0,0 +1,14 @@ +import { getRenamedData } from 'flying-squid/dist/blockRenames' +import collisionShapesInit from '../generated/latestBlockCollisionsShapes.json' + +// defining globally to be used in loaded data, not sure of better workaround +window.globalGetCollisionShapes = (version) => { + // todo use the same in resourcepack + const versionFrom = collisionShapesInit.version + const renamedBlocks = getRenamedData('blocks', Object.keys(collisionShapesInit.blocks), versionFrom, version) + const collisionShapes = { + ...collisionShapesInit, + blocks: Object.fromEntries(Object.entries(collisionShapesInit.blocks).map(([, shape], i) => [renamedBlocks[i], shape])) + } + return collisionShapes +} diff --git a/src/globalDomListeners.ts b/src/globalDomListeners.ts new file mode 100644 index 00000000..bfce0d42 --- /dev/null +++ b/src/globalDomListeners.ts @@ -0,0 +1,46 @@ +import { saveServer } from './flyingSquidUtils' +import { isGameActive, activeModalStack } from './globalState' +import { options } from './optionsStorage' +import { isInRealGameSession } from './utils' + +window.addEventListener('unload', (e) => { + if (!window.justReloaded) { + sessionStorage.justReloaded = false + } + void saveServer() +}) + +document.addEventListener('visibilitychange', () => { + if (document.visibilityState === 'hidden') void saveServer() +}) +document.addEventListener('blur', () => { + void saveServer() +}) + +window.addEventListener('beforeunload', (event) => { + if (!window.justReloaded) { + sessionStorage.justReloaded = false + } + + // todo-low maybe exclude chat? + if (!isGameActive(true) && activeModalStack.at(-1)?.elem?.id !== 'chat') return + if (sessionStorage.lastReload && !options.preventDevReloadWhilePlaying) return + if (!options.closeConfirmation) return + if (!isInRealGameSession()) return + + // For major browsers doning only this is enough + event.preventDefault() + + // Display a confirmation prompt + event.returnValue = '' // Required for some browsers + return 'The game is running. Are you sure you want to close this page?' +}) + +window.addEventListener('contextmenu', (e) => { + const ALLOW_TAGS = ['INPUT', 'TEXTAREA', 'A'] + // allow if target is in ALLOW_TAGS or has selection text + if (ALLOW_TAGS.includes((e.target as HTMLElement)?.tagName) || window.getSelection()?.toString()) { + return + } + e.preventDefault() +}) diff --git a/src/globalState.ts b/src/globalState.ts new file mode 100644 index 00000000..b8982de7 --- /dev/null +++ b/src/globalState.ts @@ -0,0 +1,159 @@ +//@ts-check + +import { proxy, ref, subscribe } from 'valtio' +import type { WorldWarp } from 'flying-squid/dist/lib/modules/warps' +import type { OptionsGroupType } from './optionsGuiScheme' +import { options, disabledSettings } from './optionsStorage' +import { AppConfig } from './appConfig' + +// todo: refactor structure with support of hideNext=false + +export const notHideableModalsWithoutForce = new Set([ + 'app-status', + 'divkit:nonclosable', + 'only-connect-server', +]) + +type Modal = ({ elem?: HTMLElement & Record } & { reactType: string }) + +type ContextMenuItem = { callback; label } + +export const activeModalStack: Modal[] = proxy([]) + +export const insertActiveModalStack = (name: string, newModalStack = activeModalStacks[name]) => { + hideModal(undefined, undefined, { restorePrevious: false, force: true }) + activeModalStack.splice(0, activeModalStack.length, ...newModalStack) + const last = activeModalStack.at(-1) + if (last) showModalInner(last) +} + +export const activeModalStacks: Record = {} + +window.activeModalStack = activeModalStack + +/** + * @returns true if operation was successful + */ +const showModalInner = (modal: Modal) => { + const cancel = modal.elem?.show?.() + return true +} + +export const showModal = (elem: /* (HTMLElement & Record) | */{ reactType: string } | string) => { + const resolved = typeof elem === 'string' ? { reactType: elem } : elem + const curModal = activeModalStack.at(-1) + if ((resolved.reactType && resolved.reactType === curModal?.reactType) || !showModalInner(resolved)) return + activeModalStack.push(resolved) +} + +window.showModal = showModal + +/** + * + * @returns true if previous modal was restored + */ +export const hideModal = (modal = activeModalStack.at(-1), data: any = undefined, options: { force?: boolean; restorePrevious?: boolean } = {}) => { + const { force = false, restorePrevious = true } = options + if (!modal) return + let cancel = [...notHideableModalsWithoutForce].some(m => modal.reactType.startsWith(m)) ? !force : undefined + if (force) { + cancel = undefined + } + + if (!cancel) { + const lastModal = activeModalStack.at(-1) + for (let i = activeModalStack.length - 1; i >= 0; i--) { + if (activeModalStack[i].reactType === modal.reactType) { + activeModalStack.splice(i, 1) + break + } + } + const newModal = activeModalStack.at(-1) + if (newModal && lastModal !== newModal && restorePrevious) { + // would be great to ignore cancel I guess? + showModalInner(newModal) + } + return true + } +} + +export const hideCurrentModal = (_data?, onHide?: () => void) => { + if (hideModal(undefined, undefined)) { + onHide?.() + } +} + +export const hideAllModals = () => { + while (activeModalStack.length > 0) { + if (!hideModal()) break + } + return activeModalStack.length === 0 +} + +export const openOptionsMenu = (group: OptionsGroupType) => { + showModal({ reactType: `options-${group}` }) +} + +subscribe(activeModalStack, () => { + document.body.style.setProperty('--has-modals-z', activeModalStack.length ? '-1' : null) +}) + +// --- + +export const currentContextMenu = proxy({ items: [] as ContextMenuItem[] | null, x: 0, y: 0 }) + +export const showContextmenu = (items: ContextMenuItem[], { clientX, clientY }) => { + Object.assign(currentContextMenu, { + items, + x: clientX, + y: clientY, + }) +} + +// --- + +export const miscUiState = proxy({ + currentDisplayQr: null as string | null, + currentTouch: null as boolean | null, + hasErrors: false, + singleplayer: false, + flyingSquid: false, + wanOpened: false, + wanOpening: false, + /** wether game hud is shown (in playing state) */ + gameLoaded: false, + showUI: true, + showDebugHud: false, + loadedServerIndex: '', + /** currently trying to load or loaded mc version, after all data is loaded */ + loadedDataVersion: null as string | null, + fsReady: false, + singleplayerAvailable: false, + usingGamepadInput: false, + appConfig: null as AppConfig | null, + displaySearchInput: false, + displayFullmap: false +}) + +export const isGameActive = (foregroundCheck: boolean) => { + if (foregroundCheck && activeModalStack.length) return false + return miscUiState.gameLoaded +} + +window.miscUiState = miscUiState + +// state that is not possible to get via bot and in-game specific +export const gameAdditionalState = proxy({ + isFlying: false, + isSprinting: false, + isSneaking: false, + isZooming: false, + warps: [] as WorldWarp[], + noConnection: false, + poorConnection: false, + viewerConnection: false, + + usingServerResourcePack: false, +}) + +window.gameAdditionalState = gameAdditionalState diff --git a/src/globals.d.ts b/src/globals.d.ts new file mode 100644 index 00000000..7a2c6f1f --- /dev/null +++ b/src/globals.d.ts @@ -0,0 +1,56 @@ +/// + +// todo make optional +declare const bot: Omit & { + world: Omit & { + getBlock: (pos: import('vec3').Vec3) => import('prismarine-block').Block | null + } + _client: Omit & { + write: typeof import('./generatedClientPackets').clientWrite + on: typeof import('./generatedServerPackets').clientOn + } +} +declare const __type_bot: typeof bot +declare const appViewer: import('./appViewer').AppViewer +declare const worldView: import('renderer/viewer/lib/worldDataEmitter').WorldDataEmitter | undefined +declare const addStatPerSec: (name: string) => void +declare const localServer: import('flying-squid/dist/index').FullServer & { options } | undefined +/** all currently loaded mc data */ +declare const mcData: Record +declare const loadedData: import('minecraft-data').IndexedData & { sounds: Record } +declare const customEvents: import('typed-emitter').default<{ + /** Singleplayer load requested */ + singleplayer (): void + digStart (): void + gameLoaded (): void + mineflayerBotCreated (): void + search (q: string): void + activateItem (item: Item, slot: number, offhand: boolean): void + hurtAnimation (yaw?: number): void + customChannelRegister (channel: string, parser: any): void +}> +declare const beforeRenderFrame: Array<() => void> +declare const translate: (key: T) => T + +// API LAYER +declare const toggleMicrophoneMuted: undefined | (() => void) +declare const translateText: undefined | ((text: string) => string) + +declare interface Document { + exitPointerLock?(): void +} + +declare module '*.frag' { + const png: string + export default png +} +declare module '*.vert' { + const png: string + export default png +} +declare module '*.wgsl' { + const png: string + export default png +} + +declare interface Window extends Record { } diff --git a/src/globals.js b/src/globals.js new file mode 100644 index 00000000..11351555 --- /dev/null +++ b/src/globals.js @@ -0,0 +1,16 @@ +import EventEmitter from 'events' + +window.reportError = window.reportError ?? console.error +window.bot = undefined +window.THREE = undefined +window.localServer = undefined +window.worldView = undefined +window.viewer = undefined // legacy +window.appViewer = undefined +window.loadedData = undefined +window.customEvents = new EventEmitter() +window.customEvents.setMaxListeners(10_000) +window.translate = (key) => { + if (typeof key !== 'string') return key + return window.translateText?.(key) ?? key +} diff --git a/src/googledrive.ts b/src/googledrive.ts new file mode 100644 index 00000000..5e5e9ae9 --- /dev/null +++ b/src/googledrive.ts @@ -0,0 +1,110 @@ +import { GoogleOAuthProvider, useGoogleLogin } from '@react-oauth/google' +import { proxy, ref, subscribe } from 'valtio' +import React from 'react' +import { loadScript } from 'renderer/viewer/lib/utils' +import { loadGoogleDriveApi, loadInMemorySave } from './react/SingleplayerProvider' +import { setLoadingScreenStatus } from './appStatus' +import { showOptionsModal } from './react/SelectOption' +import { appQueryParams } from './appParams' + +const CLIENT_ID = '137156026346-igv2gkjsj2hlid92rs3q7cjjnc77s132.apps.googleusercontent.com' +// const CLIENT_ID = process.env.GOOGLE_CLIENT_ID +const SCOPES = 'https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.install' +export const APP_ID = CLIENT_ID.split('-')[0] + +export const GoogleDriveProvider = ({ children }) => { + return React.createElement(GoogleOAuthProvider, { clientId: CLIENT_ID } as any, children) + // return +} + +export const isGoogleDriveAvailable = () => { + return !!CLIENT_ID +} + +export const useGoogleLogIn = () => { + const login = useGoogleLogin({ + onSuccess (tokenResponse) { + localStorage.hasEverLoggedIn = true + googleProviderState.accessToken = tokenResponse.access_token + googleProviderState.expiresIn = ref(new Date(Date.now() + tokenResponse.expires_in * 1000)) + googleProviderState.hasEverLoggedIn = true + }, + // prompt: hasEverLoggedIn ? 'none' : 'consent', + scope: SCOPES, + flow: 'implicit', + onError (error) { + const accessDenied = error.error === 'access_denied' || error.error === 'invalid_scope' || (error as any).error_subtype === 'access_denied' + if (accessDenied) { + googleProviderState.hasEverLoggedIn = false + } + } + }) + return () => login({ + prompt: googleProviderState.hasEverLoggedIn ? 'none' : 'consent' + }) +} + +export const possiblyHandleStateVariable = async () => { + const stateParam = appQueryParams.state + if (!stateParam) return + setLoadingScreenStatus('Opening world in read only mode, waiting for login...') + await loadGoogleDriveApi() + await loadScript('https://accounts.google.com/gsi/client') + const parsed = JSON.parse(stateParam) as { + ids: [string] + action: 'open' + userId: string + } + const tokenClient = window.google.accounts.oauth2.initTokenClient({ + client_id: CLIENT_ID, + scope: SCOPES, + async callback (response) { + if (response.error) { + setLoadingScreenStatus('Error: ' + response.error, true) + googleProviderState.hasEverLoggedIn = false + return + } + setLoadingScreenStatus('Opening world in read only mode...') + googleProviderState.accessToken = response.access_token + // await mountGoogleDriveFolder(true, parsed.ids[0]) + await loadInMemorySave('/google') + } + }) + const choice = await showOptionsModal('Select an action...', ['Login']) + if (choice === 'Login') { + tokenClient.requestAccessToken({ + prompt: googleProviderState.hasEverLoggedIn ? '' : 'consent', + }) + } else { + window.close() + } +} + +export const googleProviderState = proxy({ + accessToken: (localStorage.saveAccessToken ? localStorage.accessToken : null) as string | null, + hasEverLoggedIn: !!(localStorage.hasEverLoggedIn), + isReady: false, + expiresIn: localStorage.saveAccessToken ? ref(new Date(Date.now() + 1000 * 60 * 60)) : null, + readonlyMode: localStorage.googleReadonlyMode ? localStorage.googleReadonlyMode === 'true' : true, + lastSelectedFolder: (localStorage.lastSelectedFolder ? JSON.parse(localStorage.lastSelectedFolder) : null) as { + id: string + name: string + } | null +}) + +subscribe(googleProviderState, () => { + localStorage.googleReadonlyMode = googleProviderState.readonlyMode + localStorage.lastSelectedFolder = googleProviderState.lastSelectedFolder ? JSON.stringify(googleProviderState.lastSelectedFolder) : null + if (googleProviderState.hasEverLoggedIn) { + localStorage.hasEverLoggedIn = true + } else { + delete localStorage.hasEverLoggedIn + } + + if (localStorage.saveAccessToken && googleProviderState) { + // For testing only + localStorage.accessToken = googleProviderState.accessToken || null + } else { + delete localStorage.accessToken + } +}) diff --git a/src/importsWorkaround.js b/src/importsWorkaround.js new file mode 100644 index 00000000..231654ca --- /dev/null +++ b/src/importsWorkaround.js @@ -0,0 +1,9 @@ +// workaround for mineflayer +globalThis.window ??= globalThis +globalThis.localStorage ??= {} +process.versions.node = '18.0.0' + +if (!navigator.getGamepads) { + console.warn('navigator.getGamepads is not available, adding a workaround') + navigator.getGamepads ??= () => [] +} diff --git a/src/index.ts b/src/index.ts new file mode 100644 index 00000000..7764188f --- /dev/null +++ b/src/index.ts @@ -0,0 +1,1085 @@ +/* eslint-disable import/order */ +import './importsWorkaround' +import './styles.css' +import './testCrasher' +import './globals' +import './devtools' +import './entities' +import customChannels from './customChannels' +import './globalDomListeners' +import './mineflayer/maps' +import './mineflayer/cameraShake' +import './shims/patchShims' +import './mineflayer/java-tester/index' +import './external' +import './appConfig' +import './mineflayer/timers' +import './mineflayer/plugins' +import { getServerInfo } from './mineflayer/mc-protocol' +import { onGameLoad } from './inventoryWindows' +import initCollisionShapes from './getCollisionInteractionShapes' +import protocolMicrosoftAuth from 'minecraft-protocol/src/client/microsoftAuth' +import microsoftAuthflow from './microsoftAuthflow' +import { Duplex } from 'stream' + +import './scaleInterface' + +import { options } from './optionsStorage' +import './reactUi' +import { lockUrl, onBotCreate } from './controls' +import './dragndrop' +import { possiblyCleanHandle } from './browserfs' +import downloadAndOpenFile, { isInterestedInDownload } from './downloadAndOpenFile' + +import fs from 'fs' +import net, { Socket } from 'net' +import mineflayer from 'mineflayer' + +import debug from 'debug' +import { defaultsDeep } from 'lodash-es' +import initializePacketsReplay from './packetsReplay/packetsReplayLegacy' + +import { + activeModalStack, + activeModalStacks, + hideModal, + insertActiveModalStack, + isGameActive, + miscUiState, + showModal, + gameAdditionalState, +} from './globalState' + +import { parseServerAddress } from './parseServerAddress' +import { setLoadingScreenStatus } from './appStatus' +import { isCypress } from './standaloneUtils' + +import { startLocalServer, unsupportedLocalServerFeatures } from './createLocalServer' +import defaultServerOptions from './defaultLocalServerOptions' + +import { onAppLoad, resourcepackReload, resourcePackState } from './resourcePack' +import { ConnectPeerOptions, connectToPeer } from './localServerMultiplayer' +import CustomChannelClient from './customClient' +import { registerServiceWorker } from './serviceWorker' +import { appStatusState, lastConnectOptions, quickDevReconnect } from './react/AppStatusProvider' + +import { fsState } from './loadSave' +import { watchFov } from './rendererUtils' +import { loadInMemorySave } from './react/SingleplayerProvider' + +import { possiblyHandleStateVariable } from './googledrive' +import flyingSquidEvents from './flyingSquidEvents' +import { showNotification } from './react/NotificationProvider' +import { saveToBrowserMemory } from './react/PauseScreen' +import './devReload' +import './water' +import { ConnectOptions, getVersionAutoSelect, downloadOtherGameData, downloadAllMinecraftData, loadMinecraftData } from './connect' +import { ref, subscribe } from 'valtio' +import { signInMessageState } from './react/SignInMessageProvider' +import { findServerPassword, updateAuthenticatedAccountData, updateLoadedServerData, updateServerConnectionHistory } from './react/serversStorage' +import { mainMenuState } from './react/MainMenuRenderApp' +import './mobileShim' +import { parseFormattedMessagePacket } from './botUtils' +import { appStartup } from './clientMods' +import { getViewerVersionData, getWsProtocolStream, onBotCreatedViewerHandler } from './viewerConnector' +import { getWebsocketStream } from './mineflayer/websocket-core' +import { appQueryParams, appQueryParamsArray } from './appParams' +import { playerState } from './mineflayer/playerState' +import { states } from 'minecraft-protocol' +import { initMotionTracking } from './react/uiMotion' +import { UserError } from './mineflayer/userError' +import { startLocalReplayServer } from './packetsReplay/replayPackets' +import { createFullScreenProgressReporter, createWrappedProgressReporter, ProgressReporter } from './core/progressReporter' +import { appViewer } from './appViewer' +import './appViewerLoad' +import { registerOpenBenchmarkListener } from './benchmark' +import { tryHandleBuiltinCommand } from './builtinCommands' +import { loadingTimerState } from './react/LoadingTimer' +import { loadPluginsIntoWorld } from './react/CreateWorldProvider' +import { getCurrentProxy, getCurrentUsername } from './react/ServersList' + +window.debug = debug +window.beforeRenderFrame = [] + +// ACTUAL CODE + +void registerServiceWorker().then(() => { + mainMenuState.serviceWorkerLoaded = true +}) +watchFov() +initCollisionShapes() +initializePacketsReplay() +onAppLoad() +customChannels() + +if (appQueryParams.testCrashApp === '2') throw new Error('test') + +function hideCurrentScreens () { + activeModalStacks['main-menu'] = [...activeModalStack] + insertActiveModalStack('', []) +} + +const loadSingleplayer = (serverOverrides = {}, flattenedServerOverrides = {}, connectOptions?: Partial) => { + const serverSettingsQsRaw = appQueryParamsArray.serverSetting ?? [] + const serverSettingsQs = serverSettingsQsRaw.map(x => x.split(':')).reduce>((acc, [key, value]) => { + acc[key] = JSON.parse(value) + return acc + }, {}) + void connect({ + singleplayer: true, + username: options.localUsername, + serverOverrides, + serverOverridesFlat: { + ...flattenedServerOverrides, + ...serverSettingsQs + }, + ...connectOptions + }) +} +function listenGlobalEvents () { + window.addEventListener('connect', e => { + const options = (e as CustomEvent).detail + void connect(options) + }) + window.addEventListener('singleplayer', (e) => { + const { detail } = (e as CustomEvent) + const { connectOptions, ...rest } = detail + loadSingleplayer(rest, {}, connectOptions) + }) +} + +export async function connect (connectOptions: ConnectOptions) { + if (miscUiState.gameLoaded) return + + if (sessionStorage.delayLoadUntilFocus) { + await new Promise(resolve => { + if (document.hasFocus()) { + resolve(undefined) + } else { + window.addEventListener('focus', resolve) + } + }) + } + if (sessionStorage.delayLoadUntilClick) { + await new Promise(resolve => { + window.addEventListener('click', resolve) + }) + } + + appStatusState.showReconnect = false + loadingTimerState.loading = true + loadingTimerState.start = Date.now() + miscUiState.hasErrors = false + lastConnectOptions.value = connectOptions + + const { singleplayer } = connectOptions + const p2pMultiplayer = !!connectOptions.peerId + miscUiState.singleplayer = singleplayer + miscUiState.flyingSquid = singleplayer || p2pMultiplayer + + // Track server connection in history + if (!singleplayer && !p2pMultiplayer && connectOptions.server && connectOptions.saveServerToHistory !== false) { + const parsedServer = parseServerAddress(connectOptions.server) + updateServerConnectionHistory(parsedServer.host, connectOptions.botVersion) + } + + const { renderDistance: renderDistanceSingleplayer, multiplayerRenderDistance } = options + + const parsedServer = parseServerAddress(connectOptions.server) + const server = { host: parsedServer.host, port: parsedServer.port } + if (connectOptions.proxy?.startsWith(':')) { + connectOptions.proxy = `${location.protocol}//${location.hostname}${connectOptions.proxy}` + } + if (connectOptions.proxy && location.port !== '80' && location.port !== '443' && !/:\d+$/.test(connectOptions.proxy)) { + const https = connectOptions.proxy.startsWith('https://') || location.protocol === 'https:' + connectOptions.proxy = `${connectOptions.proxy}:${https ? 443 : 80}` + } + const parsedProxy = parseServerAddress(connectOptions.proxy, false) + const proxy = { host: parsedProxy.host, port: parsedProxy.port } + let { username } = connectOptions + + if (connectOptions.server) { + console.log(`connecting to ${server.host}:${server.port ?? 25_565}`) + } + console.log('using player username', username) + + hideCurrentScreens() + const progress = createFullScreenProgressReporter() + const loggingInMsg = connectOptions.server ? 'Connecting to server' : 'Logging in' + progress.beginStage('connect', loggingInMsg) + + let ended = false + let bot!: typeof __type_bot + let hadConnected = false + const destroyAll = (wasKicked = false) => { + if (ended) return + loadingTimerState.loading = false + const { alwaysReconnect } = appQueryParams + if ((!wasKicked && miscUiState.appConfig?.allowAutoConnect && appQueryParams.autoConnect && hadConnected) || (alwaysReconnect)) { + if (alwaysReconnect === 'quick' || alwaysReconnect === 'fast') { + quickDevReconnect() + } else { + location.reload() + } + } + errorAbortController.abort() + ended = true + progress.end() + // dont reset viewer so we can still do debugging + localServer = window.localServer = window.server = undefined + gameAdditionalState.viewerConnection = false + + if (bot) { + bot.end() + // ensure mineflayer plugins receive this event for cleanup + bot.emit('end', '') + bot.removeAllListeners() + bot._client.removeAllListeners() + bot._client = { + //@ts-expect-error + write (packetName) { + console.warn('Tried to write packet', packetName, 'after bot was destroyed') + } + } + //@ts-expect-error + window.bot = bot = undefined + } + cleanFs() + } + const cleanFs = () => { + if (singleplayer && !fsState.inMemorySave) { + possiblyCleanHandle(() => { + // todo: this is not enough, we need to wait for all async operations to finish + }) + } + } + let lastPacket = undefined as string | undefined + const onPossibleErrorDisconnect = () => { + if (lastPacket && bot?._client && bot._client.state !== states.PLAY) { + appStatusState.descriptionHint = `Last Server Packet: ${lastPacket}` + } + } + const handleError = (err) => { + console.error(err) + if (err === 'ResizeObserver loop completed with undelivered notifications.') { + return + } + if (isCypress()) throw err + miscUiState.hasErrors = true + if (miscUiState.gameLoaded) return + // close all modals + for (const modal of activeModalStack) { + hideModal(modal) + } + + setLoadingScreenStatus(`Error encountered. ${err}`, true) + appStatusState.showReconnect = true + onPossibleErrorDisconnect() + destroyAll() + } + + // todo(hard): remove it! + const errorAbortController = new AbortController() + window.addEventListener('unhandledrejection', (e) => { + if (e.reason.name === 'ServerPluginLoadFailure') { + if (confirm(`Failed to load server plugin ${e.reason.pluginName} (invoking ${e.reason.pluginMethod}). Continue?`)) { + return + } + } + if (e.reason?.stack?.includes('chrome-extension://')) { + // ignore issues caused by chrome extension + return + } + handleError(e.reason) + }, { + signal: errorAbortController.signal + }) + window.addEventListener('error', (e) => { + handleError(e.message) + }, { + signal: errorAbortController.signal + }) + + let clientDataStream: Duplex | undefined + + if (connectOptions.server && !connectOptions.viewerWsConnect && !parsedServer.isWebSocket) { + console.log(`using proxy ${proxy.host}:${proxy.port || location.port}`) + net['setProxy']({ hostname: proxy.host, port: proxy.port, headers: { Authorization: `Bearer ${new URLSearchParams(location.search).get('token') ?? ''}` }, artificialDelay: appQueryParams.addPing ? Number(appQueryParams.addPing) : undefined }) + } + + const renderDistance = singleplayer ? renderDistanceSingleplayer : multiplayerRenderDistance + let updateDataAfterJoin = () => { } + let localServer + let localReplaySession: ReturnType | undefined + let lastKnownKickReason = undefined as string | undefined + try { + const serverOptions = defaultsDeep({}, connectOptions.serverOverrides ?? {}, options.localServerOptions, defaultServerOptions) + Object.assign(serverOptions, connectOptions.serverOverridesFlat ?? {}) + + await progress.executeWithMessage('Downloading Minecraft data', 'download-mcdata', async () => { + loadingTimerState.networkOnlyStart = Date.now() + + let downloadingAssets = [] as string[] + const reportAssetDownload = (asset: string, isDone: boolean) => { + if (isDone) { + downloadingAssets = downloadingAssets.filter(a => a !== asset) + } else { + downloadingAssets.push(asset) + } + progress.setSubStage('download-mcdata', `(${downloadingAssets.join(', ')})`) + } + + await Promise.all([ + downloadAllMinecraftData(reportAssetDownload), + downloadOtherGameData(reportAssetDownload) + ]) + loadingTimerState.networkOnlyStart = 0 + }) + + let dataDownloaded = false + const downloadMcData = async (version: string) => { + if (dataDownloaded) return + dataDownloaded = true + appViewer.resourcesManager.currentConfig = { version, texturesVersion: options.useVersionsTextures || undefined } + + await progress.executeWithMessage( + 'Processing downloaded Minecraft data', + async () => { + await loadMinecraftData(version) + await appViewer.resourcesManager.loadSourceData(version) + } + ) + + await progress.executeWithMessage( + 'Applying user-installed resource pack', + async () => { + try { + await resourcepackReload(true) + } catch (err) { + console.error(err) + const doContinue = confirm('Failed to apply texture pack. See errors in the console. Continue?') + if (!doContinue) { + throw err + } + } + } + ) + + await progress.executeWithMessage( + 'Preparing textures', + async () => { + await appViewer.resourcesManager.updateAssetsData({}) + } + ) + } + + let finalVersion = connectOptions.botVersion || (singleplayer ? serverOptions.version : undefined) + + if (connectOptions.worldStateFileContents) { + try { + localReplaySession = startLocalReplayServer(connectOptions.worldStateFileContents) + } catch (err) { + console.error(err) + throw new UserError(`Failed to start local replay server: ${err}`) + } + finalVersion = localReplaySession.version + } + + if (singleplayer) { + // SINGLEPLAYER EXPLAINER: + // Note 1: here we have custom sync communication between server Client (flying-squid) and game client (mineflayer) + // Note 2: custom Server class is used which simplifies communication & Client creation on it's side + // local server started + // mineflayer.createBot (see source def) + // bot._client = bot._client ?? mc.createClient(options) <-- mc-protocol package + // tcpDns() skipped since we define connect option + // in setProtocol: we emit 'connect' here below so in that file we send set_protocol and login_start (onLogin handler) + // Client (class) of flying-squid (in server/login.js of mc-protocol): onLogin handler: skip most logic & go to loginClient() which assigns uuid and sends 'success' back to client (onLogin handler) and emits 'login' on the server (login.js in flying-squid handler) + // flying-squid: 'login' -> player.login -> now sends 'login' event to the client (handled in many plugins in mineflayer) -> then 'update_health' is sent which emits 'spawn' in mineflayer + + const serverPlugins = new URLSearchParams(location.search).getAll('serverPlugin') + if (serverPlugins.length > 0 && !serverOptions.worldFolder) { + console.log('Placing server plugins', serverPlugins) + + serverOptions.worldFolder ??= '/temp' + await loadPluginsIntoWorld('/temp', serverPlugins) + + console.log('Server plugins placed') + } + + localServer = window.localServer = window.server = startLocalServer(serverOptions) + connectOptions?.connectEvents?.serverCreated?.() + // todo need just to call quit if started + // loadingScreen.maybeRecoverable = false + // init world, todo: do it for any async plugins + if (!localServer.pluginsReady) { + await progress.executeWithMessage( + 'Starting local server', + async () => { + await new Promise(resolve => { + localServer.once('pluginsReady', resolve) + }) + } + ) + } + + localServer.on('newPlayer', (player) => { + player.on('loadingStatus', (newStatus) => { + progress.setMessage(newStatus) + }) + }) + flyingSquidEvents() + } + + if (connectOptions.authenticatedAccount) username = 'you' + let initialLoadingText: string + if (singleplayer) { + initialLoadingText = 'Local server is still starting' + } else if (p2pMultiplayer) { + initialLoadingText = 'Connecting to peer' + } else if (connectOptions.server) { + if (!finalVersion) { + const versionAutoSelect = getVersionAutoSelect() + const wrapped = createWrappedProgressReporter(progress, `Fetching server version. Preffered: ${versionAutoSelect}`) + loadingTimerState.networkOnlyStart = Date.now() + const autoVersionSelect = await getServerInfo(server.host, server.port ? Number(server.port) : undefined, versionAutoSelect) + wrapped.end() + finalVersion = autoVersionSelect.version + } + initialLoadingText = `Connecting to server ${server.host}:${server.port ?? 25_565} with version ${finalVersion}` + } else if (connectOptions.viewerWsConnect) { + initialLoadingText = `Connecting to Mineflayer WebSocket server ${connectOptions.viewerWsConnect}` + } else if (connectOptions.worldStateFileContents) { + initialLoadingText = `Loading local replay server` + } else { + initialLoadingText = 'We have no idea what to do' + } + progress.setMessage(initialLoadingText) + + if (parsedServer.isWebSocket) { + loadingTimerState.networkOnlyStart = Date.now() + clientDataStream = (await getWebsocketStream(server.host)).mineflayerStream + } + + let newTokensCacheResult = null as any + const cachedTokens = typeof connectOptions.authenticatedAccount === 'object' ? connectOptions.authenticatedAccount.cachedTokens : {} + let authData: Awaited> | undefined + if (connectOptions.authenticatedAccount) { + authData = await microsoftAuthflow({ + tokenCaches: cachedTokens, + proxyBaseUrl: connectOptions.proxy, + setProgressText (text) { + progress.setMessage(text) + }, + setCacheResult (result) { + newTokensCacheResult = result + }, + connectingServer: server.host + }) + } + + if (p2pMultiplayer) { + clientDataStream = await connectToPeer(connectOptions.peerId!, connectOptions.peerOptions) + } + if (connectOptions.viewerWsConnect) { + const { version, time, requiresPass } = await getViewerVersionData(connectOptions.viewerWsConnect) + let password + if (requiresPass) { + password = prompt('Enter password') + if (!password) { + throw new UserError('Password is required') + } + } + console.log('Latency:', Date.now() - time, 'ms') + // const version = '1.21.1' + finalVersion = version + await downloadMcData(version) + setLoadingScreenStatus(`Connecting to WebSocket server ${connectOptions.viewerWsConnect}`) + clientDataStream = (await getWsProtocolStream(connectOptions.viewerWsConnect)).clientDuplex + if (password) { + clientDataStream.write(password) + } + gameAdditionalState.viewerConnection = true + } + + if (finalVersion) { + // ensure data is downloaded + loadingTimerState.networkOnlyStart ??= Date.now() + await downloadMcData(finalVersion) + } + + const brand = clientDataStream ? 'minecraft-web-client' : undefined + bot = mineflayer.createBot({ + host: server.host, + port: server.port ? +server.port : undefined, + brand, + version: finalVersion || false, + ...clientDataStream ? { + stream: clientDataStream as any, + } : {}, + ...singleplayer || p2pMultiplayer || localReplaySession ? { + keepAlive: false, + } : {}, + ...singleplayer ? { + version: serverOptions.version, + connect () { }, + Client: CustomChannelClient as any, + } : {}, + ...localReplaySession ? { + connect () { }, + Client: CustomChannelClient as any, + } : {}, + onMsaCode (data) { + signInMessageState.code = data.user_code + signInMessageState.link = data.verification_uri + signInMessageState.expiresOn = Date.now() + data.expires_in * 1000 + }, + sessionServer: authData?.sessionEndpoint?.toString(), + auth: connectOptions.authenticatedAccount ? async (client, options) => { + authData!.setOnMsaCodeCallback(options.onMsaCode) + authData?.setConnectingVersion(client.version) + //@ts-expect-error + client.authflow = authData!.authFlow + try { + signInMessageState.abortController = ref(new AbortController()) + await Promise.race([ + protocolMicrosoftAuth.authenticate(client, options), + new Promise((_r, reject) => { + signInMessageState.abortController.signal.addEventListener('abort', () => { + reject(new UserError('Aborted by user')) + }) + }) + ]) + if (signInMessageState.shouldSaveToken) { + updateAuthenticatedAccountData(accounts => { + const existingAccount = accounts.find(a => a.username === client.username) + if (existingAccount) { + existingAccount.cachedTokens = { ...existingAccount.cachedTokens, ...newTokensCacheResult } + } else { + accounts.push({ + username: client.username, + cachedTokens: { ...cachedTokens, ...newTokensCacheResult } + }) + } + return accounts + }) + updateDataAfterJoin = () => { + updateLoadedServerData(s => ({ ...s, authenticatedAccountOverride: client.username }), connectOptions.serverIndex) + } + } else { + updateDataAfterJoin = () => { + updateLoadedServerData(s => ({ ...s, authenticatedAccountOverride: undefined }), connectOptions.serverIndex) + } + } + setLoadingScreenStatus('Authentication successful. Logging in to server') + } finally { + signInMessageState.code = '' + } + } : undefined, + username, + viewDistance: renderDistance, + checkTimeoutInterval: 240 * 1000, + // noPongTimeout: 240 * 1000, + closeTimeout: 240 * 1000, + respawn: options.autoRespawn, + maxCatchupTicks: 0, + 'mapDownloader-saveToFile': false, + // "mapDownloader-saveInternal": false, // do not save into memory, todo must be implemeneted as we do really care of ram + }) as unknown as typeof __type_bot + window.bot = bot + + if (connectOptions.viewerWsConnect) { + void onBotCreatedViewerHandler() + } + customEvents.emit('mineflayerBotCreated') + if (singleplayer || p2pMultiplayer || localReplaySession) { + if (singleplayer || p2pMultiplayer) { + // in case of p2pMultiplayer there is still flying-squid on the host side + const _supportFeature = bot.supportFeature + bot.supportFeature = ((feature) => { + if (unsupportedLocalServerFeatures.includes(feature)) { + return false + } + return _supportFeature(feature) + }) as typeof bot.supportFeature + } + + bot.emit('inject_allowed') + bot._client.emit('connect') + } else if (clientDataStream) { + // bot.emit('inject_allowed') + bot._client.emit('connect') + } else { + const setupConnectHandlers = () => { + Socket.prototype['handleStringMessage'] = function (message: string) { + if (message.startsWith('proxy-message') || message.startsWith('proxy-command:')) { // for future + return false + } + if (message.startsWith('proxy-shutdown:')) { + lastKnownKickReason = message.slice('proxy-shutdown:'.length) + return false + } + return true + } + bot._client.socket.on('connect', () => { + console.log('Proxy WebSocket connection established') + //@ts-expect-error + bot._client.socket._ws.addEventListener('close', () => { + console.log('WebSocket connection closed') + setTimeout(() => { + if (bot) { + bot.emit('end', 'WebSocket connection closed with unknown reason') + } + }, 1000) + }) + bot._client.socket.on('close', () => { + setTimeout(() => { + if (bot) { + bot.emit('end', 'WebSocket connection closed with unknown reason') + } + }) + }) + }) + } + // socket setup actually can be delayed because of dns lookup + if (bot._client.socket) { + setupConnectHandlers() + } else { + const originalSetSocket = bot._client.setSocket.bind(bot._client) + bot._client.setSocket = (socket) => { + if (!bot) return + originalSetSocket(socket) + setupConnectHandlers() + } + } + + } + } catch (err) { + handleError(err) + } + if (!bot) return + + const p2pConnectTimeout = p2pMultiplayer ? setTimeout(() => { throw new UserError('Spawn timeout. There might be error on the other side, check console.') }, 20_000) : undefined + + // bot.on('inject_allowed', () => { + // loadingScreen.maybeRecoverable = false + // }) + + bot.on('error', handleError) + + bot.on('kicked', (kickReason) => { + console.log('You were kicked!', kickReason) + const { formatted: kickReasonFormatted, plain: kickReasonString } = parseFormattedMessagePacket(kickReason) + // close all modals + for (const modal of activeModalStack) { + hideModal(modal) + } + setLoadingScreenStatus(`The Minecraft server kicked you. Kick reason: ${kickReasonString}`, true, undefined, undefined, kickReasonFormatted) + appStatusState.showReconnect = true + destroyAll(true) + }) + + const packetBeforePlay = (_, __, ___, fullBuffer) => { + lastPacket = fullBuffer.toString() + } + bot._client.on('packet', packetBeforePlay as any) + const playStateSwitch = (newState) => { + if (newState === 'play') { + bot._client.removeListener('packet', packetBeforePlay) + } + } + bot._client.on('state', playStateSwitch) + + bot.on('end', (endReason) => { + if (ended) return + console.log('disconnected for', endReason) + if (endReason === 'socketClosed') { + endReason = lastKnownKickReason ?? 'Connection with proxy server lost' + } + // close all modals + for (const modal of activeModalStack) { + hideModal(modal) + } + setLoadingScreenStatus(`You have been disconnected from the server. End reason:\n${endReason}`, true) + appStatusState.showReconnect = true + onPossibleErrorDisconnect() + destroyAll() + if (isCypress()) throw new Error(`disconnected: ${endReason}`) + }) + + onBotCreate() + + bot.once('login', () => { + errorAbortController.abort() + loadingTimerState.networkOnlyStart = 0 + progress.setMessage('Loading world') + }) + + let worldWasReady = false + const waitForChunksToLoad = async (progress?: ProgressReporter) => { + await new Promise(resolve => { + if (worldWasReady) { + resolve() + return + } + const unsub = subscribe(appViewer.rendererState, () => { + if (appViewer.rendererState.world.allChunksLoaded && appViewer.nonReactiveState.world.chunksTotalNumber) { + worldWasReady = true + resolve() + unsub() + } else { + const perc = Math.round(appViewer.rendererState.world.chunksLoaded.size / appViewer.nonReactiveState.world.chunksTotalNumber * 100) + progress?.reportProgress('chunks', perc / 100) + } + }) + }) + } + + const spawnEarlier = !singleplayer && !p2pMultiplayer + const displayWorld = async () => { + if (resourcePackState.isServerInstalling) { + await new Promise(resolve => { + subscribe(resourcePackState, () => { + if (!resourcePackState.isServerInstalling) { + resolve() + } + }) + }) + await appViewer.resourcesManager.promiseAssetsReady + } + if (appStatusState.isError) return + + if (!appViewer.resourcesManager.currentResources?.itemsRenderer) { + await appViewer.resourcesManager.updateAssetsData({}) + } + + const loadWorldStart = Date.now() + console.log('try to focus window') + window.focus?.() + void waitForChunksToLoad().then(() => { + window.worldLoadTime = (Date.now() - loadWorldStart) / 1000 + console.log('All chunks done and ready! Time from renderer connect to ready', (Date.now() - loadWorldStart) / 1000, 's') + document.dispatchEvent(new Event('cypress-world-ready')) + }) + + try { + if (p2pConnectTimeout) clearTimeout(p2pConnectTimeout) + playerState.reactive.onlineMode = !!connectOptions.authenticatedAccount + + progress.setMessage('Placing blocks (starting viewer)') + if (!connectOptions.worldStateFileContents || connectOptions.worldStateFileContents.length < 3 * 1024 * 1024) { + localStorage.lastConnectOptions = JSON.stringify(connectOptions) + if (process.env.NODE_ENV === 'development' && !localStorage.lockUrl && !location.search.slice(1).length) { + lockUrl() + } + } else { + localStorage.removeItem('lastConnectOptions') + } + connectOptions.onSuccessfulPlay?.() + updateDataAfterJoin() + const password = findServerPassword() + if (password) { + setTimeout(() => { + bot.chat(`/login ${password}`) + }, 500) + } + + + console.log('bot spawned - starting viewer') + await appViewer.startWorld(bot.world, renderDistance) + appViewer.worldView!.listenToBot(bot) + if (appViewer.backend) { + void appViewer.worldView!.init(bot.entity.position) + } + + initMotionTracking() + + // Bot position callback + const botPosition = () => { + appViewer.lastCamUpdate = Date.now() + // this might cause lag, but not sure + appViewer.backend?.updateCamera(bot.entity.position, bot.entity.yaw, bot.entity.pitch) + void appViewer.worldView?.updatePosition(bot.entity.position) + } + bot.on('move', botPosition) + botPosition() + + progress.setMessage('Setting callbacks') + + onGameLoad() + + if (appStatusState.isError) return + + const waitForChunks = async () => { + if (appQueryParams.sp === '1') return //todo + const waitForChunks = options.waitForChunksRender === 'sp-only' ? !!singleplayer : options.waitForChunksRender + if (!appViewer.backend || appViewer.rendererState.world.allChunksLoaded || !waitForChunks) { + return + } + + await progress.executeWithMessage( + 'Loading chunks', + 'chunks', + async () => { + await waitForChunksToLoad(progress) + } + ) + } + + await waitForChunks() + + setTimeout(() => { + if (appQueryParams.suggest_save) { + showNotification('Suggestion', 'Save the world to keep your progress!', false, undefined, async () => { + const savePath = await saveToBrowserMemory() + if (!savePath) return + const saveName = savePath.split('/').pop() + bot.end() + // todo hot reload + location.search = `loadSave=${saveName}` + }) + } + }, 600) + + miscUiState.gameLoaded = true + miscUiState.loadedServerIndex = connectOptions.serverIndex ?? '' + customEvents.emit('gameLoaded') + + // Test iOS Safari crash by creating memory pressure + if (appQueryParams.testIosCrash) { + setTimeout(() => { + console.log('Starting iOS crash test with memory pressure...') + // eslint-disable-next-line sonarjs/no-unused-collection + const arrays: number[][] = [] + try { + // Create large arrays until we run out of memory + // eslint-disable-next-line no-constant-condition + while (true) { + const arr = Array.from({ length: 1024 * 1024 }).fill(0).map((_, i) => i) + arrays.push(arr) + } + } catch (e) { + console.error('Memory allocation failed:', e) + } + }, 1000) + } + + progress.end() + setLoadingScreenStatus(undefined) + } catch (err) { + handleError(err) + } + hadConnected = true + } + // don't use spawn event, player can be dead + bot.once(spawnEarlier ? 'forcedMove' : 'health', displayWorld) + + if (singleplayer && connectOptions.serverOverrides.worldFolder) { + fsState.saveLoaded = true + } + + if (!connectOptions.ignoreQs || process.env.NODE_ENV === 'development') { + // todo cleanup + customEvents.on('gameLoaded', () => { + const commands = appQueryParamsArray.command ?? [] + for (let command of commands) { + if (!command.startsWith('/')) command = `/${command}` + const builtinHandled = tryHandleBuiltinCommand(command) + if (!builtinHandled) { + bot.chat(command) + } + } + }) + } +} + +listenGlobalEvents() + +// #region fire click event on touch as we disable default behaviors +let activeTouch: { touch: Touch, elem: HTMLElement, start: number } | undefined +document.body.addEventListener('touchend', (e) => { + if (!isGameActive(true)) return + if (activeTouch?.touch.identifier !== e.changedTouches[0].identifier) return + if (Date.now() - activeTouch.start > 500) { + activeTouch.elem.dispatchEvent(new Event('longtouch', { bubbles: true })) + } else { + activeTouch.elem.click() + } + activeTouch = undefined +}) +document.body.addEventListener('touchstart', (e) => { + const targetElement = (e.target as HTMLElement).closest('#ui-root') + if (!isGameActive(true) || !targetElement) return + // we always prevent default behavior to disable magnifier on ios, but by doing so we also disable click events + e.preventDefault() + let firstClickable // todo remove composedPath and this workaround when lit-element is fully dropped + const path = e.composedPath() as Array<{ click?: () => void }> + for (const elem of path) { + if (elem.click) { + firstClickable = elem + break + } + } + if (!firstClickable) return + activeTouch = { + touch: e.touches[0], + elem: firstClickable, + start: Date.now(), + } +}, { passive: false }) +// #endregion + +// immediate game enter actions: reconnect or URL QS +const maybeEnterGame = () => { + const waitForConfigFsLoad = (fn: () => void) => { + let unsubscribe: () => void | undefined + const checkDone = () => { + if (miscUiState.fsReady && miscUiState.appConfig) { + fn() + unsubscribe?.() + return true + } + return false + } + + if (!checkDone()) { + const text = miscUiState.appConfig ? 'Loading' : 'Loading config' + setLoadingScreenStatus(text) + unsubscribe = subscribe(miscUiState, checkDone) + } + } + + const reconnectOptions = sessionStorage.getItem('reconnectOptions') ? JSON.parse(sessionStorage.getItem('reconnectOptions')!) : undefined + + if (reconnectOptions) { + sessionStorage.removeItem('reconnectOptions') + if (Date.now() - reconnectOptions.timestamp < 1000 * 60 * 2) { + return waitForConfigFsLoad(async () => { + void connect(reconnectOptions.value) + }) + } + } + + if (appQueryParams.reconnect && localStorage.lastConnectOptions && process.env.NODE_ENV === 'development') { + const lastConnect = JSON.parse(localStorage.lastConnectOptions ?? {}) + return waitForConfigFsLoad(async () => { + void connect({ + botVersion: appQueryParams.version ?? undefined, + ...lastConnect, + ip: appQueryParams.ip || undefined + }) + }) + } + + if (appQueryParams.singleplayer === '1' || appQueryParams.sp === '1') { + return waitForConfigFsLoad(async () => { + loadSingleplayer({}, { + worldFolder: undefined, + ...appQueryParams.version ? { version: appQueryParams.version } : {} + }) + }) + } + if (appQueryParams.loadSave) { + const enterSave = async () => { + const savePath = `/data/worlds/${appQueryParams.loadSave}` + try { + await fs.promises.stat(savePath) + await loadInMemorySave(savePath) + } catch (err) { + alert(`Save ${savePath} not found`) + } + } + return waitForConfigFsLoad(enterSave) + } + + if (appQueryParams.ip || appQueryParams.proxy) { + const openServerAction = () => { + if (appQueryParams.autoConnect && miscUiState.appConfig?.allowAutoConnect) { + void connect({ + server: appQueryParams.ip, + proxy: getCurrentProxy(), + botVersion: appQueryParams.version ?? undefined, + username: getCurrentUsername()!, + }) + return + } + + setLoadingScreenStatus(undefined) + if (appQueryParams.onlyConnect || process.env.ALWAYS_MINIMAL_SERVER_UI === 'true') { + showModal({ reactType: 'only-connect-server' }) + } else { + showModal({ reactType: 'editServer' }) + } + } + + // showModal({ reactType: 'empty' }) + return waitForConfigFsLoad(openServerAction) + } + + if (appQueryParams.connectPeer) { + // try to connect to peer + const peerId = appQueryParams.connectPeer + const peerOptions = {} as ConnectPeerOptions + if (appQueryParams.server) { + peerOptions.server = appQueryParams.server + } + const version = appQueryParams.peerVersion + let username: string | null = options.guestUsername + if (options.askGuestName) username = prompt('Enter your username to connect to peer', username) + if (!username) return + options.guestUsername = username + void connect({ + username, + botVersion: version || undefined, + peerId, + peerOptions + }) + return + + } + + if (appQueryParams.viewerConnect) { + void connect({ + username: `viewer-${Math.random().toString(36).slice(2, 10)}`, + viewerWsConnect: appQueryParams.viewerConnect, + }) + return + } + + if (appQueryParams.modal) { + const modals = appQueryParams.modal.split(',') + for (const modal of modals) { + showModal({ reactType: modal }) + } + return + } + + if (appQueryParams.serversList && !miscUiState.appConfig?.appParams?.serversList) { + // open UI only if it's in URL + showModal({ reactType: 'serversList' }) + } + + if (isInterestedInDownload()) { + void downloadAndOpenFile() + } + + void possiblyHandleStateVariable() +} + +try { + maybeEnterGame() +} catch (err) { + console.error(err) + alert(`Something went wrong: ${err}`) +} + +// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion +const initialLoader = document.querySelector('.initial-loader') as HTMLElement | null +if (initialLoader) { + initialLoader.style.opacity = '0' + initialLoader.style.pointerEvents = 'none' +} +window.pageLoaded = true + +appViewer.waitBackendLoadPromises.push(appStartup()) +registerOpenBenchmarkListener() diff --git a/src/interactionShapesGenerated.json b/src/interactionShapesGenerated.json new file mode 100644 index 00000000..804952e0 --- /dev/null +++ b/src/interactionShapesGenerated.json @@ -0,0 +1,6599 @@ +{ + "moving_piston": [], + "water": [], + "lava": [], + "bubble_column": [], + "air": [], + "void_air": [], + "cave_air": [], + "mangrove_propagule": { + "hanging=true": [ + 7, + 0, + 7, + 9, + 16, + 9 + ], + "age=0": [ + 7, + 13, + 7, + 9, + 16, + 9 + ], + "age=1": [ + 7, + 10, + 7, + 9, + 16, + 9 + ], + "age=2": [ + 7, + 7, + 7, + 9, + 16, + 9 + ], + "age=3": [ + 7, + 3, + 7, + 9, + 16, + 9 + ], + "age=4": [ + 7, + 0, + 7, + 9, + 16, + 9 + ] + }, + "fern": [ + 2, + 0, + 2, + 14, + 13, + 14 + ], + "dandelion": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "torchflower": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "poppy": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "blue_orchid": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "allium": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "azure_bluet": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "red_tulip": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "orange_tulip": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "white_tulip": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "pink_tulip": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "oxeye_daisy": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "cornflower": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "wither_rose": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "lily_of_the_valley": [ + 5, + 0, + 5, + 11, + 10, + 11 + ], + "brown_mushroom": [ + 5, + 0, + 5, + 11, + 6, + 11 + ], + "red_mushroom": [ + 5, + 0, + 5, + 11, + 6, + 11 + ], + "torch": [ + 6, + 0, + 6, + 10, + 10, + 10 + ], + "soul_fire": [ + 0, + 0, + 0, + 16, + 1, + 16 + ], + "soul_torch": [ + 6, + 0, + 6, + 10, + 10, + 10 + ], + "end_portal": [ + 0, + 6, + 0, + 16, + 12, + 16 + ], + "end_gateway": [], + "kelp_plant": [ + 0, + 0, + 0, + 16, + 16, + 16 + ], + "dead_tube_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "dead_brain_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "dead_bubble_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "dead_fire_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "dead_horn_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "tube_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "brain_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "bubble_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "fire_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "horn_coral": [ + 2, + 0, + 2, + 14, + 15, + 14 + ], + "dead_tube_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "dead_brain_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "dead_bubble_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "dead_fire_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "dead_horn_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "tube_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "brain_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "bubble_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "fire_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "horn_coral_fan": [ + 2, + 0, + 2, + 14, + 4, + 14 + ], + "bamboo_sapling": [ + 4, + 0, + 4, + 12, + 12, + 12 + ], + "warped_fungus": [ + 4, + 0, + 4, + 12, + 9, + 12 + ], + "warped_roots": [ + 2, + 0, + 2, + 14, + 13, + 14 + ], + "nether_sprouts": [ + 2, + 0, + 2, + 14, + 3, + 14 + ], + "crimson_fungus": [ + 4, + 0, + 4, + 12, + 9, + 12 + ], + "weeping_vines_plant": [ + 1, + 0, + 1, + 15, + 16, + 15 + ], + "twisting_vines_plant": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "crimson_roots": [ + 2, + 0, + 2, + 14, + 13, + 14 + ], + "powder_snow": [ + 0, + 0, + 0, + 16, + 16, + 16 + ], + "spore_blossom": [ + 2, + 13, + 2, + 14, + 16, + 14 + ], + "hanging_roots": [ + 2, + 10, + 2, + 14, + 16, + 14 + ], + "frogspawn": [ + 0, + 0, + 0, + 16, + 1.5, + 16 + ], + "jungle_sapling": [ + 2, + 0, + 2, + 14, + 12, + 14 + ], + "acacia_sapling": [ + 2, + 0, + 2, + 14, + 12, + 14 + ], + "cherry_sapling": [ + 2, + 0, + 2, + 14, + 12, + 14 + ], + "powered_rail": { + "shape=ascending_east": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_north": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_south": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_west": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "": [ + 0, + 0, + 0, + 16, + 2, + 16 + ] + }, + "detector_rail": { + "shape=ascending_east": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_north": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_south": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_west": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "": [ + 0, + 0, + 0, + 16, + 2, + 16 + ] + }, + "wall_torch": { + "facing=east": [ + 0, + 3, + 5.5, + 5, + 13, + 10.5 + ], + "facing=north": [ + 5.5, + 3, + 11, + 10.5, + 13, + 16 + ], + "facing=south": [ + 5.5, + 3, + 0, + 10.5, + 13, + 5 + ], + "facing=west": [ + 11, + 3, + 5.5, + 16, + 13, + 10.5 + ] + }, + "fire": { + "combine": { + "up=true": [ + 0, + 15, + 0, + 16, + 16, + 16 + ], + "west=true": [ + 0, + 0, + 0, + 1, + 16, + 16 + ], + "east=true": [ + 15, + 0, + 0, + 16, + 16, + 16 + ], + "north=true": [ + 0, + 0, + 0, + 16, + 16, + 1 + ], + "south=true": [ + 0, + 0, + 15, + 16, + 16, + 16 + ] + } + }, + "redstone_wire": { + "combine": { + "north=side|up": [ + 3, + 0, + 0, + 13, + 1, + 13 + ], + "south=side|up": [ + 3, + 0, + 3, + 13, + 1, + 16 + ], + "east=side|up": [ + 3, + 0, + 3, + 16, + 1, + 13 + ], + "west=side|up": [ + 0, + 0, + 3, + 13, + 1, + 13 + ], + "north=up": [ + 3, + 0, + 0, + 13, + 16, + 1 + ], + "south=up": [ + 3, + 0, + 15, + 13, + 16, + 16 + ], + "east=up": [ + 15, + 0, + 3, + 16, + 16, + 13 + ], + "west=up": [ + 0, + 0, + 3, + 1, + 16, + 13 + ] + } + }, + "wheat": { + "age=0": [ + 0, + 0, + 0, + 16, + 2, + 16 + ], + "age=1": [ + 0, + 0, + 0, + 16, + 4, + 16 + ], + "age=2": [ + 0, + 0, + 0, + 16, + 6, + 16 + ], + "age=3": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "age=4": [ + 0, + 0, + 0, + 16, + 10, + 16 + ], + "age=5": [ + 0, + 0, + 0, + 16, + 12, + 16 + ], + "age=6": [ + 0, + 0, + 0, + 16, + 14, + 16 + ], + "age=7": [ + 0, + 0, + 0, + 16, + 16, + 16 + ] + }, + "oak_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "spruce_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "birch_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "acacia_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "cherry_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "jungle_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "dark_oak_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "mangrove_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "bamboo_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "rail": { + "shape=ascending_east": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_north": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_south": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_west": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "": [ + 0, + 0, + 0, + 16, + 2, + 16 + ] + }, + "oak_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "spruce_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "birch_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "acacia_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "cherry_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "jungle_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "dark_oak_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "mangrove_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "bamboo_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "oak_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "spruce_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "birch_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "acacia_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "cherry_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "jungle_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "dark_oak_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "crimson_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "warped_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "mangrove_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "bamboo_hanging_sign": [ + 3, + 0, + 3, + 13, + 16, + 13 + ], + "lever": { + "face=floor,facing=east": [ + 4, + 0, + 5, + 12, + 6, + 11 + ], + "face=floor,facing=north": [ + 5, + 0, + 4, + 11, + 6, + 12 + ], + "face=floor,facing=south": [ + 5, + 0, + 4, + 11, + 6, + 12 + ], + "face=floor,facing=west": [ + 4, + 0, + 5, + 12, + 6, + 11 + ], + "face=ceiling,facing=east": [ + 4, + 10, + 5, + 12, + 16, + 11 + ], + "face=ceiling,facing=north": [ + 5, + 10, + 4, + 11, + 16, + 12 + ], + "face=ceiling,facing=south": [ + 5, + 10, + 4, + 11, + 16, + 12 + ], + "face=ceiling,facing=west": [ + 4, + 10, + 5, + 12, + 16, + 11 + ], + "face=wall,facing=east": [ + 0, + 4, + 5, + 6, + 12, + 11 + ], + "face=wall,facing=north": [ + 5, + 4, + 10, + 11, + 12, + 16 + ], + "face=wall,facing=south": [ + 5, + 4, + 0, + 11, + 12, + 6 + ], + "face=wall,facing=west": [ + 10, + 4, + 5, + 16, + 12, + 11 + ] + }, + "stone_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "oak_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "spruce_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "birch_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "jungle_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "acacia_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "cherry_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "dark_oak_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "mangrove_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "bamboo_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "redstone_torch": [ + 6, + 0, + 6, + 10, + 10, + 10 + ], + "redstone_wall_torch": { + "facing=east": [ + 0, + 3, + 5.5, + 5, + 13, + 10.5 + ], + "facing=north": [ + 5.5, + 3, + 11, + 10.5, + 13, + 16 + ], + "facing=south": [ + 5.5, + 3, + 0, + 10.5, + 13, + 5 + ], + "facing=west": [ + 11, + 3, + 5.5, + 16, + 13, + 10.5 + ] + }, + "stone_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "sugar_cane": [ + 2, + 0, + 2, + 14, + 16, + 14 + ], + "soul_wall_torch": { + "facing=east": [ + 0, + 3, + 5.5, + 5, + 13, + 10.5 + ], + "facing=north": [ + 5.5, + 3, + 11, + 10.5, + 13, + 16 + ], + "facing=south": [ + 5.5, + 3, + 0, + 10.5, + 13, + 5 + ], + "facing=west": [ + 11, + 3, + 5.5, + 16, + 13, + 10.5 + ] + }, + "attached_pumpkin_stem": { + "facing=east": [ + 6, + 0, + 6, + 16, + 10, + 10 + ], + "facing=north": [ + 6, + 0, + 0, + 10, + 10, + 10 + ], + "facing=south": [ + 6, + 0, + 6, + 10, + 10, + 16 + ], + "facing=west": [ + 0, + 0, + 6, + 10, + 10, + 10 + ] + }, + "attached_melon_stem": { + "facing=east": [ + 6, + 0, + 6, + 16, + 10, + 10 + ], + "facing=north": [ + 6, + 0, + 0, + 10, + 10, + 10 + ], + "facing=south": [ + 6, + 0, + 6, + 10, + 10, + 16 + ], + "facing=west": [ + 0, + 0, + 6, + 10, + 10, + 10 + ] + }, + "pumpkin_stem": { + "age=0": [ + 7, + 0, + 7, + 9, + 2, + 9 + ], + "age=1": [ + 7, + 0, + 7, + 9, + 4, + 9 + ], + "age=2": [ + 7, + 0, + 7, + 9, + 6, + 9 + ], + "age=3": [ + 7, + 0, + 7, + 9, + 8, + 9 + ], + "age=4": [ + 7, + 0, + 7, + 9, + 10, + 9 + ], + "age=5": [ + 7, + 0, + 7, + 9, + 12, + 9 + ], + "age=6": [ + 7, + 0, + 7, + 9, + 14, + 9 + ], + "age=7": [ + 7, + 0, + 7, + 9, + 16, + 9 + ] + }, + "melon_stem": { + "age=0": [ + 7, + 0, + 7, + 9, + 2, + 9 + ], + "age=1": [ + 7, + 0, + 7, + 9, + 4, + 9 + ], + "age=2": [ + 7, + 0, + 7, + 9, + 6, + 9 + ], + "age=3": [ + 7, + 0, + 7, + 9, + 8, + 9 + ], + "age=4": [ + 7, + 0, + 7, + 9, + 10, + 9 + ], + "age=5": [ + 7, + 0, + 7, + 9, + 12, + 9 + ], + "age=6": [ + 7, + 0, + 7, + 9, + 14, + 9 + ], + "age=7": [ + 7, + 0, + 7, + 9, + 16, + 9 + ] + }, + "vine": { + "combine": { + "up=true": [ + 0, + 15, + 0, + 16, + 16, + 16 + ], + "west=true": [ + 0, + 0, + 0, + 1, + 16, + 16 + ], + "east=true": [ + 15, + 0, + 0, + 16, + 16, + 16 + ], + "north=true": [ + 0, + 0, + 0, + 16, + 16, + 1 + ], + "south=true": [ + 0, + 0, + 15, + 16, + 16, + 16 + ] + } + }, + "glow_lichen": { + "combine": { + "up=true": [ + 0, + 15, + 0, + 16, + 16, + 16 + ], + "west=true": [ + 0, + 0, + 0, + 1, + 16, + 16 + ], + "east=true": [ + 15, + 0, + 0, + 16, + 16, + 16 + ], + "north=true": [ + 0, + 0, + 0, + 16, + 16, + 1 + ], + "south=true": [ + 0, + 0, + 15, + 16, + 16, + 16 + ] + } + }, + "nether_wart": { + "age=0": [ + 0, + 0, + 0, + 16, + 5, + 16 + ], + "age=1": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "age=2": [ + 0, + 0, + 0, + 16, + 11, + 16 + ], + "age=3": [ + 0, + 0, + 0, + 16, + 14, + 16 + ] + }, + "tripwire_hook": { + "facing=east": [ + 0, + 0, + 5, + 6, + 10, + 11 + ], + "facing=north": [ + 5, + 0, + 10, + 11, + 10, + 16 + ], + "facing=south": [ + 5, + 0, + 0, + 11, + 10, + 6 + ], + "facing=west": [ + 10, + 0, + 5, + 16, + 10, + 11 + ] + }, + "tripwire": { + "attached=true": [ + 0, + 1, + 0, + 16, + 2.5, + 16 + ], + "attached=false": [ + 0, + 0, + 0, + 16, + 8, + 16 + ] + }, + "carrots": { + "age=0": [ + 0, + 0, + 0, + 16, + 2, + 16 + ], + "age=1": [ + 0, + 0, + 0, + 16, + 3, + 16 + ], + "age=2": [ + 0, + 0, + 0, + 16, + 4, + 16 + ], + "age=3": [ + 0, + 0, + 0, + 16, + 5, + 16 + ], + "age=4": [ + 0, + 0, + 0, + 16, + 6, + 16 + ], + "age=5": [ + 0, + 0, + 0, + 16, + 7, + 16 + ], + "age=6": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "age=7": [ + 0, + 0, + 0, + 16, + 9, + 16 + ] + }, + "potatoes": { + "age=0": [ + 0, + 0, + 0, + 16, + 2, + 16 + ], + "age=1": [ + 0, + 0, + 0, + 16, + 3, + 16 + ], + "age=2": [ + 0, + 0, + 0, + 16, + 4, + 16 + ], + "age=3": [ + 0, + 0, + 0, + 16, + 5, + 16 + ], + "age=4": [ + 0, + 0, + 0, + 16, + 6, + 16 + ], + "age=5": [ + 0, + 0, + 0, + 16, + 7, + 16 + ], + "age=6": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "age=7": [ + 0, + 0, + 0, + 16, + 9, + 16 + ] + }, + "oak_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "spruce_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "birch_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "jungle_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "acacia_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "cherry_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "dark_oak_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "mangrove_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "bamboo_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "light_weighted_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "heavy_weighted_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "activator_rail": { + "shape=ascending_east": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_north": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_south": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "shape=ascending_west": [ + 0, + 0, + 0, + 16, + 8, + 16 + ], + "": [ + 0, + 0, + 0, + 16, + 2, + 16 + ] + }, + "light": [], + "sunflower": [ + 0, + 0, + 0, + 16, + 16, + 16 + ], + "rose_bush": [ + 0, + 0, + 0, + 16, + 16, + 16 + ], + "peony": [ + 0, + 0, + 0, + 16, + 16, + 16 + ], + "large_fern": [ + 0, + 0, + 0, + 16, + 16, + 16 + ], + "white_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "orange_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "magenta_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "light_blue_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "yellow_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "lime_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "pink_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "gray_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "light_gray_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "cyan_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "purple_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "blue_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "brown_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "green_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "red_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "black_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "white_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "orange_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "magenta_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "light_blue_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "yellow_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "lime_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "pink_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "gray_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "light_gray_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "cyan_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "purple_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "blue_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "brown_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "green_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "red_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "black_wall_banner": { + "facing=north": [ + 0, + 0, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 0, + 0, + 16, + 12.5, + 2 + ], + "facing=west": [ + 14, + 0, + 0, + 16, + 12.5, + 16 + ], + "facing=east": [ + 0, + 0, + 0, + 2, + 12.5, + 16 + ] + }, + "torchflower_crop": { + "age=0": [ + 5, + 0, + 5, + 11, + 6, + 11 + ], + "age=1": [ + 5, + 0, + 5, + 11, + 10, + 11 + ] + }, + "pitcher_plant": [ + 0, + 0, + 0, + 16, + 16, + 16 + ], + "beetroots": { + "age=0": [ + 0, + 0, + 0, + 16, + 2, + 16 + ], + "age=1": [ + 0, + 0, + 0, + 16, + 4, + 16 + ], + "age=2": [ + 0, + 0, + 0, + 16, + 6, + 16 + ], + "age=3": [ + 0, + 0, + 0, + 16, + 8, + 16 + ] + }, + "kelp": [ + 0, + 0, + 0, + 16, + 9, + 16 + ], + "dead_tube_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "dead_brain_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "dead_bubble_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "dead_fire_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "dead_horn_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "tube_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "brain_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "bubble_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "fire_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "horn_coral_wall_fan": { + "facing=north": [ + 0, + 4, + 5, + 16, + 12, + 16 + ], + "facing=south": [ + 0, + 4, + 0, + 16, + 12, + 11 + ], + "facing=west": [ + 5, + 4, + 0, + 16, + 12, + 16 + ], + "facing=east": [ + 0, + 4, + 0, + 11, + 12, + 16 + ] + }, + "sweet_berry_bush": { + "age=0": [ + 3, + 0, + 3, + 13, + 8, + 13 + ], + "age=1": [ + 1, + 0, + 1, + 15, + 16, + 15 + ], + "age=2": [ + 1, + 0, + 1, + 15, + 16, + 15 + ], + "": [ + 0, + 0, + 0, + 16, + 16, + 16 + ] + }, + "weeping_vines": [ + 4, + 9, + 4, + 12, + 16, + 12 + ], + "twisting_vines": [ + 4, + 0, + 4, + 12, + 15, + 12 + ], + "crimson_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "warped_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "crimson_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "warped_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "crimson_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "warped_sign": [ + 4, + 0, + 4, + 12, + 16, + 12 + ], + "crimson_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "warped_wall_sign": { + "facing=north": [ + 0, + 4.5, + 14, + 16, + 12.5, + 16 + ], + "facing=south": [ + 0, + 4.5, + 0, + 16, + 12.5, + 2 + ], + "facing=east": [ + 0, + 4.5, + 0, + 2, + 12.5, + 16 + ], + "facing=west": [ + 14, + 4.5, + 0, + 16, + 12.5, + 16 + ] + }, + "polished_blackstone_pressure_plate": { + "powered=false": [ + 1, + 0, + 1, + 15, + 1, + 15 + ], + "powered=true": [ + 1, + 0, + 1, + 15, + 0.5, + 15 + ] + }, + "polished_blackstone_button": { + "face=floor,facing=north,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=north,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=south,powered=false": [ + 5, + 0, + 6, + 11, + 2, + 10 + ], + "face=floor,facing=south,powered=true": [ + 5, + 0, + 6, + 11, + 1, + 10 + ], + "face=floor,facing=west,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=west,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=floor,facing=east,powered=false": [ + 6, + 0, + 5, + 10, + 2, + 11 + ], + "face=floor,facing=east,powered=true": [ + 6, + 0, + 5, + 10, + 1, + 11 + ], + "face=wall,facing=north,powered=false": [ + 5, + 6, + 14, + 11, + 10, + 16 + ], + "face=wall,facing=north,powered=true": [ + 5, + 6, + 15, + 11, + 10, + 16 + ], + "face=wall,facing=south,powered=false": [ + 5, + 6, + 0, + 11, + 10, + 2 + ], + "face=wall,facing=south,powered=true": [ + 5, + 6, + 0, + 11, + 10, + 1 + ], + "face=wall,facing=west,powered=false": [ + 14, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=west,powered=true": [ + 15, + 6, + 5, + 16, + 10, + 11 + ], + "face=wall,facing=east,powered=false": [ + 0, + 6, + 5, + 2, + 10, + 11 + ], + "face=wall,facing=east,powered=true": [ + 0, + 6, + 5, + 1, + 10, + 11 + ], + "face=ceiling,facing=north,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=north,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=false": [ + 5, + 14, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=south,powered=true": [ + 5, + 15, + 6, + 11, + 16, + 10 + ], + "face=ceiling,facing=west,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=west,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=false": [ + 6, + 14, + 5, + 10, + 16, + 11 + ], + "face=ceiling,facing=east,powered=true": [ + 6, + 15, + 5, + 10, + 16, + 11 + ] + }, + "sculk_vein": { + "combine": { + "up=true": [ + 0, + 15, + 0, + 16, + 16, + 16 + ], + "west=true": [ + 0, + 0, + 0, + 1, + 16, + 16 + ], + "east=true": [ + 15, + 0, + 0, + 16, + 16, + 16 + ], + "north=true": [ + 0, + 0, + 0, + 16, + 16, + 1 + ], + "south=true": [ + 0, + 0, + 15, + 16, + 16, + 16 + ] + } + }, + "cave_vines": [ + 1, + 0, + 1, + 15, + 16, + 15 + ], + "big_dripleaf_stem": { + "facing=north": [ + 5, + 0, + 9, + 11, + 16, + 15 + ], + "facing=south": [ + 5, + 0, + 1, + 11, + 16, + 7 + ], + "facing=east": [ + 1, + 0, + 5, + 7, + 16, + 11 + ], + "facing=west": [ + 9, + 0, + 5, + 15, + 16, + 11 + ] + }, + "small_dripleaf": [ + 2, + 0, + 2, + 14, + 13, + 14 + ] +} diff --git a/src/inventoryWindows.ts b/src/inventoryWindows.ts new file mode 100644 index 00000000..d40260df --- /dev/null +++ b/src/inventoryWindows.ts @@ -0,0 +1,666 @@ +import { proxy, subscribe } from 'valtio' +import { showInventory } from 'minecraft-inventory-gui/web/ext.mjs' + +// import Dirt from 'mc-assets/dist/other-textures/latest/blocks/dirt.png' +import { RecipeItem } from 'minecraft-data' +import { flat, fromFormattedString } from '@xmcl/text-component' +import { splitEvery, equals } from 'rambda' +import PItem, { Item } from 'prismarine-item' +import { versionToNumber } from 'renderer/viewer/common/utils' +import { getRenamedData } from 'flying-squid/dist/blockRenames' +import PrismarineChatLoader from 'prismarine-chat' +import * as nbt from 'prismarine-nbt' +import { BlockModel } from 'mc-assets' +import { renderSlot } from 'renderer/viewer/three/renderSlot' +import { loadSkinFromUsername } from 'renderer/viewer/lib/utils/skins' +import Generic95 from '../assets/generic_95.png' +import { appReplacableResources } from './generated/resources' +import { activeModalStack, hideCurrentModal, hideModal, miscUiState, showModal } from './globalState' +import { options } from './optionsStorage' +import { assertDefined, inGameError } from './utils' +import { displayClientChat } from './botUtils' +import { currentScaling } from './scaleInterface' +import { getItemDescription } from './itemsDescriptions' +import { MessageFormatPart } from './chatUtils' +import { GeneralInputItem, getItemMetadata, getItemModelName, getItemNameRaw, RenderItem } from './mineflayer/items' +import { playerState } from './mineflayer/playerState' +import { modelViewerState } from './react/OverlayModelViewer' + +const loadedImagesCache = new Map() +const cleanLoadedImagesCache = () => { + loadedImagesCache.delete('blocks') + loadedImagesCache.delete('items') +} + +let lastWindow: ReturnType +let lastWindowType: string | null | undefined // null is inventory +/** bot version */ +let version: string +let PrismarineItem: typeof Item + +export const jeiCustomCategories = proxy({ + value: [] as Array<{ id: string, categoryTitle: string, items: any[] }> +}) + +let remotePlayerSkin: string | undefined | Promise + +export const showInventoryPlayer = () => { + modelViewerState.model = { + positioning: { + windowWidth: 176, + windowHeight: 166, + x: 25, + y: 8, + width: 50, + height: 70, + scaled: true, + onlyInitialScale: true, + followCursor: true, + }, + // models: ['https://bucket.mcraft.fun/sitarbuckss.glb'], + // debug: true, + steveModelSkin: appViewer.playerState.reactive.playerSkin ?? (typeof remotePlayerSkin === 'string' ? remotePlayerSkin : ''), + } + if (remotePlayerSkin === undefined && !appViewer.playerState.reactive.playerSkin) { + remotePlayerSkin = loadSkinFromUsername(bot.username, 'skin').then(a => { + setTimeout(() => { showInventoryPlayer() }, 0) // todo patch instead and make reactive + remotePlayerSkin = a ?? '' + return remotePlayerSkin + }) + } +} + +export const onGameLoad = () => { + version = bot.version + + PrismarineItem = PItem(version) + + const mapWindowType = (type: string, inventoryStart: number) => { + if (type === 'minecraft:container') { + if (inventoryStart === 45 - 9 * 4) return 'minecraft:generic_9x1' + if (inventoryStart === 45 - 9 * 3) return 'minecraft:generic_9x2' + if (inventoryStart === 45 - 9 * 2) return 'minecraft:generic_9x3' + if (inventoryStart === 45 - 9) return 'minecraft:generic_9x4' + if (inventoryStart === 45) return 'minecraft:generic_9x5' + if (inventoryStart === 45 + 9) return 'minecraft:generic_9x6' + } + return type + } + + const maybeParseNbtJson = (data: any) => { + if (typeof data === 'string') { + try { + data = JSON.parse(data) + } catch (err) { + // ignore + } + } + return nbt.simplify(data) ?? data + } + + bot.on('windowOpen', (win) => { + const implementedWindow = implementedContainersGuiMap[mapWindowType(win.type as string, win.inventoryStart)] + if (implementedWindow) { + openWindow(implementedWindow, maybeParseNbtJson(win.title)) + } else if (options.unimplementedContainers) { + openWindow('ChestWin', maybeParseNbtJson(win.title)) + } else { + // todo format + displayClientChat(`[client error] cannot open unimplemented window ${win.id} (${win.type}). Slots: ${win.slots.map(item => getItemName(item)).filter(Boolean).join(', ')}`) + bot.currentWindow?.['close']() + } + }) + + // workaround: singleplayer player inventory crafting + let skipUpdate = false + bot.inventory.on('updateSlot', ((_oldSlot, oldItem, newItem) => { + const currentSlot = _oldSlot as number + if (!miscUiState.singleplayer || oldItem === newItem || skipUpdate) return + const { craftingResultSlot } = bot.inventory + if (currentSlot === craftingResultSlot && oldItem && !newItem) { + for (let i = 1; i < 5; i++) { + const count = bot.inventory.slots[i]?.count + if (count && count > 1) { + const slot = bot.inventory.slots[i]! + slot.count-- + void bot.creative.setInventorySlot(i, slot) + } else { + void bot.creative.setInventorySlot(i, null) + } + } + return + } + if (currentSlot > 4) return + const craftingSlots = bot.inventory.slots.slice(1, 5) + try { + const resultingItem = getResultingRecipe(craftingSlots, 2) + skipUpdate = true + void bot.creative.setInventorySlot(craftingResultSlot, resultingItem ?? null).then(() => { + skipUpdate = false + }) + } catch (err) { + console.error(err) + // todo resolve the error! and why would we ever get here on every update? + } + }) as any) + + bot.on('windowClose', () => { + // todo hide up to the window itself! + if (lastWindow) { + hideCurrentModal() + } + }) + bot.on('respawn', () => { // todo validate logic against native client (maybe login) + if (lastWindow) { + hideCurrentModal() + } + }) + + customEvents.on('search', (q) => { + if (!lastWindow) return + upJei(q) + }) + + if (!appViewer.resourcesManager['_inventoryChangeTracked']) { + appViewer.resourcesManager['_inventoryChangeTracked'] = true + const texturesChanged = () => { + cleanLoadedImagesCache() + if (!lastWindow) return + upWindowItemsLocal() + upJei(lastJeiSearch) + } + appViewer.resourcesManager.on('assetsInventoryReady', () => texturesChanged()) + appViewer.resourcesManager.on('assetsTexturesUpdated', () => texturesChanged()) + } +} + +const getImageSrc = (path): string | HTMLImageElement | ImageBitmap => { + switch (path) { + case 'gui/container/inventory': return appReplacableResources.latest_gui_container_inventory.content + case 'blocks': return appViewer.resourcesManager.blocksAtlasParser.latestImage + case 'items': return appViewer.resourcesManager.itemsAtlasParser.latestImage + case 'gui': return appViewer.resourcesManager.currentResources!.guiAtlas!.image + case 'gui/container/dispenser': return appReplacableResources.latest_gui_container_dispenser.content + case 'gui/container/furnace': return appReplacableResources.latest_gui_container_furnace.content + case 'gui/container/crafting_table': return appReplacableResources.latest_gui_container_crafting_table.content + case 'gui/container/shulker_box': return appReplacableResources.latest_gui_container_shulker_box.content + case 'gui/container/generic_54': return appReplacableResources.latest_gui_container_generic_54.content + case 'gui/container/generic_95': return Generic95 + case 'gui/container/hopper': return appReplacableResources.latest_gui_container_hopper.content + case 'gui/container/horse': return appReplacableResources.latest_gui_container_horse.content + case 'gui/container/villager2': return appReplacableResources.latest_gui_container_villager2.content + case 'gui/container/enchanting_table': return appReplacableResources.latest_gui_container_enchanting_table.content + case 'gui/container/anvil': return appReplacableResources.latest_gui_container_anvil.content + case 'gui/container/beacon': return appReplacableResources.latest_gui_container_beacon.content + case 'gui/widgets': return appReplacableResources.other_textures_latest_gui_widgets.content + } + // empty texture + return 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=' +} + +const getImage = ({ path = undefined as string | undefined, texture = undefined as string | undefined, blockData = undefined as any, image = undefined as HTMLImageElement | undefined }, onLoad = () => { }) => { + if (image) { + return image + } + if (!path && !texture) { + throw new Error('Either pass path or texture') + } + const loadPath = (blockData ? 'blocks' : path ?? texture)! + if (loadedImagesCache.has(loadPath)) { + onLoad() + } else { + const imageSrc = getImageSrc(loadPath) + if (imageSrc instanceof ImageBitmap) { + onLoad() + loadedImagesCache.set(loadPath, imageSrc) + return imageSrc + } + + let image: HTMLImageElement + if (imageSrc instanceof Image) { + image = imageSrc + } else { + image = new Image() + image.src = imageSrc + } + image.onload = onLoad + loadedImagesCache.set(loadPath, image) + } + return loadedImagesCache.get(loadPath) +} + +const getItemName = (slot: Item | RenderItem | null) => { + const parsed = getItemNameRaw(slot, appViewer.resourcesManager) + if (!parsed) return + // todo display full text renderer from sign renderer + const text = flat(parsed as MessageFormatPart).map(x => (typeof x === 'string' ? x : x.text)) + return text.join('') +} + +let lastMappedSlots = [] as any[] +const itemToVisualKey = (slot: RenderItem | Item | null) => { + if (!slot) return '' + const keys = [ + slot.name, + slot.durabilityUsed, + slot.maxDurability, + slot['count'], + slot['metadata'], + slot.nbt ? JSON.stringify(slot.nbt) : '', + slot['components'] ? JSON.stringify(slot['components']) : '', + appViewer.resourcesManager.currentResources!.guiAtlasVersion, + ].join('|') + return keys +} +const validateSlot = (slot: any, index: number) => { + if (!slot.texture) { + throw new Error(`Slot has no texture: ${index} ${slot.name}`) + } +} +const mapSlots = (slots: Array, isJei = false) => { + const newSlots = slots.map((slot, i) => { + if (!slot) return null + + if (!isJei) { + const oldKey = lastMappedSlots[i]?.cacheKey + const newKey = itemToVisualKey(slot) + slot['cacheKey'] = i + '|' + newKey + if (oldKey && oldKey === newKey) { + validateSlot(lastMappedSlots[i], i) + return lastMappedSlots[i] + } + } + + try { + if (slot.durabilityUsed && slot.maxDurability) slot.durabilityUsed = Math.min(slot.durabilityUsed, slot.maxDurability) + const debugIsQuickbar = !isJei && i === bot.inventory.hotbarStart + bot.quickBarSlot + const modelName = getItemModelName(slot, { 'minecraft:display_context': 'gui', }, appViewer.resourcesManager, appViewer.playerState.reactive) + const slotCustomProps = renderSlot({ modelName, originalItemName: slot.name }, appViewer.resourcesManager, debugIsQuickbar) + const itemCustomName = getItemName(slot) + Object.assign(slot, { ...slotCustomProps, displayName: itemCustomName ?? slot.displayName }) + //@ts-expect-error + slot.toJSON = () => { + // Allow to serialize slot to JSON as minecraft-inventory-gui creates icon property as cache (recursively) + //@ts-expect-error + const { icon, ...rest } = slot + return rest + } + validateSlot(slot, i) + } catch (err) { + inGameError(err) + } + return slot + }) + lastMappedSlots = JSON.parse(JSON.stringify(newSlots)) + return newSlots +} + +export const upInventoryItems = (isInventory: boolean, invWindow = lastWindow) => { + // inv.pwindow.inv.slots[2].displayName = 'test' + // inv.pwindow.inv.slots[2].blockData = getBlockData('dirt') + const customSlots = mapSlots((isInventory ? bot.inventory : bot.currentWindow)!.slots) + invWindow.pwindow.setSlots(customSlots) + return customSlots +} + +export const onModalClose = (callback: () => any) => { + const modal = activeModalStack.at(-1) + const unsubscribe = subscribe(activeModalStack, () => { + const newModal = activeModalStack.at(-1) + if (modal?.reactType !== newModal?.reactType) { + callback() + unsubscribe() + } + }, true) +} + +const implementedContainersGuiMap = { + // todo allow arbitrary size instead! + 'minecraft:generic_9x1': 'ChestWin', + 'minecraft:generic_9x2': 'ChestWin', + 'minecraft:generic_9x3': 'ChestWin', + 'minecraft:generic_9x4': 'Generic95Win', + 'minecraft:generic_9x5': 'Generic95Win', + // hopper + 'minecraft:generic_5x1': 'HopperWin', + 'minecraft:generic_9x6': 'LargeChestWin', + 'minecraft:generic_3x3': 'DropDispenseWin', + 'minecraft:furnace': 'FurnaceWin', + 'minecraft:smoker': 'FurnaceWin', + 'minecraft:shulker_box': 'ChestWin', + 'minecraft:blast_furnace': 'FurnaceWin', + 'minecraft:crafting': 'CraftingWin', + 'minecraft:crafting3x3': 'CraftingWin', // todo different result slot + 'minecraft:anvil': 'AnvilWin', + // enchant + 'minecraft:enchanting_table': 'EnchantingWin', + // horse + 'minecraft:horse': 'HorseWin', + // villager + 'minecraft:villager': 'VillagerWin', +} + +let lastJeiSearch = '' +const upJei = (search: string) => { + lastJeiSearch = search + search = search.toLowerCase() + // todo fix pre flat + const itemsArray = [ + ...jeiCustomCategories.value.flatMap(x => x.items).filter(x => x !== null), + ...loadedData.itemsArray.filter(x => x.displayName.toLowerCase().includes(search)).map(item => new PrismarineItem(item.id, 1)).filter(x => x !== null) + ] + const matchedSlots = itemsArray.map(x => { + x.displayName = getItemName(x) ?? x.displayName + if (!x.displayName.toLowerCase().includes(search)) return null + return x + }).filter(a => a !== null) + lastWindow.pwindow.win.jeiSlotsPage = 0 + lastWindow.pwindow.win.jeiSlots = mapSlots(matchedSlots, true) +} + +export const openItemsCanvas = (type, _bot = bot as typeof bot | null) => { + const inv = showInventory(type, getImage, {}, _bot); + (inv.canvasManager.children[0].callbacks as any).getItemRecipes = (item) => { + const allRecipes = getAllItemRecipes(item.name) + inv.canvasManager.children[0].messageDisplay = '' + const itemDescription = getItemDescription(item) + if (!allRecipes?.length && !itemDescription) { + inv.canvasManager.children[0].messageDisplay = `No recipes found for ${item.displayName}` + } + return [...allRecipes ?? [], ...itemDescription ? [ + [ + 'GenericDescription', + mapSlots([item], true)[0], + [], + itemDescription + ] + ] : []] + } + (inv.canvasManager.children[0].callbacks as any).getItemUsages = (item) => { + const allItemUsages = getAllItemUsages(item.name) + inv.canvasManager.children[0].messageDisplay = '' + if (!allItemUsages?.length) { + inv.canvasManager.children[0].messageDisplay = `No usages found for ${item.displayName}` + } + return allItemUsages + } + return inv +} + +const upWindowItemsLocal = () => { + if (!lastWindow && bot.currentWindow) { + // edge case: might happen due to high ping, inventory should be closed soon! + // openWindow(implementedContainersGuiMap[bot.currentWindow.type]) + return + } + void Promise.resolve().then(() => upInventoryItems(lastWindowType === null)) +} + +let skipClosePacketSending = false +const openWindow = (type: string | undefined, title: string | any = undefined) => { + // if (activeModalStack.some(x => x.reactType?.includes?.('player_win:'))) { + if (activeModalStack.length) { // game is not in foreground, don't close current modal + if (type) { + skipClosePacketSending = true + hideCurrentModal() + } else { + bot.currentWindow?.['close']() + return + } + } + lastWindowType = type ?? null + showModal({ + reactType: `player_win:${type}`, + }) + onModalClose(() => { + // might be already closed (event fired) + if (type !== undefined && bot.currentWindow && !skipClosePacketSending) bot.currentWindow['close']() + lastWindow.destroy() + lastWindow = null as any + lastWindowType = null + window.inventory = null + miscUiState.displaySearchInput = false + destroyFn() + skipClosePacketSending = false + + modelViewerState.model = undefined + }) + if (type === undefined) { + showInventoryPlayer() + } + cleanLoadedImagesCache() + const inv = openItemsCanvas(type) + inv.canvasManager.children[0].mobileHelpers = miscUiState.currentTouch + window.inventory = inv + const PrismarineChat = PrismarineChatLoader(bot.version) + try { + inv.canvasManager.children[0].customTitleText = title ? + typeof title === 'string' ? + fromFormattedString(title).text : + new PrismarineChat(title).toString() : + undefined + } catch (err) { + reportError?.(err) + inv.canvasManager.children[0].customTitleText = undefined + } + // todo + inv.canvasManager.setScale(currentScaling.scale === 1 ? 1.5 : currentScaling.scale) + inv.canvas.style.zIndex = '10' + inv.canvas.style.position = 'fixed' + inv.canvas.style.inset = '0' + + inv.canvasManager.onClose = async () => { + await new Promise(resolve => { + setTimeout(resolve, 0) + }) + if (activeModalStack.at(-1)?.reactType?.includes('player_win:')) { + hideModal(undefined, undefined, { force: true }) + } + inv.canvasManager.destroy() + } + + lastWindow = inv + + upWindowItemsLocal() + + lastWindow.pwindow.touch = miscUiState.currentTouch ?? false + const oldOnInventoryEvent = lastWindow.pwindow.onInventoryEvent.bind(lastWindow.pwindow) + lastWindow.pwindow.onInventoryEvent = (type, containing, windowIndex, inventoryIndex, item) => { + if (inv.canvasManager.children[0].currentGuide) { + const isRightClick = type === 'rightclick' + const isLeftClick = type === 'leftclick' + if (isLeftClick || isRightClick) { + modelViewerState.model = undefined + inv.canvasManager.children[0].showRecipesOrUsages(isLeftClick, item) + } + } else { + oldOnInventoryEvent(type, containing, windowIndex, inventoryIndex, item) + } + } + lastWindow.pwindow.onJeiClick = (slotItem, _index, isRightclick) => { + if (versionToNumber(bot.version) < versionToNumber('1.13')) { + alert('Item give is broken on 1.12.2 and below, we are working on it!') + return + } + // slotItem is the slot from mapSlots + const itemId = loadedData.itemsByName[slotItem.name]?.id + if (!itemId) { + inGameError(`Item for block ${slotItem.name} not found`) + return + } + const item = PrismarineItem.fromNotch({ + ...slotItem, + itemId, + itemCount: isRightclick ? 64 : 1, + components: slotItem.components ?? [], + removeComponents: slotItem.removedComponents ?? [], + itemDamage: slotItem.metadata ?? 0, + nbt: slotItem.nbt, + }) + if (bot.game.gameMode === 'creative') { + const freeSlot = bot.inventory.firstEmptyInventorySlot() + if (freeSlot === null) return + void bot.creative.setInventorySlot(freeSlot, item) + } else { + modelViewerState.model = undefined + inv.canvasManager.children[0].showRecipesOrUsages(!isRightclick, mapSlots([item], true)[0]) + } + } + + const isJeiEnabled = () => { + if (typeof options.jeiEnabled === 'boolean') return options.jeiEnabled + if (Array.isArray(options.jeiEnabled)) { + return options.jeiEnabled.includes(bot.game?.gameMode as any) + } + return false + } + + if (isJeiEnabled()) { + lastWindow.pwindow.win.jeiSlotsPage = 0 + // todo workaround so inventory opens immediately (though it still lags) + setTimeout(() => { + upJei('') + }) + miscUiState.displaySearchInput = true + } else { + lastWindow.pwindow.win.jeiSlots = [] + miscUiState.displaySearchInput = false + } + + if (type === undefined) { + // player inventory + bot.inventory.on('updateSlot', upWindowItemsLocal) + destroyFn = () => { + bot.inventory.off('updateSlot', upWindowItemsLocal) + } + } else { + //@ts-expect-error + bot.currentWindow.on('updateSlot', () => { + upWindowItemsLocal() + }) + } +} + +let destroyFn = () => { } + +export const openPlayerInventory = () => { + openWindow(undefined) +} + +const getResultingRecipe = (slots: Array, gridRows: number) => { + const inputSlotsItems = slots.map(blockSlot => blockSlot?.type) + let currentShape = splitEvery(gridRows, inputSlotsItems as Array) + // todo rewrite with candidates search + if (currentShape.length > 1) { + // eslint-disable-next-line @typescript-eslint/no-for-in-array + for (const slotX in currentShape[0]) { + if (currentShape[0][slotX] !== undefined) { + for (const [otherY] of Array.from({ length: gridRows }).entries()) { + if (currentShape[otherY]?.[slotX] === undefined) { + currentShape[otherY]![slotX] = null + } + } + } + } + } + currentShape = currentShape.map(arr => arr.filter(x => x !== undefined)).filter(x => x.length !== 0) + + // todo rewrite + // eslint-disable-next-line @typescript-eslint/require-array-sort-compare + const slotsIngredients = [...inputSlotsItems].sort().filter(item => item !== undefined) + type Result = RecipeItem | undefined + let shapelessResult: Result + let shapeResult: Result + outer: for (const [id, recipeVariants] of Object.entries(loadedData.recipes ?? {})) { + for (const recipeVariant of recipeVariants) { + if ('inShape' in recipeVariant && equals(currentShape, recipeVariant.inShape as number[][])) { + shapeResult = recipeVariant.result! + break outer + } + if ('ingredients' in recipeVariant && equals(slotsIngredients, recipeVariant.ingredients?.sort() as number[])) { + shapelessResult = recipeVariant.result + break outer + } + } + } + const result = shapeResult ?? shapelessResult + if (!result) return + const id = typeof result === 'number' ? result : Array.isArray(result) ? result[0] : result.id + if (!id) return + const count = (typeof result === 'number' ? undefined : Array.isArray(result) ? result[1] : result.count) ?? 1 + const metadata = typeof result === 'object' && !Array.isArray(result) ? result.metadata : undefined + const item = new PrismarineItem(id, count, metadata) + return item +} + +const ingredientToItem = (recipeItem) => (recipeItem === null ? null : new PrismarineItem(recipeItem, 1)) + +const getAllItemRecipes = (itemName: string) => { + const item = loadedData.itemsByName[itemName] + if (!item) return + const itemId = item.id + const recipes = loadedData.recipes?.[itemId] + if (!recipes) return + const results = [] as Array<{ + result: Item, + ingredients: Array, + description?: string + }> + + // get recipes here + for (const recipe of recipes) { + const { result } = recipe + if (!result) continue + const resultId = typeof result === 'number' ? result : Array.isArray(result) ? result[0]! : result.id + const resultCount = (typeof result === 'number' ? undefined : Array.isArray(result) ? result[1] : result.count) ?? 1 + const resultMetadata = typeof result === 'object' && !Array.isArray(result) ? result.metadata : undefined + const resultItem = new PrismarineItem(resultId!, resultCount, resultMetadata) + if ('inShape' in recipe) { + const ingredients = recipe.inShape + if (!ingredients) continue + + const ingredientsItems = ingredients.flatMap(items => items.map(item => ingredientToItem(item))) + results.push({ result: resultItem, ingredients: ingredientsItems }) + } + if ('ingredients' in recipe) { + const { ingredients } = recipe + if (!ingredients) continue + const ingredientsItems = ingredients.map(item => ingredientToItem(item)) + results.push({ result: resultItem, ingredients: ingredientsItems, description: 'Shapeless' }) + } + } + return results.map(({ result, ingredients, description }) => { + return [ + 'CraftingTableGuide', + mapSlots([result], true)[0], + mapSlots(ingredients, true), + description + ] + }) +} + +const getAllItemUsages = (itemName: string) => { + const item = loadedData.itemsByName[itemName] + if (!item) return + const foundRecipeIds = [] as string[] + + for (const [id, recipes] of Object.entries(loadedData.recipes ?? {})) { + for (const recipe of recipes) { + if ('inShape' in recipe) { + if (recipe.inShape.some(row => row.includes(item.id))) { + foundRecipeIds.push(id) + } + } + if ('ingredients' in recipe) { + if (recipe.ingredients.includes(item.id)) { + foundRecipeIds.push(id) + } + } + } + } + + return foundRecipeIds.flatMap(id => { + // todo should use exact match, not include all recipes! + return getAllItemRecipes(loadedData.items[id].name) + }) +} diff --git a/src/itemsDescriptions.ts b/src/itemsDescriptions.ts new file mode 100644 index 00000000..662d7331 --- /dev/null +++ b/src/itemsDescriptions.ts @@ -0,0 +1,1290 @@ + +export const descriptionGenerators = new Map string)>() +descriptionGenerators.set(/_slab$/, name => 'Craft it by placing 3 blocks of the material in a row in a crafting table.') +descriptionGenerators.set(/_stairs$/, name => 'Craft it by placing 6 blocks of the material in a stair shape in a crafting table.') +descriptionGenerators.set(/_log$/, name => 'You can get it by chopping down a tree. To chop down a tree, hold down the left mouse button until the tree breaks.') +descriptionGenerators.set(/_leaves$/, name => 'You can get it by breaking the leaves of a tree with a tool that has the Silk Touch enchantment or by using shears.') +descriptionGenerators.set(['mangrove_roots'], name => 'You can get it by breaking the roots of a mangrove tree.') +descriptionGenerators.set(['mud'], 'Mud is a block found abundantly in mangrove swamps or created by using a water bottle on a dirt block. It can be used for crafting or converted into clay using pointed dripstone.') +descriptionGenerators.set(['clay'], 'Clay is a block found underwater or created by using a water bottle on a mud block. It can be used for crafting or converted into terracotta using a furnace.') +descriptionGenerators.set(['terracotta'], 'Terracotta is a block created by smelting clay in a furnace. It can be used for crafting or decoration.') +descriptionGenerators.set(['stone'], 'Stone is a block found underground.') +descriptionGenerators.set(['dirt'], 'Dirt is a block found on the surface.') +descriptionGenerators.set(['sand'], 'Sand is a block found on the surface near water.') +descriptionGenerators.set(['gravel'], 'Gravel is a block found on the surface and sometimes underground.') +descriptionGenerators.set(['sandstone'], 'Sandstone is a block found in deserts.') +descriptionGenerators.set(['red_sandstone'], 'Red sandstone is a block found in mesas.') +descriptionGenerators.set(['granite', 'diorite', 'andesite'], name => `${name.charAt(0).toUpperCase() + name.slice(1)} is a block found underground.`) +descriptionGenerators.set(['netherrack', 'soul_sand', 'soul_soil', 'glowstone'], name => `${name.charAt(0).toUpperCase() + name.slice(1)} is a block found in the Nether.`) +descriptionGenerators.set(['end_stone'], 'End stone is a block found in the End.') +descriptionGenerators.set(['obsidian'], 'Obsidian is a block created by pouring water on lava.') +descriptionGenerators.set(['glass'], 'Glass is a block created by smelting sand in a furnace.') +descriptionGenerators.set(['bedrock'], 'Bedrock is an indestructible block found at the bottom of the world in the Overworld and at the top of the world in the Nether.') +descriptionGenerators.set(['water', 'lava'], name => `${name.charAt(0).toUpperCase() + name.slice(1)} is a fluid found in the Overworld.`) +descriptionGenerators.set(/_sapling$/, name => `${name} drops from the leaves of a tree when it decays or is broken. It can be planted on dirt to grow a new tree.`) +descriptionGenerators.set(/^stripped_/, name => `${name} is created by using an axe on the block.`) +descriptionGenerators.set(['sponge'], 'Sponge is a block found in ocean monuments.') +descriptionGenerators.set(/^music_disc_/, name => `Music discs are rare items that can be found in dungeons or by trading with villagers. Also dropped by creepers when killed by a skeleton.`) +descriptionGenerators.set(/^enchanted_book$/, 'Enchanted books are rare items that can be found in dungeons or by trading with villagers.') +descriptionGenerators.set(/_spawn_egg$/, name => `${name} is an item that can be used to spawn a mob in Creative mode. Cannot be obtained in Survival mode.`) +descriptionGenerators.set(/_pottery_sherd$/, name => `${name} can be obtained only by brushing suspicious blocks, with the variants of sherd obtainable being dependent on the structure.`) +descriptionGenerators.set(['cracked_deepslate_bricks'], `Deepslate Bricks and Cracked Deepslate Bricks generate naturally in ancient cities.`) + +const moreGeneratedBlocks = { + 'natural_blocks': { + 'air': { + 'obtained_from': 'Naturally occurs in the world.' + }, + 'deepslate': { + 'obtained_from': 'Mined with a pickaxe in layers -64 to 16.', + 'rarity': 'Common' + }, + 'cobbled_deepslate': { + 'obtained_from': 'Mined from deepslate with any pickaxe.' + }, + 'calcite': { + 'obtained_from': 'Mined with a pickaxe, found in geodes.' + }, + 'tuff': { + 'obtained_from': 'Mined with a pickaxe in layers -64 to 16.', + 'rarity': 'Common' + }, + 'chiseled_tuff': { + 'obtained_from': 'Crafted from tuff.' + }, + 'polished_tuff': { + 'obtained_from': 'Crafted from tuff.' + }, + 'tuff_bricks': { + 'obtained_from': 'Crafted from tuff.' + }, + 'chiseled_tuff_bricks': { + 'obtained_from': 'Crafted from tuff bricks.' + }, + 'grass_block': { + 'obtained_from': 'Mined with a tool enchanted with Silk Touch.' + }, + 'podzol': { + 'obtained_from': 'Mined with a tool enchanted with Silk Touch, found in giant tree taiga biomes.' + }, + 'rooted_dirt': { + 'obtained_from': 'Mined with a shovel, found under azalea trees.' + }, + 'crimson_nylium': { + 'obtained_from': 'Mined with a pickaxe, found in the Nether.' + }, + 'warped_nylium': { + 'obtained_from': 'Mined with a pickaxe, found in the Nether.' + }, + 'cobblestone': { + 'obtained_from': 'Mined from stone, or from breaking stone structures.' + }, + 'mangrove_propagule': { + 'obtained_from': 'Harvested from mangrove trees.' + }, + 'suspicious_sand': { + 'obtained_from': 'Found in deserts and beaches.' + }, + 'suspicious_gravel': { + 'obtained_from': 'Found underwater.' + }, + 'red_sand': { + 'obtained_from': 'Mined from red sand in badlands biomes.' + }, + 'coal_ore': { + 'obtained_from': 'Mined with a pickaxe in layers 0 to 128.', + 'rarity': 'Common' + }, + 'deepslate_coal_ore': { + 'obtained_from': 'Mined with a pickaxe in layers -64 to 0.', + 'rarity': 'Rare' + }, + 'iron_ore': { + 'obtained_from': 'Mined with a pickaxe in layers 0 to 63.', + 'rarity': 'Common' + }, + 'deepslate_iron_ore': { + 'obtained_from': 'Mined with a pickaxe in layers -64 to 0.', + 'rarity': 'Uncommon' + }, + 'copper_ore': { + 'obtained_from': 'Mined with a pickaxe in layers 0 to 96.', + 'rarity': 'Common' + }, + 'deepslate_copper_ore': { + 'obtained_from': 'Mined with a pickaxe in layers -16 to 64.', + 'rarity': 'Uncommon' + }, + 'gold_ore': { + 'obtained_from': 'Mined with a pickaxe in layers -64 to 32.', + 'rarity': 'Uncommon' + }, + 'deepslate_gold_ore': { + 'obtained_from': 'Mined with a pickaxe in layers -64 to 0.', + 'rarity': 'Rare' + }, + 'redstone_ore': { + 'obtained_from': 'Mined with an iron pickaxe or higher in layers -64 to 16.', + 'rarity': 'Uncommon' + }, + 'deepslate_redstone_ore': { + 'obtained_from': 'Mined with an iron pickaxe or higher in layers -64 to 0.', + 'rarity': 'Uncommon' + }, + 'emerald_ore': { + 'obtained_from': 'Mined with an iron pickaxe or higher in mountain biomes, layers -16 to 256.', + 'rarity': 'Rare' + }, + 'deepslate_emerald_ore': { + 'obtained_from': 'Mined with an iron pickaxe or higher in mountain biomes, layers -64 to 0.', + 'rarity': 'Very Rare' + }, + 'lapis_ore': { + 'obtained_from': 'Mined with a stone pickaxe or higher in layers -64 to 32.', + 'rarity': 'Uncommon' + }, + 'deepslate_lapis_ore': { + 'obtained_from': 'Mined with a stone pickaxe or higher in layers -64 to 0.', + 'rarity': 'Rare' + }, + 'diamond_ore': { + 'obtained_from': 'Mined with an iron pickaxe or higher in layers -64 to 16.', + 'rarity': 'Rare' + }, + 'deepslate_diamond_ore': { + 'obtained_from': 'Mined with an iron pickaxe or higher in layers -64 to 0.', + 'rarity': 'Very Rare' + }, + 'nether_gold_ore': { + 'obtained_from': 'Mined with any pickaxe in the Nether.' + }, + 'nether_quartz_ore': { + 'obtained_from': 'Mined with any pickaxe in the Nether.' + }, + 'ancient_debris': { + 'obtained_from': 'Mined with a diamond or netherite pickaxe in the Nether, layers 8 to 22.', + 'rarity': 'Very Rare' + }, + 'budding_amethyst': { + 'obtained_from': 'Found in amethyst geodes, cannot be obtained as an item.' + }, + 'exposed_copper': { + 'obtained_from': 'Exposed copper block obtained through mining.' + }, + 'weathered_copper': { + 'obtained_from': 'Weathered copper block obtained through mining.' + }, + 'oxidized_copper': { + 'obtained_from': 'Oxidized copper block obtained through mining.' + }, + 'chiseled_copper': { + 'obtained_from': 'Crafted from copper blocks.' + }, + 'exposed_chiseled_copper': { + 'obtained_from': 'Exposed chiseled copper block obtained through mining.' + }, + 'weathered_chiseled_copper': { + 'obtained_from': 'Weathered chiseled copper block obtained through mining.' + }, + 'oxidized_chiseled_copper': { + 'obtained_from': 'Oxidized chiseled copper block obtained through mining.' + }, + 'waxed_chiseled_copper': { + 'obtained_from': 'Crafted from copper blocks, waxed to prevent oxidation.' + }, + 'waxed_exposed_chiseled_copper': { + 'obtained_from': 'Waxed exposed chiseled copper block obtained through mining.' + }, + 'waxed_weathered_chiseled_copper': { + 'obtained_from': 'Waxed weathered chiseled copper block obtained through mining.' + }, + 'waxed_oxidized_chiseled_copper': { + 'obtained_from': 'Waxed oxidized chiseled copper block obtained through mining.' + }, + 'crimson_stem': { + 'obtained_from': 'Mined from crimson trees in the Nether.' + }, + 'warped_stem': { + 'obtained_from': 'Mined from warped trees in the Nether.' + }, + 'stripped_crimson_stem': { + 'obtained_from': 'Stripped from crimson stem with an axe.' + }, + 'stripped_warped_stem': { + 'obtained_from': 'Stripped from warped stem with an axe.' + }, + 'stripped_bamboo_block': { + 'obtained_from': 'Crafted from bamboo.' + }, + 'sponge': { + 'obtained_from': 'Found in ocean monuments.' + }, + 'wet_sponge': { + 'obtained_from': 'Absorbs water, can be dried in a furnace.' + }, + 'cobweb': { + 'obtained_from': 'Mined with a sword or shears, found in mineshafts.' + }, + 'short_grass': { + 'obtained_from': 'Sheared from grass.' + }, + 'fern': { + 'obtained_from': 'Sheared from ferns in forest biomes.' + }, + 'azalea': { + 'obtained_from': 'Found in lush caves.' + }, + 'flowering_azalea': { + 'obtained_from': 'Found in lush caves.' + }, + 'dead_bush': { + 'obtained_from': 'Mined with shears in desert biomes.' + }, + 'seagrass': { + 'obtained_from': 'Sheared from underwater grass.' + }, + 'sea_pickle': { + 'obtained_from': 'Mined with shears from coral reefs.' + }, + 'dandelion': { + 'type': 'natural', + 'description': 'Dandelions are common flowers that spawn in plains, forests, and meadows.', + 'spawn_range': 'Surface' + }, + 'poppy': { + 'type': 'natural', + 'description': 'Poppies are common flowers that generate in plains, forests, and meadows.', + 'spawn_range': 'Surface' + }, + 'blue_orchid': { + 'type': 'natural', + 'description': 'Blue orchids spawn naturally in swamp biomes.', + 'spawn_range': 'Surface' + }, + 'allium': { + 'type': 'natural', + 'description': 'Alliums are flowers that generate in flower forest biomes.', + 'spawn_range': 'Surface' + }, + 'azure_bluet': { + 'type': 'natural', + 'description': 'Azure bluets are common flowers that spawn in plains and flower forest biomes.', + 'spawn_range': 'Surface' + }, + 'red_tulip': { + 'type': 'natural', + 'description': 'Red tulips are flowers found in flower forests and plains.', + 'spawn_range': 'Surface' + }, + 'orange_tulip': { + 'type': 'natural', + 'description': 'Orange tulips are flowers found in flower forests and plains.', + 'spawn_range': 'Surface' + }, + 'white_tulip': { + 'type': 'natural', + 'description': 'White tulips are flowers found in flower forests and plains.', + 'spawn_range': 'Surface' + }, + 'pink_tulip': { + 'type': 'natural', + 'description': 'Pink tulips are flowers found in flower forests and plains.', + 'spawn_range': 'Surface' + }, + 'oxeye_daisy': { + 'type': 'natural', + 'description': 'Oxeye daisies are common flowers that generate in plains and flower forest biomes.', + 'spawn_range': 'Surface' + }, + 'cornflower': { + 'type': 'natural', + 'description': 'Cornflowers spawn in plains, flower forests, and meadows.', + 'spawn_range': 'Surface' + }, + 'lily_of_the_valley': { + 'type': 'natural', + 'description': 'Lily of the valleys generate in flower forest biomes.', + 'spawn_range': 'Surface' + }, + 'wither_rose': { + 'type': 'dropped', + 'description': 'Wither roses are dropped when a mob is killed by the Wither boss.', + 'spawn_range': 'N/A' + }, + 'torchflower': { + 'type': 'crafted', + 'description': 'Torchflowers can be grown using torchflower seeds, which are found in archeology loot or by trading.', + 'spawn_range': 'N/A' + }, + 'pitcher_plant': { + 'type': 'crafted', + 'description': 'Pitcher plants can be grown using pitcher pods, which are found in archeology loot or by trading.', + 'spawn_range': 'N/A' + }, + 'spore_blossom': { + 'type': 'natural', + 'description': 'Spore blossoms generate naturally on the ceilings of lush caves.', + 'spawn_range': 'Underground' + }, + 'brown_mushroom': { + 'type': 'natural', + 'description': 'Brown mushrooms are found in dark areas, swamps, mushroom fields, and forests.', + 'spawn_range': 'Surface' + }, + 'red_mushroom': { + 'type': 'natural', + 'description': 'Red mushrooms are found in dark areas, swamps, mushroom fields, and forests.', + 'spawn_range': 'Surface' + }, + 'crimson_fungus': { + 'type': 'natural', + 'description': 'Crimson fungi generate naturally in crimson forests in the Nether.', + 'spawn_range': 'Nether' + }, + 'warped_fungus': { + 'type': 'natural', + 'description': 'Warped fungi generate naturally in warped forests in the Nether.', + 'spawn_range': 'Nether' + }, + 'crimson_roots': { + 'type': 'natural', + 'description': 'Crimson roots generate naturally in crimson forests in the Nether.', + 'spawn_range': 'Nether' + }, + 'warped_roots': { + 'type': 'natural', + 'description': 'Warped roots generate naturally in warped forests in the Nether.', + 'spawn_range': 'Nether' + }, + 'nether_sprouts': { + 'type': 'natural', + 'description': 'Nether sprouts generate naturally in warped forests in the Nether.', + 'spawn_range': 'Nether' + }, + 'weeping_vines': { + 'type': 'natural', + 'description': 'Weeping vines generate naturally in crimson forests in the Nether and grow downward from netherrack.', + 'spawn_range': 'Nether' + }, + 'twisting_vines': { + 'type': 'natural', + 'description': 'Twisting vines generate naturally in warped forests in the Nether and grow upward from the ground.', + 'spawn_range': 'Nether' + }, + 'sugar_cane': { + 'type': 'natural', + 'description': 'Sugar cane is found near water in most biomes.', + 'spawn_range': 'Surface' + }, + 'kelp': { + 'type': 'natural', + 'description': 'Kelp generates underwater in most ocean biomes.', + 'spawn_range': 'Water' + }, + 'pink_petals': { + 'type': 'natural', + 'description': 'Pink petals generate naturally in cherry grove biomes.', + 'spawn_range': 'Surface' + }, + 'moss_block': { + 'type': 'natural', + 'description': 'Moss blocks generate in lush caves and can also be obtained through trading or by using bone meal on moss carpets.', + 'spawn_range': 'Underground' + }, + 'hanging_roots': { + 'type': 'natural', + 'description': 'Hanging roots generate naturally in lush caves.', + 'spawn_range': 'Underground' + }, + 'big_dripleaf': { + 'type': 'natural', + 'description': 'Big dripleaf plants generate in lush caves and can also be obtained through trading.', + 'spawn_range': 'Underground' + }, + 'small_dripleaf': { + 'type': 'natural', + 'description': 'Small dripleaf plants generate in lush caves and can also be obtained through trading.', + 'spawn_range': 'Underground' + }, + 'bamboo': { + 'type': 'natural', + 'description': 'Bamboo generates in jungle biomes, especially bamboo jungles.', + 'spawn_range': 'Surface' + }, + 'smooth_quartz': { + 'type': 'crafted', + 'description': 'Smooth quartz is obtained by smelting blocks of quartz.', + 'spawn_range': 'N/A' + }, + 'smooth_red_sandstone': { + 'type': 'crafted', + 'description': 'Smooth red sandstone is obtained by smelting red sandstone.', + 'spawn_range': 'N/A' + }, + 'smooth_sandstone': { + 'type': 'crafted', + 'description': 'Smooth sandstone is obtained by smelting sandstone.', + 'spawn_range': 'N/A' + }, + 'smooth_stone': { + 'type': 'crafted', + 'description': 'Smooth stone is obtained by smelting regular stone.', + 'spawn_range': 'N/A' + }, + 'chorus_plant': { + 'type': 'natural', + 'description': 'Chorus plants generate naturally in the End and can be grown from chorus flowers.', + 'spawn_range': 'End' + }, + 'chorus_flower': { + 'type': 'natural', + 'description': 'Chorus flowers generate naturally in the End on top of chorus plants.', + 'spawn_range': 'End' + }, + 'spawner': { + 'type': 'natural', + 'description': 'Spawners generate in dungeons, mineshafts, and other structures.', + 'spawn_range': 'Underground' + }, + 'farmland': { + 'type': 'crafted', + 'description': 'Farmland is created by using a hoe on dirt or grass blocks.', + 'spawn_range': 'N/A' + }, + 'ice': { + 'type': 'natural', + 'description': 'Ice generates in snowy and icy biomes and can also be obtained by breaking ice blocks with a Silk Touch tool.', + 'spawn_range': 'Surface' + }, + 'cactus': { + 'type': 'natural', + 'description': 'Cacti generate naturally in desert biomes.', + 'spawn_range': 'Surface' + }, + 'pumpkin': { + 'type': 'natural', + 'description': 'Pumpkins generate naturally in most grassy biomes and can also be grown from pumpkin seeds.', + 'spawn_range': 'Surface' + }, + 'carved_pumpkin': { + 'type': 'crafted', + 'description': 'Carved pumpkins are obtained by using shears on a pumpkin.', + 'spawn_range': 'N/A' + }, + 'basalt': { + 'type': 'natural', + 'description': 'Basalt generates in the Nether in basalt deltas and can also be created by lava flowing over soul soil next to blue ice.', + 'spawn_range': 'Nether' + }, + 'smooth_basalt': { + 'type': 'natural', + 'description': 'Smooth basalt is found around amethyst geodes or can be obtained by smelting basalt.', + 'spawn_range': 'Underground' + }, + 'infested_stone': { + 'type': 'natural', + 'description': 'Infested stone blocks contain silverfish and generate in strongholds, underground.', + 'spawn_range': 'Underground' + }, + 'infested_cobblestone': { + 'type': 'natural', + 'description': 'Infested cobblestone blocks contain silverfish and generate in strongholds, underground.', + 'spawn_range': 'Underground' + }, + 'infested_stone_bricks': { + 'type': 'natural', + 'description': 'Infested stone bricks contain silverfish and generate in strongholds, underground.', + 'spawn_range': 'Underground' + }, + 'infested_mossy_stone_bricks': { + 'type': 'natural', + 'description': 'Infested mossy stone bricks contain silverfish and generate in strongholds, underground.', + 'spawn_range': 'Underground' + }, + 'infested_cracked_stone_bricks': { + 'type': 'natural', + 'description': 'Infested cracked stone bricks contain silverfish and generate in strongholds, underground.', + 'spawn_range': 'Underground' + }, + 'infested_chiseled_stone_bricks': { + 'type': 'natural', + 'description': 'Infested chiseled stone bricks contain silverfish and generate in strongholds, underground.', + 'spawn_range': 'Underground' + }, + 'infested_deepslate': { + 'type': 'natural', + 'description': 'Infested deepslate contains silverfish and generates in the deepslate layer underground.', + 'spawn_range': 'Underground' + }, + 'cracked_stone_bricks': { + 'type': 'crafted', + 'description': 'Cracked stone bricks are obtained by smelting stone bricks.', + 'spawn_range': 'N/A' + }, + 'cracked_deepslate_bricks': { + 'type': 'crafted', + 'description': 'Cracked deepslate bricks are obtained by smelting deepslate bricks.', + 'spawn_range': 'N/A' + }, + 'cracked_deepslate_tiles': { + 'type': 'crafted', + 'description': 'Cracked deepslate tiles are obtained by smelting deepslate tiles.', + 'spawn_range': 'N/A' + }, + 'reinforced_deepslate': { + 'type': 'crafted', + 'description': 'Reinforced deepslate is a strong block that cannot be obtained in survival mode.', + 'spawn_range': 'N/A' + }, + 'brown_mushroom_block': { + 'type': 'natural', + 'description': 'Brown mushroom blocks generate as part of huge mushrooms in dark forest biomes and mushroom fields.', + 'spawn_range': 'Surface' + }, + 'red_mushroom_block': { + 'type': 'natural', + 'description': 'Red mushroom blocks generate as part of huge mushrooms in dark forest biomes and mushroom fields.', + 'spawn_range': 'Surface' + }, + 'mushroom_stem': { + 'type': 'natural', + 'description': 'Mushroom stems generate as part of huge mushrooms in dark forest biomes and mushroom fields.', + 'spawn_range': 'Surface' + }, + 'vine': { + 'type': 'natural', + 'description': 'Vines generate naturally on trees and walls in jungle biomes, swamps, and lush caves.', + 'spawn_range': 'Surface' + }, + 'glow_lichen': { + 'type': 'natural', + 'description': 'Glow lichen generates naturally in caves and can spread to other blocks using bone meal.', + 'spawn_range': 'Underground' + }, + 'mycelium': { + 'type': 'natural', + 'description': 'Mycelium generates naturally in mushroom field biomes and spreads to dirt blocks.', + 'spawn_range': 'Surface' + }, + 'lily_pad': { + 'type': 'natural', + 'description': 'Lily pads generate naturally on the surface of water in swamps.', + 'spawn_range': 'Water' + }, + 'cracked_nether_bricks': { + 'type': 'crafted', + 'description': 'Cracked nether bricks are obtained by smelting nether bricks.', + 'spawn_range': 'N/A' + }, + 'sculk': { + 'type': 'natural', + 'description': 'Sculk generates naturally in the deep dark biome and spreads using a sculk catalyst.', + 'spawn_range': 'Underground' + }, + 'sculk_vein': { + 'type': 'natural', + 'description': 'Sculk veins generate naturally in the deep dark biome and spread using a sculk catalyst.', + 'spawn_range': 'Underground' + }, + 'sculk_catalyst': { + 'type': 'natural', + 'description': 'Sculk catalysts generate naturally in the deep dark biome and spread sculk blocks when mobs die nearby.', + 'spawn_range': 'Underground' + }, + 'sculk_shrieker': { + 'type': 'natural', + 'description': 'Sculk shriekers generate naturally in the deep dark biome and emit a loud shriek when activated.', + 'spawn_range': 'Underground' + }, + 'end_portal_frame': { + 'type': 'natural', + 'description': 'End portal frames generate naturally in strongholds, forming the structure of end portals.', + 'spawn_range': 'Underground' + }, + 'dragon_egg': { + 'type': 'dropped', + 'description': 'The dragon egg is dropped when the Ender Dragon is defeated for the first time.', + 'spawn_range': 'End' + }, + 'command_block': { + 'type': 'crafted', + 'description': 'Command blocks are powerful blocks used in commands and redstone, obtainable only via commands.', + 'spawn_range': 'N/A' + }, + 'chipped_anvil': { + 'type': 'crafted', + 'description': 'Chipped anvils are damaged versions of anvils and are used for repairing and enchanting.', + 'spawn_range': 'N/A' + }, + 'damaged_anvil': { + 'type': 'crafted', + 'description': 'Damaged anvils are further damaged versions of anvils and are used for repairing and enchanting.', + 'spawn_range': 'N/A' + }, + 'barrier': { + 'type': 'crafted', + 'description': 'Barriers are invisible blocks used in map-making and obtainable only via commands.', + 'spawn_range': 'N/A' + }, + 'light': { + 'type': 'crafted', + 'description': 'Light blocks are invisible blocks that emit light, obtainable only via commands.', + 'spawn_range': 'N/A' + }, + 'dirt_path': { + 'type': 'crafted', + 'description': 'Dirt paths are created by using a shovel on grass blocks and are commonly found in villages.', + 'spawn_range': 'Surface' + }, + 'sunflower': { + 'type': 'natural', + 'description': 'Sunflowers generate naturally in sunflower plains biomes.', + 'spawn_range': 'Surface' + }, + 'lilac': { + 'type': 'natural', + 'description': 'Lilacs generate naturally in forest biomes.', + 'spawn_range': 'Surface' + }, + 'rose_bush': { + 'type': 'natural', + 'description': 'Rose bushes generate naturally in forest biomes.', + 'spawn_range': 'Surface' + }, + 'peony': { + 'type': 'natural', + 'description': 'Peonies generate naturally in forest biomes.', + 'spawn_range': 'Surface' + }, + 'tall_grass': { + 'type': 'natural', + 'description': 'Tall grass generates naturally in various biomes and can be grown using bone meal.', + 'spawn_range': 'Surface' + }, + 'large_fern': { + 'type': 'natural', + 'description': 'Large ferns generate naturally in taiga biomes.', + 'spawn_range': 'Surface' + }, + 'repeating_command_block': { + 'type': 'crafted', + 'description': 'Repeating command blocks execute commands every tick and are obtainable only via commands.', + 'spawn_range': 'N/A' + }, + 'chain_command_block': { + 'type': 'crafted', + 'description': 'Chain command blocks execute commands when triggered and are obtainable only via commands.', + 'spawn_range': 'N/A' + }, + 'warped_wart_block': { + 'type': 'natural', + 'description': 'Warped wart blocks generate naturally in warped forests in the Nether.', + 'spawn_range': 'Nether' + }, + 'structure_void': { + 'type': 'crafted', + 'description': 'Structure voids are used in structure blocks to exclude certain blocks from being saved and are obtainable only via commands.', + 'spawn_range': 'N/A' + }, + 'white_shulker_box': { + 'type': 'crafted', + 'description': 'White shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'orange_shulker_box': { + 'type': 'crafted', + 'description': 'Orange shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'magenta_shulker_box': { + 'type': 'crafted', + 'description': 'Magenta shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'light_blue_shulker_box': { + 'type': 'crafted', + 'description': 'Light blue shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'yellow_shulker_box': { + 'type': 'crafted', + 'description': 'Yellow shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'lime_shulker_box': { + 'type': 'crafted', + 'description': 'Lime shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'pink_shulker_box': { + 'type': 'crafted', + 'description': 'Pink shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'gray_shulker_box': { + 'type': 'crafted', + 'description': 'Gray shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'light_gray_shulker_box': { + 'type': 'crafted', + 'description': 'Light gray shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'cyan_shulker_box': { + 'type': 'crafted', + 'description': 'Cyan shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'purple_shulker_box': { + 'type': 'crafted', + 'description': 'Purple shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'blue_shulker_box': { + 'type': 'crafted', + 'description': 'Blue shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'brown_shulker_box': { + 'type': 'crafted', + 'description': 'Brown shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'green_shulker_box': { + 'type': 'crafted', + 'description': 'Green shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'red_shulker_box': { + 'type': 'crafted', + 'description': 'Red shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'black_shulker_box': { + 'type': 'crafted', + 'description': 'Black shulker boxes are crafted from shulker shells and dye, and they function as portable storage.', + 'spawn_range': 'N/A' + }, + 'white_glazed_terracotta': { + 'type': 'crafted', + 'description': 'White glazed terracotta is obtained by smelting white terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'orange_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Orange glazed terracotta is obtained by smelting orange terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'magenta_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Magenta glazed terracotta is obtained by smelting magenta terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'light_blue_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Light blue glazed terracotta is obtained by smelting light blue terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'yellow_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Yellow glazed terracotta is obtained by smelting yellow terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'lime_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Lime glazed terracotta is obtained by smelting lime terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'pink_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Pink glazed terracotta is obtained by smelting pink terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'gray_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Gray glazed terracotta is obtained by smelting gray terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'light_gray_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Light gray glazed terracotta is obtained by smelting light gray terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'cyan_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Cyan glazed terracotta is obtained by smelting cyan terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'purple_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Purple glazed terracotta is obtained by smelting purple terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'blue_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Blue glazed terracotta is obtained by smelting blue terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'brown_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Brown glazed terracotta is obtained by smelting brown terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'green_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Green glazed terracotta is obtained by smelting green terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'red_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Red glazed terracotta is obtained by smelting red terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'black_glazed_terracotta': { + 'type': 'crafted', + 'description': 'Black glazed terracotta is obtained by smelting black terracotta and features decorative patterns.', + 'spawn_range': 'N/A' + }, + 'white_concrete': { + 'type': 'crafted', + 'description': 'White concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'orange_concrete': { + 'type': 'crafted', + 'description': 'Orange concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'magenta_concrete': { + 'type': 'crafted', + 'description': 'Magenta concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'light_blue_concrete': { + 'type': 'crafted', + 'description': 'Light blue concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'yellow_concrete': { + 'type': 'crafted', + 'description': 'Yellow concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'lime_concrete': { + 'type': 'crafted', + 'description': 'Lime concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'pink_concrete': { + 'type': 'crafted', + 'description': 'Pink concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'gray_concrete': { + 'type': 'crafted', + 'description': 'Gray concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'light_gray_concrete': { + 'type': 'crafted', + 'description': 'Light gray concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'cyan_concrete': { + 'type': 'crafted', + 'description': 'Cyan concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'purple_concrete': { + 'type': 'crafted', + 'description': 'Purple concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'blue_concrete': { + 'type': 'crafted', + 'description': 'Blue concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'brown_concrete': { + 'type': 'crafted', + 'description': 'Brown concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'green_concrete': { + 'type': 'crafted', + 'description': 'Green concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'red_concrete': { + 'type': 'crafted', + 'description': 'Red concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'black_concrete': { + 'type': 'crafted', + 'description': 'Black concrete is crafted from concrete powder and hardens when in contact with water.', + 'spawn_range': 'N/A' + }, + 'white_concrete_powder': { + 'type': 'crafted', + 'description': 'White concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'orange_concrete_powder': { + 'type': 'crafted', + 'description': 'Orange concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'magenta_concrete_powder': { + 'type': 'crafted', + 'description': 'Magenta concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'light_blue_concrete_powder': { + 'type': 'crafted', + 'description': 'Light blue concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'yellow_concrete_powder': { + 'type': 'crafted', + 'description': 'Yellow concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'lime_concrete_powder': { + 'type': 'crafted', + 'description': 'Lime concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'pink_concrete_powder': { + 'type': 'crafted', + 'description': 'Pink concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'gray_concrete_powder': { + 'type': 'crafted', + 'description': 'Gray concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'light_gray_concrete_powder': { + 'type': 'crafted', + 'description': 'Light gray concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'cyan_concrete_powder': { + 'type': 'crafted', + 'description': 'Cyan concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'purple_concrete_powder': { + 'type': 'crafted', + 'description': 'Purple concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'blue_concrete_powder': { + 'type': 'crafted', + 'description': 'Blue concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'brown_concrete_powder': { + 'type': 'crafted', + 'description': 'Brown concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'green_concrete_powder': { + 'type': 'crafted', + 'description': 'Green concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'red_concrete_powder': { + 'type': 'crafted', + 'description': 'Red concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'black_concrete_powder': { + 'type': 'crafted', + 'description': 'Black concrete powder is crafted from sand, gravel, and dye, and hardens into concrete when in contact with water.', + 'spawn_range': 'N/A' + }, + 'cyan_candle': { + 'type': 'crafted', + 'description': 'Cyan candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'pink_candle': { + 'type': 'crafted', + 'description': 'Pink candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'purple_candle': { + 'type': 'crafted', + 'description': 'Purple candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'blue_candle': { + 'type': 'crafted', + 'description': 'Blue candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'brown_candle': { + 'type': 'crafted', + 'description': 'Brown candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'green_candle': { + 'type': 'crafted', + 'description': 'Green candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'red_candle': { + 'type': 'crafted', + 'description': 'Red candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'black_candle': { + 'type': 'crafted', + 'description': 'Black candles are crafted from string and dye and can be placed on blocks to emit light.', + 'spawn_range': 'N/A' + }, + 'turtle_egg': 'can be obtained via turtle breeding on beaches, where turtles lay eggs that can be collected.', + 'sniffer_egg': 'can be found in buried treasure or ancient ruins, used to hatch sniffers.', + 'dead_tube_coral_block': 'can be obtained by mining tube coral blocks with a pickaxe without Silk Touch or when exposed to air.', + 'dead_brain_coral_block': 'can be obtained by mining brain coral blocks with a pickaxe without Silk Touch or when exposed to air.', + 'dead_bubble_coral_block': 'can be obtained by mining bubble coral blocks with a pickaxe without Silk Touch or when exposed to air.', + 'dead_fire_coral_block': 'can be obtained by mining fire coral blocks with a pickaxe without Silk Touch or when exposed to air.', + 'dead_horn_coral_block': 'can be obtained by mining horn coral blocks with a pickaxe without Silk Touch or when exposed to air.', + 'tube_coral_block': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'brain_coral_block': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'bubble_coral_block': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'fire_coral_block': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'horn_coral_block': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'tube_coral': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'brain_coral': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'bubble_coral': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'fire_coral': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'horn_coral': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'dead_brain_coral': 'can be obtained by mining brain coral without Silk Touch or when exposed to air.', + 'dead_bubble_coral': 'can be obtained by mining bubble coral without Silk Touch or when exposed to air.', + 'dead_fire_coral': 'can be obtained by mining fire coral without Silk Touch or when exposed to air.', + 'dead_horn_coral': 'can be obtained by mining horn coral without Silk Touch or when exposed to air.', + 'dead_tube_coral': 'can be obtained by mining tube coral without Silk Touch or when exposed to air.', + 'tube_coral_fan': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'brain_coral_fan': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'bubble_coral_fan': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'fire_coral_fan': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'horn_coral_fan': 'can be obtained by mining with a pickaxe enchanted with Silk Touch, found in warm ocean biomes.', + 'dead_tube_coral_fan': 'can be obtained by mining tube coral fans without Silk Touch or when exposed to air.', + 'dead_brain_coral_fan': 'can be obtained by mining brain coral fans without Silk Touch or when exposed to air.', + 'dead_bubble_coral_fan': 'can be obtained by mining bubble coral fans without Silk Touch or when exposed to air.', + 'dead_fire_coral_fan': 'can be obtained by mining fire coral fans without Silk Touch or when exposed to air.', + 'dead_horn_coral_fan': 'can be obtained by mining horn coral fans without Silk Touch or when exposed to air.', + 'sculk_sensor': 'can be obtained via Silk Touch enchantment on a pickaxe or found in ancient cities in the deep dark biome.', + 'copper_door': 'can be crafted using copper ingots.', + 'exposed_copper_door': 'can be obtained by allowing copper doors to oxidize or can be crafted directly.', + 'weathered_copper_door': 'can be obtained by allowing exposed copper doors to further oxidize or can be crafted directly.', + 'oxidized_copper_door': 'can be obtained by allowing weathered copper doors to fully oxidize or can be crafted directly.', + 'waxed_copper_door': 'can be crafted using copper ingots and honeycomb.', + 'waxed_exposed_copper_door': 'can be crafted using exposed copper doors and honeycomb.', + 'waxed_weathered_copper_door': 'can be crafted using weathered copper doors and honeycomb.', + 'waxed_oxidized_copper_door': 'can be crafted using oxidized copper doors and honeycomb.', + 'copper_trapdoor': 'can be crafted using copper ingots.', + 'exposed_copper_trapdoor': 'can be obtained by allowing copper trapdoors to oxidize or can be crafted directly.', + 'weathered_copper_trapdoor': 'can be obtained by allowing exposed copper trapdoors to further oxidize or can be crafted directly.', + 'oxidized_copper_trapdoor': 'can be obtained by allowing weathered copper trapdoors to fully oxidize or can be crafted directly.', + 'waxed_copper_trapdoor': 'can be crafted using copper ingots and honeycomb.', + 'waxed_exposed_copper_trapdoor': 'can be crafted using exposed copper trapdoors and honeycomb.', + 'waxed_weathered_copper_trapdoor': 'can be crafted using weathered copper trapdoors and honeycomb.', + 'waxed_oxidized_copper_trapdoor': 'can be crafted using oxidized copper trapdoors and honeycomb.', + 'saddle': 'can be obtained from fishing, dungeon chests, or trading with leatherworkers.', + 'elytra': 'can be found in end ships within end cities.', + 'structure_block': 'can be obtained using commands or in creative mode, used to save and load structures.', + 'jigsaw': 'can be obtained using commands or in creative mode, used to generate structures.', + 'scute': 'can be obtained when baby turtles grow into adults.', + 'apple': 'can be obtained by breaking oak and dark oak leaves or found in chests.', + 'charcoal': 'can be obtained by smelting logs or wood in a furnace.', + 'quartz': 'can be obtained by mining nether quartz ore in the Nether.', + 'amethyst_shard': 'can be obtained by mining amethyst clusters found in geodes with a pickaxe.', + 'netherite_scrap': 'can be obtained by smelting ancient debris found in the Nether.', + 'netherite_sword': 'can be crafted using a diamond sword and netherite ingot.', + 'netherite_shovel': 'can be crafted using a diamond shovel and netherite ingot.', + 'netherite_pickaxe': 'can be crafted using a diamond pickaxe and netherite ingot.', + 'netherite_axe': 'can be crafted using a diamond axe and netherite ingot.', + 'netherite_hoe': 'can be crafted using a diamond hoe and netherite ingot.', + 'string': 'can be obtained from killing spiders or breaking cobwebs.', + 'feather': 'can be obtained from killing chickens.', + 'gunpowder': 'can be obtained from killing creepers, ghasts, and witches.', + 'wheat_seeds': 'can be obtained by breaking tall grass or harvesting wheat crops.', + 'chainmail_helmet': 'can be obtained from chest loot, trading with villagers, or killing mobs wearing it.', + 'chainmail_chestplate': 'can be obtained from chest loot, trading with villagers, or killing mobs wearing it.', + 'chainmail_leggings': 'can be obtained from chest loot, trading with villagers, or killing mobs wearing it.', + 'chainmail_boots': 'can be obtained from chest loot, trading with villagers, or killing mobs wearing it.', + 'netherite_helmet': 'can be crafted using a diamond helmet and netherite ingot.', + 'netherite_chestplate': 'can be crafted using a diamond chestplate and netherite ingot.', + 'netherite_leggings': 'can be crafted using diamond leggings and netherite ingot.', + 'netherite_boots': 'can be crafted using diamond boots and netherite ingot.', + 'flint': 'can be obtained by breaking gravel blocks.', + 'porkchop': 'can be obtained by killing pigs.', + 'cooked_porkchop': 'can be obtained by cooking porkchop in a furnace, smoker, or campfire.', + 'enchanted_golden_apple': 'can be found in dungeon, bastion remnant, and mineshaft chests.', + 'water_bucket': 'can be obtained by using a bucket on a water source block.', + 'lava_bucket': 'can be obtained by using a bucket on a lava source block.', + 'powder_snow_bucket': 'can be obtained by using a bucket on powder snow.', + 'snowball': 'can be obtained by breaking snow blocks or using a shovel on snow.', + 'milk_bucket': 'can be obtained by using a bucket on a cow or mooshroom.', + 'pufferfish_bucket': 'can be obtained by using a bucket on a pufferfish in water.', + 'salmon_bucket': 'can be obtained by using a bucket on a salmon in water.', + 'cod_bucket': 'can be obtained by using a bucket on a cod in water.', + 'tropical_fish_bucket': 'can be obtained by using a bucket on a tropical fish in water.', + 'axolotl_bucket': 'can be obtained by using a bucket on an axolotl in water.', + 'tadpole_bucket': 'can be obtained by using a bucket on a tadpole in water.', + 'brick': 'can be obtained by smelting clay in a furnace.', + 'clay_ball': 'can be obtained by breaking clay blocks or from chest loot.', + 'egg': 'can be obtained from chickens periodically.', + 'bundle': 'can be crafted using rabbit hide and string.', + 'glowstone_dust': 'can be obtained by breaking glowstone blocks or killing witches.', + 'cod': 'can be obtained by fishing or killing cod in water.', + 'salmon': 'can be obtained by fishing or killing salmon in water.', + 'tropical_fish': 'can be obtained by fishing or killing tropical fish in water.', + 'pufferfish': 'can be obtained by fishing or killing pufferfish in water.', + 'cooked_cod': 'can be obtained by cooking cod in a furnace, smoker, or campfire.', + 'cooked_salmon': 'can be obtained by cooking salmon in a furnace, smoker, or campfire.', + 'ink_sac': 'can be obtained by killing squid or as loot from wandering traders.', + 'glow_ink_sac': 'can be obtained by killing glow squid.', + 'cocoa_beans': 'can be obtained from cocoa pods found on jungle trees.', + 'green_dye': 'can be obtained by smelting cactus in a furnace.', + 'bone': 'can be obtained by killing skeletons or from chest loot.', + 'crafter': 'can be obtained via crafting using specific materials (details vary by mod or version).', + 'filled_map': 'can be obtained by using an empty map item.', + 'melon_slice': 'can be obtained by breaking melon blocks.', + 'beef': 'can be obtained by killing cows.', + 'cooked_beef': 'can be obtained by cooking beef in a furnace, smoker, or campfire.', + 'chicken': 'can be obtained by killing chickens.', + 'cooked_chicken': 'can be obtained by cooking chicken in a furnace, smoker, or campfire.', + 'rotten_flesh': 'can be obtained by killing zombies or drowned.', + 'ender_pearl': 'can be obtained by killing endermen.', + 'blaze_rod': 'can be obtained by killing blazes in the Nether.', + 'ghast_tear': 'can be obtained by killing ghasts in the Nether.', + 'nether_wart': 'can be found in Nether fortresses and bastion remnants.', + 'potion': 'can be brewed using a brewing stand with various ingredients.', + 'spider_eye': 'can be obtained by killing spiders or witches.', + 'experience_bottle': 'can be obtained from trading with villagers or found in chest loot.', + 'written_book': 'can be crafted using a book and quill after writing in it.', + 'carrot': 'can be obtained by harvesting carrot crops or found in village farms.', + 'potato': 'can be obtained by harvesting potato crops or found in village farms.', + 'baked_potato': 'can be obtained by cooking potatoes in a furnace, smoker, or campfire.', + 'poisonous_potato': 'can be obtained by harvesting potato crops (rare chance).', + 'skeleton_skull': 'can be obtained by killing skeletons with a charged creeper explosion.', + 'wither_skeleton_skull': 'can be obtained by killing wither skeletons (rare drop).', + 'player_head': 'can be obtained via commands or by killing players in certain conditions (e.g., with a charged creeper).', + 'zombie_head': 'can be obtained by killing zombies with a charged creeper explosion.', + 'creeper_head': 'can be obtained by killing creepers with a charged creeper explosion.', + 'dragon_head': 'can be found at the end of end ships in end cities.', + 'piglin_head': 'can be obtained by killing piglins with a charged creeper explosion.', + 'nether_star': 'can be obtained by defeating the Wither boss.', + 'firework_star': 'can be crafted using gunpowder and dye.', + 'nether_brick': 'can be obtained by smelting netherrack in a furnace or found in Nether fortresses.', + 'prismarine_shard': 'can be obtained by killing guardians and elder guardians.', + 'prismarine_crystals': 'can be obtained by killing guardians and elder guardians or breaking sea lanterns.', + 'rabbit': 'can be obtained by killing rabbits.', + 'cooked_rabbit': 'can be obtained by cooking rabbit in a furnace, smoker, or campfire.', + 'rabbit_foot': 'can be obtained by killing rabbits (rare drop).', + 'rabbit_hide': 'can be obtained by killing rabbits.', + 'iron_horse_armor': 'can be found in dungeon, temple, and stronghold chests.', + 'golden_horse_armor': 'can be found in dungeon, temple, and stronghold chests.', + 'diamond_horse_armor': 'can be found in dungeon, temple, and stronghold chests.', + 'name_tag': 'can be obtained by fishing, dungeon chests, or trading with librarians.', + 'command_block_minecart': 'can be obtained using commands in creative mode.', + 'mutton': 'can be obtained by killing sheep.', + 'cooked_mutton': 'can be obtained by cooking mutton in a furnace, smoker, or campfire.', + 'chorus_fruit': 'can be obtained by breaking chorus plants found in the End.', + 'popped_chorus_fruit': 'can be obtained by smelting chorus fruit in a furnace.', + 'torchflower_seeds': 'can be obtained from torchflower plants, used for breeding and decoration.', + 'pitcher_pod': 'can be obtained from pitcher plants, used for breeding and decoration.', + 'beetroot': 'can be obtained by harvesting beetroot crops or found in village farms.', + 'beetroot_seeds': 'can be obtained by harvesting beetroot crops or from chests.', + 'dragon_breath': 'can be obtained by using an empty bottle on the ender dragon\'s breath attack.', + 'splash_potion': 'can be brewed using a brewing stand and gunpowder with various potions.', + 'tipped_arrow': 'can be crafted using arrows and lingering potions.', + 'lingering_potion': 'can be brewed using a brewing stand and dragon\'s breath with various potions.', + 'totem_of_undying': 'can be obtained by killing evokers in woodland mansions and during raids.', + 'shulker_shell': 'can be obtained by killing shulkers in end cities.', + 'knowledge_book': 'can be obtained using commands or given in custom advancements.', + 'debug_stick': 'can be obtained using commands in creative mode.', + 'disc_fragment_5': 'can be found in ancient city chests, used to craft music disc 5.', + 'trident': 'can be obtained by killing drowned (rare drop).', + 'phantom_membrane': 'can be obtained by killing phantoms.', + 'nautilus_shell': 'can be obtained from fishing, drowned, or wandering traders.', + 'heart_of_the_sea': 'can be found in buried treasure chests.', + 'suspicious_stew': 'can be crafted using mushrooms and various flowers or found in chests.', + 'globe_banner_pattern': 'can be obtained from trading with cartographer villagers.', + 'piglin_banner_pattern': 'can be obtained from bastion remnant chests.', + 'goat_horn': 'can be obtained when a goat rams a solid block.', + 'bell': 'can be obtained from village structures or crafted using iron ingots and wood.', + 'sweet_berries': 'can be obtained from sweet berry bushes found in taiga biomes.', + 'glow_berries': 'can be found in lush cave biomes or by trading with wandering traders.', + 'shroomlight': 'can be obtained by breaking shroomlights found in Nether forests.', + 'honeycomb': 'can be obtained by using shears on beehives or bee nests.', + 'bee_nest': 'can be found in forest biomes with birch or oak trees, especially in flower forests.', + 'crying_obsidian': 'can be found in ruined portals, bastion remnants, or bartered from piglins.', + 'blackstone': 'can be found in basalt deltas, bastion remnants, or crafted from polished blackstone.', + 'gilded_blackstone': 'can be found in bastion remnants.', + 'cracked_polished_blackstone_bricks': 'can be obtained by smelting polished blackstone bricks.', + 'small_amethyst_bud': 'can be found growing in amethyst geodes.', + 'medium_amethyst_bud': 'can be found growing in amethyst geodes.', + 'large_amethyst_bud': 'can be found growing in amethyst geodes.', + 'amethyst_cluster': 'can be found growing in amethyst geodes.', + 'pointed_dripstone': 'can be found in dripstone caves or created by placing a dripstone block under a water source block.', + 'ochre_froglight': 'can be obtained by leading a frog to eat a magma cube, dropping this item.', + 'verdant_froglight': 'can be obtained by leading a frog to eat a magma cube, dropping this item.', + 'pearlescent_froglight': 'can be obtained by leading a frog to eat a magma cube, dropping this item.', + 'frogspawn': 'Frogspawn is an item that can be found in the game Minecraft and is primarily used to breed frogs.', + 'echo_shard': 'Echo Shard is an item in Minecraft Dungeons, primarily used as a currency for trading with Piglin vendors.', + 'copper_grate': 'Copper Grate is a block in Minecraft that can be crafted from copper ingots, primarily used as a decorative block.', + 'exposed_copper_grate': 'Exposed Copper Grate is a variant of Copper Grate in Minecraft that has weathered to the exposed state over time.', + 'weathered_copper_grate': 'Weathered Copper Grate is a variant of Copper Grate in Minecraft that has weathered to the weathered state over time.', + 'oxidized_copper_grate': 'Oxidized Copper Grate is a variant of Copper Grate in Minecraft that has weathered to the oxidized state over time.', + 'waxed_copper_grate': 'Waxed Copper Grate is a variant of Copper Grate in Minecraft that has been waxed to prevent further weathering.', + 'waxed_exposed_copper_grate': 'Waxed Exposed Copper Grate is a variant of Exposed Copper Grate in Minecraft that has been waxed to prevent further weathering.', + 'waxed_weathered_copper_grate': 'Waxed Weathered Copper Grate is a variant of Weathered Copper Grate in Minecraft that has been waxed to prevent further weathering.', + 'waxed_oxidized_copper_grate': 'Waxed Oxidized Copper Grate is a variant of Oxidized Copper Grate in Minecraft that has been waxed to prevent further weathering.', + 'copper_bulb': 'Copper Bulb is a block in Minecraft that can be crafted from copper ingots, primarily used as a decorative block.', + 'exposed_copper_bulb': 'Exposed Copper Bulb is a variant of Copper Bulb in Minecraft that has weathered to the exposed state over time.', + 'weathered_copper_bulb': 'Weathered Copper Bulb is a variant of Copper Bulb in Minecraft that has weathered to the weathered state over time.', + 'oxidized_copper_bulb': 'Oxidized Copper Bulb is a variant of Copper Bulb in Minecraft that has weathered to the oxidized state over time.', + 'waxed_copper_bulb': 'Waxed Copper Bulb is a variant of Copper Bulb in Minecraft that has been waxed to prevent further weathering.', + 'waxed_exposed_copper_bulb': 'Waxed Exposed Copper Bulb is a variant of Exposed Copper Bulb in Minecraft that has been waxed to prevent further weathering.', + 'waxed_weathered_copper_bulb': 'Waxed Weathered Copper Bulb is a variant of Weathered Copper Bulb in Minecraft that has been waxed to prevent further weathering.', + 'waxed_oxidized_copper_bulb': 'Waxed Oxidized Copper Bulb is a variant of Oxidized Copper Bulb in Minecraft that has been waxed to prevent further weathering.', + 'trial_spawner': 'Trial Spawner is an item in Minecraft Dungeons, used in the Ancient Hunt game mode to summon trials for unique rewards.', + 'trial_key': 'Trial Key is an item in Minecraft Dungeons, obtained from defeating Ancient mobs in the Ancient Hunt game mode, used to unlock trials.' + } +} + +const lowerCaseFirstLetter = (string) => string.charAt(0).toLowerCase() + string.slice(1) +for (const [name, data] of Object.entries(moreGeneratedBlocks.natural_blocks)) { + let description = '' as string | ((name: string) => string) + if (typeof data === 'object') { + const obtainedFrom = 'obtained_from' in data ? data.obtained_from : 'description' in data ? data.description : '' + description = obtainedFrom + ('rarity' in data ? ` Rarity: ${data.rarity}` : '') + ('spawn_range' in data ? ` Spawn range: ${data.spawn_range}` : '') + } else { + description = (name) => `${lowerCaseFirstLetter(name)}: ${data}` + } + descriptionGenerators.set([name], description) +} + +export const getItemDescription = (item: import('prismarine-item').Item) => { + const { name } = item + let result: string | ((name: string) => string) = '' + for (const [names, description] of descriptionGenerators) { + if (Array.isArray(names) && names.includes(name)) { + result = description + } + if (typeof names === 'string' && names === name) { + result = description + } + if (names instanceof RegExp && names.test(name)) { + result = description + } + } + return typeof result === 'function' ? result(item.displayName) : result +} diff --git a/src/loadSave.ts b/src/loadSave.ts new file mode 100644 index 00000000..f1676cff --- /dev/null +++ b/src/loadSave.ts @@ -0,0 +1,181 @@ +import fs from 'fs' +import path from 'path' +import * as nbt from 'prismarine-nbt' +import { proxy } from 'valtio' +import { gzip } from 'node-gzip' +import { versionToNumber } from 'renderer/viewer/common/utils' +import { options } from './optionsStorage' +import { nameToMcOfflineUUID, disconnect } from './flyingSquidUtils' +import { existsViaStats, forceCachedDataPaths, forceRedirectPaths, mkdirRecursive } from './browserfs' +import { isMajorVersionGreater } from './utils' + +import { activeModalStacks, insertActiveModalStack, miscUiState } from './globalState' +import supportedVersions from './supportedVersions.mjs' +import { ConnectOptions } from './connect' +import { appQueryParams } from './appParams' + +// todo include name of opened handle (zip)! +// additional fs metadata +export const fsState = proxy({ + isReadonly: false, + syncFs: false, + inMemorySave: false, + saveLoaded: false, + openReadOperations: 0, + openWriteOperations: 0, + remoteBackend: false, + inMemorySavePath: '' +}) + +const PROPOSE_BACKUP = true + +export function longArrayToNumber (longArray: number[]) { + const [high, low] = longArray + return (high << 32) + low +} + +export const readLevelDat = async (path) => { + let levelDatContent + try { + // todo-low cache reading + levelDatContent = await fs.promises.readFile(`${path}/level.dat`) + } catch (err) { + if (err.code === 'ENOENT') { + return undefined + } + throw err + } + const { parsed } = await nbt.parse(Buffer.from(levelDatContent)) + const levelDat: import('./mcTypes').LevelDat = nbt.simplify(parsed).Data + return { levelDat, dataRaw: parsed.value.Data!.value as Record } +} + +export const loadSave = async (root = '/world', connectOptions?: Partial) => { + // todo test + if (miscUiState.gameLoaded) { + await disconnect() + await new Promise(resolve => { + setTimeout(resolve) + }) + } + + const disablePrompts = options.disableLoadPrompts + + // todo do it in singleplayer as well + // eslint-disable-next-line guard-for-in + for (const key in forceCachedDataPaths) { + + delete forceCachedDataPaths[key] + } + // eslint-disable-next-line guard-for-in + for (const key in forceRedirectPaths) { + + delete forceRedirectPaths[key] + } + // todo check jsHeapSizeLimit + + const warnings: string[] = [] + const { levelDat, dataRaw } = (await readLevelDat(root))! + if (levelDat === undefined) { + if (fsState.isReadonly) { + throw new Error('level.dat not found, ensure you are loading world folder') + } else { + warnings.push('level.dat not found, world in current folder will be created') + } + } + + let version: string | undefined | null + if (levelDat) { + version = appQueryParams.mapVersion ?? levelDat.Version?.Name + if (!version) { + // const newVersion = disablePrompts ? '1.8.8' : prompt(`In 1.8 and before world save doesn't contain version info, please enter version you want to use to load the world.\nSupported versions ${supportedVersions.join(', ')}`, '1.8.8') + // if (!newVersion) return + // todo detect world load issues + const newVersion = '1.8.8' + version = newVersion + } + const lastSupportedVersion = supportedVersions.at(-1)! + const firstSupportedVersion = supportedVersions[0] + const lowerBound = isMajorVersionGreater(firstSupportedVersion, version) + const upperBound = versionToNumber(version) > versionToNumber(lastSupportedVersion) + if (lowerBound || upperBound) { + version = prompt(`Version ${version} is not supported, supported versions are ${supportedVersions.join(', ')}, what try to use instead?`, lowerBound ? firstSupportedVersion : lastSupportedVersion) + if (!version) return + } + + const playerUuid = nameToMcOfflineUUID(options.localUsername) + const playerDatPath = `${root}/playerdata/${playerUuid}.dat` + const playerDataOverride = dataRaw.Player + if (playerDataOverride) { + const playerDat = await gzip(nbt.writeUncompressed({ name: '', ...playerDataOverride })) + if (fsState.isReadonly) { + forceCachedDataPaths[playerDatPath] = playerDat + } else { + await mkdirRecursive(path.dirname(playerDatPath)) + await fs.promises.writeFile(playerDatPath, playerDat) + } + } + } + + if (warnings.length && !disablePrompts) { + const doContinue = confirm(`Continue with following warnings?\n${warnings.join('\n')}`) + if (!doContinue) return + } + + if (PROPOSE_BACKUP) { + // const doBackup = options.alwaysBackupWorldBeforeLoading ?? confirm('Do you want to backup your world files before loading it?') + // // const doBackup = true + // if (doBackup) { + // // todo do it in flying squid instead + // await fs.promises.copyFile('/world/level.dat', `/world/level.dat_old`) + // try { + // await fs.promises.mkdir('/backups/region.old', { recursive: true }) + // } catch (err) { } + // const files = await fs.promises.readdir('/world/region') + // for (const file of files) { + // await fs.promises.copyFile(`/world/region/${file}`, `/world/region.old/${file}`) + // } + // } + } + + if (!fsState.isReadonly && !fsState.inMemorySave && !disablePrompts) { + // todo allow also to ctrl+s + alert('Note: the world is saved on interval, /save or disconnect! Ensure you have backup and be careful of new chunks writes!') + } + + // improve compatibility with community saves + const rootRemapFiles = ['Warp files'] + for (const rootRemapFile of rootRemapFiles) { + // eslint-disable-next-line no-await-in-loop + if (await existsViaStats(path.join(root, '..', rootRemapFile))) { + forceRedirectPaths[path.join(root, rootRemapFile)] = path.join(root, '..', rootRemapFile) + } + } + + // todo reimplement + if (activeModalStacks['main-menu']) { + insertActiveModalStack('main-menu') + } + // todo use general logic + // if (activeModalStack.at(-1)?.reactType === 'app-status' && !appStatusState.isError) { + // alert('Wait for operations to finish before loading a new world') + // return + // } + // for (const _i of activeModalStack) { + // hideModal(undefined, undefined, { force: true }) + // } + + // todo should not be set here + fsState.saveLoaded = true + fsState.inMemorySavePath = root + window.dispatchEvent(new CustomEvent('singleplayer', { + // todo check gamemode level.dat data etc + detail: { + version, + ...root === '/world' ? {} : { + 'worldFolder': root + }, + connectOptions + }, + })) +} diff --git a/src/localServerMultiplayer.ts b/src/localServerMultiplayer.ts new file mode 100644 index 00000000..7eaa2427 --- /dev/null +++ b/src/localServerMultiplayer.ts @@ -0,0 +1,230 @@ +import { Duplex } from 'stream' +import { Peer, DataConnection } from 'peerjs' +import Client from 'minecraft-protocol/src/client' +import { resolveTimeout } from './utils' +import { setLoadingScreenStatus } from './appStatus' +import { miscUiState } from './globalState' + +class CustomDuplex extends Duplex { + constructor (options, public writeAction) { + super(options) + } + + _read () { } + + _write (chunk, encoding, callback) { + this.writeAction(chunk) + callback() + } +} + +let peerInstance: Peer | undefined + +let overridePeerJsServer = null as string | null + +export const getJoinLink = () => { + if (!peerInstance) return + const url = new URL(window.location.href) + for (const key of url.searchParams.keys()) { + url.searchParams.delete(key) + } + url.searchParams.set('connectPeer', peerInstance.id) + url.searchParams.set('peerVersion', localServer!.options.version) + const host = (overridePeerJsServer ?? miscUiState.appConfig?.peerJsServer) ?? undefined + if (host) { + // TODO! use miscUiState.appConfig.peerJsServer + url.searchParams.set('server', host) + } + return url.toString() +} + +const copyJoinLink = async () => { + miscUiState.wanOpened = true + const joinLink = getJoinLink()! + if (navigator.clipboard) { + await navigator.clipboard.writeText(joinLink) + } else { + window.prompt('Copy to clipboard: Ctrl+C, Enter', joinLink) + } +} + +export const openToWanAndCopyJoinLink = async (writeText: (text) => void, doCopy = true) => { + if (!localServer) return + if (peerInstance) { + if (doCopy) await copyJoinLink() + return 'Already opened to wan. Join link copied' + } + miscUiState.wanOpening = true + const host = (overridePeerJsServer ?? miscUiState.appConfig?.peerJsServer) || undefined + const params = host ? parseUrl(host) : undefined + const peer = new Peer({ + debug: 3, + secure: true, + ...params + }) + peerInstance = peer + peer.on('connection', (connection) => { + console.log('connection') + const serverDuplex = new CustomDuplex({}, async (data) => connection.send(data)) + const client = new Client(true, localServer.options.version, undefined) + client.setSocket(serverDuplex) + localServer._server.emit('connection', client) + + connection.on('data', (data: any) => { + serverDuplex.push(Buffer.from(data)) + }) + // our side disconnect + const endConnection = () => { + console.log('connection.close') + serverDuplex.end() + connection.close() + } + serverDuplex.on('end', endConnection) + serverDuplex.on('force-close', endConnection) + client.on('end', endConnection) + + const disconnected = () => { + serverDuplex.end() + client.end() + } + connection.on('iceStateChanged', (state) => { + console.log('iceStateChanged', state) + if (state === 'disconnected') { + disconnected() + } + }) + connection.on('close', disconnected) + connection.on('error', disconnected) + }) + const fallbackServer = miscUiState.appConfig?.peerJsServerFallback + const hasFallback = fallbackServer && peer.options.host !== fallbackServer + let hadErrorReported = false + peer.on('error', (error) => { + console.error('peerJS error', error) + if (error.type === 'server-error' && hasFallback) { + return + } + hadErrorReported = true + writeText(error.message || JSON.stringify(error)) + }) + let timeout + const destroy = () => { + clearTimeout(timeout) + timeout = undefined + peer.destroy() + peerInstance = undefined + } + + const result = await new Promise(resolve => { + peer.on('open', async () => { + await copyJoinLink() + resolve('Copied join link to clipboard') + }) + timeout = setTimeout(async () => { + if (!hadErrorReported && timeout !== undefined) { + if (hasFallback && overridePeerJsServer === null) { + destroy() + overridePeerJsServer = fallbackServer + console.log('Trying fallback server due to timeout', fallbackServer) + resolve((await openToWanAndCopyJoinLink(writeText, doCopy))!) + } else { + writeText('timeout') + resolve('Failed to open to wan (timeout)') + } + } + }, 6000) + + // fallback + peer.on('error', async (error) => { + if (!peer.open) { + if (hasFallback) { + destroy() + + overridePeerJsServer = fallbackServer + console.log('Trying fallback server', fallbackServer) + resolve((await openToWanAndCopyJoinLink(writeText, doCopy))!) + } + } + }) + }) + if (peerInstance && !peerInstance.open) { + destroy() + } + miscUiState.wanOpening = false + return result +} + +const parseUrl = (url: string) => { + // peerJS does this internally for some reason: const url = new URL(`${protocol}://${host}:${port}${path}${key}/${method}`) + if (!url.startsWith('http')) url = `${location.protocol}//${url}` + const urlObj = new URL(url) + const key = urlObj.searchParams.get('key') + return { + host: urlObj.hostname, + path: urlObj.pathname, + protocol: urlObj.protocol.slice(0, -1), + ...urlObj.port ? { port: +urlObj.port } : {}, + ...key ? { key } : {}, + } +} + +export const closeWan = () => { + peerInstance?.destroy() + peerInstance = undefined + miscUiState.wanOpened = false + return 'Closed WAN' +} + +export type ConnectPeerOptions = { + server?: string +} + +export const connectToPeer = async (peerId: string, options: ConnectPeerOptions = {}) => { + setLoadingScreenStatus('Connecting to peer server') + // todo destroy connection on error + // TODO! use miscUiState.appConfig.peerJsServer + const host = options.server + const params = host ? parseUrl(host) : undefined + const peer = new Peer({ + debug: 3, + ...params + }) + await resolveTimeout(new Promise(resolve => { + peer.once('open', resolve) + })) + setLoadingScreenStatus('Connecting to the peer') + const connection = peer.connect(peerId, { + serialization: 'raw', + }) + await resolveTimeout(new Promise((resolve, reject) => { + connection.once('error', (error) => { + console.log(error.type, error.name) + console.log(error) + reject(error.message) + }) + connection.once('open', resolve) + })) + + const clientDuplex = new CustomDuplex({}, (data) => { + // todo debug until play state + // console.debug('sending', data.toString()) + void connection.send(data) + }) + connection.on('data', (data: any) => { + console.debug('received', Buffer.from(data).toString()) + clientDuplex.push(Buffer.from(data)) + }) + connection.on('close', () => { + console.log('connection closed') + clientDuplex.end() + // bot._client.end() + // bot.end() + bot.emit('end', 'Disconnected.') + }) + connection.on('error', (error) => { + console.error(error) + clientDuplex.end() + }) + + return clientDuplex +} diff --git a/src/markdownToFormattedText.test.ts b/src/markdownToFormattedText.test.ts new file mode 100644 index 00000000..5c1d5f35 --- /dev/null +++ b/src/markdownToFormattedText.test.ts @@ -0,0 +1,39 @@ +import { describe, expect, it } from 'vitest' +import markdownToFormattedText from './markdownToFormattedText' + +describe('markdownToFormattedText', () => { + it('should convert markdown to formatted text', () => { + const markdown = '**bold** *italic* [link](https://example.com) k `code`' + const text = markdownToFormattedText(markdown) + const command = '/data merge block ~ ~ ~ {Text1:\'' + JSON.stringify(text[0]) + '\',Text2: \'' + JSON.stringify(text[1]) + '\',Text3:\'' + JSON.stringify(text[2]) + '\',Text4:\'' + JSON.stringify(text[3]) + '\'}' // mojangson + expect(text).toMatchInlineSnapshot(` + [ + [ + [ + { + "bold": true, + "text": "bold", + }, + { + "text": " ", + }, + { + "italic": true, + "text": "italic", + }, + { + "text": " ", + }, + { + "text": " k ", + }, + "code", + ], + ], + "", + "", + "", + ] + `) + }) +}) diff --git a/src/markdownToFormattedText.ts b/src/markdownToFormattedText.ts new file mode 100644 index 00000000..5fff20f8 --- /dev/null +++ b/src/markdownToFormattedText.ts @@ -0,0 +1,58 @@ +import { remark } from 'remark' + +export default (markdown: string) => { + const arr = markdown.split('\n\n') + const lines = ['', '', '', ''] as any[] + for (const [i, ast] of arr.map(md => remark().parse(md)).entries()) { + lines[i] = transformToMinecraftJSON(ast as Element) + } + return lines +} + +function transformToMinecraftJSON (element: Element): any { + switch (element.type) { + case 'root': { + if (!element.children) return + return element.children.map(child => transformToMinecraftJSON(child)).filter(Boolean) + } + case 'paragraph': { + if (!element.children) return + const transformedChildren = element.children.map(child => transformToMinecraftJSON(child)).filter(Boolean) + return transformedChildren.flat() + } + case 'strong': { + if (!element.children) return + return [{ bold: true, text: element.children[0].value }] + } + case 'text': { + return { text: element.value } + } + case 'emphasis': { + if (!element.children) return + return [{ italic: true, text: element.children[0].value }] + } + default: + // todo leave untouched eg links + return element.value + } +} + +interface Position { + start: { + line: number; + column: number; + offset: number; + }; + end: { + line: number; + column: number; + offset: number; + }; +} + +interface Element { + type: string; + children?: Element[]; + value?: string; + position: Position; +} diff --git a/src/mcDataTypes.ts b/src/mcDataTypes.ts new file mode 100644 index 00000000..3375cf28 --- /dev/null +++ b/src/mcDataTypes.ts @@ -0,0 +1,4318 @@ + +export type BlockNames = 'air' | 'stone' | 'granite' | 'polished_granite' | 'diorite' | 'polished_diorite' | 'andesite' | 'polished_andesite' | 'grass_block' | 'dirt' | 'coarse_dirt' | 'podzol' | 'cobblestone' | 'oak_planks' | 'spruce_planks' | 'birch_planks' | 'jungle_planks' | 'acacia_planks' | 'cherry_planks' | 'dark_oak_planks' | 'mangrove_planks' | 'bamboo_planks' | 'bamboo_mosaic' | 'oak_sapling' | 'spruce_sapling' | 'birch_sapling' | 'jungle_sapling' | 'acacia_sapling' | 'cherry_sapling' | 'dark_oak_sapling' | 'mangrove_propagule' | 'bedrock' | 'water' | 'lava' | 'sand' | 'suspicious_sand' | 'red_sand' | 'gravel' | 'suspicious_gravel' | 'gold_ore' | 'deepslate_gold_ore' | 'iron_ore' | 'deepslate_iron_ore' | 'coal_ore' | 'deepslate_coal_ore' | 'nether_gold_ore' | 'oak_log' | 'spruce_log' | 'birch_log' | 'jungle_log' | 'acacia_log' | 'cherry_log' | 'dark_oak_log' | 'mangrove_log' | 'mangrove_roots' | 'muddy_mangrove_roots' | 'bamboo_block' | 'stripped_spruce_log' | 'stripped_birch_log' | 'stripped_jungle_log' | 'stripped_acacia_log' | 'stripped_cherry_log' | 'stripped_dark_oak_log' | 'stripped_oak_log' | 'stripped_mangrove_log' | 'stripped_bamboo_block' | 'oak_wood' | 'spruce_wood' | 'birch_wood' | 'jungle_wood' | 'acacia_wood' | 'cherry_wood' | 'dark_oak_wood' | 'mangrove_wood' | 'stripped_oak_wood' | 'stripped_spruce_wood' | 'stripped_birch_wood' | 'stripped_jungle_wood' | 'stripped_acacia_wood' | 'stripped_cherry_wood' | 'stripped_dark_oak_wood' | 'stripped_mangrove_wood' | 'oak_leaves' | 'spruce_leaves' | 'birch_leaves' | 'jungle_leaves' | 'acacia_leaves' | 'cherry_leaves' | 'dark_oak_leaves' | 'mangrove_leaves' | 'azalea_leaves' | 'flowering_azalea_leaves' | 'sponge' | 'wet_sponge' | 'glass' | 'lapis_ore' | 'deepslate_lapis_ore' | 'lapis_block' | 'dispenser' | 'sandstone' | 'chiseled_sandstone' | 'cut_sandstone' | 'note_block' | 'white_bed' | 'orange_bed' | 'magenta_bed' | 'light_blue_bed' | 'yellow_bed' | 'lime_bed' | 'pink_bed' | 'gray_bed' | 'light_gray_bed' | 'cyan_bed' | 'purple_bed' | 'blue_bed' | 'brown_bed' | 'green_bed' | 'red_bed' | 'black_bed' | 'powered_rail' | 'detector_rail' | 'sticky_piston' | 'cobweb' | 'grass' | 'fern' | 'dead_bush' | 'seagrass' | 'tall_seagrass' | 'piston' | 'piston_head' | 'white_wool' | 'orange_wool' | 'magenta_wool' | 'light_blue_wool' | 'yellow_wool' | 'lime_wool' | 'pink_wool' | 'gray_wool' | 'light_gray_wool' | 'cyan_wool' | 'purple_wool' | 'blue_wool' | 'brown_wool' | 'green_wool' | 'red_wool' | 'black_wool' | 'moving_piston' | 'dandelion' | 'torchflower' | 'poppy' | 'blue_orchid' | 'allium' | 'azure_bluet' | 'red_tulip' | 'orange_tulip' | 'white_tulip' | 'pink_tulip' | 'oxeye_daisy' | 'cornflower' | 'wither_rose' | 'lily_of_the_valley' | 'brown_mushroom' | 'red_mushroom' | 'gold_block' | 'iron_block' | 'bricks' | 'tnt' | 'bookshelf' | 'chiseled_bookshelf' | 'mossy_cobblestone' | 'obsidian' | 'torch' | 'wall_torch' | 'fire' | 'soul_fire' | 'spawner' | 'oak_stairs' | 'chest' | 'redstone_wire' | 'diamond_ore' | 'deepslate_diamond_ore' | 'diamond_block' | 'crafting_table' | 'wheat' | 'farmland' | 'furnace' | 'oak_sign' | 'spruce_sign' | 'birch_sign' | 'acacia_sign' | 'cherry_sign' | 'jungle_sign' | 'dark_oak_sign' | 'mangrove_sign' | 'bamboo_sign' | 'oak_door' | 'ladder' | 'rail' | 'cobblestone_stairs' | 'oak_wall_sign' | 'spruce_wall_sign' | 'birch_wall_sign' | 'acacia_wall_sign' | 'cherry_wall_sign' | 'jungle_wall_sign' | 'dark_oak_wall_sign' | 'mangrove_wall_sign' | 'bamboo_wall_sign' | 'oak_hanging_sign' | 'spruce_hanging_sign' | 'birch_hanging_sign' | 'acacia_hanging_sign' | 'cherry_hanging_sign' | 'jungle_hanging_sign' | 'dark_oak_hanging_sign' | 'crimson_hanging_sign' | 'warped_hanging_sign' | 'mangrove_hanging_sign' | 'bamboo_hanging_sign' | 'oak_wall_hanging_sign' | 'spruce_wall_hanging_sign' | 'birch_wall_hanging_sign' | 'acacia_wall_hanging_sign' | 'cherry_wall_hanging_sign' | 'jungle_wall_hanging_sign' | 'dark_oak_wall_hanging_sign' | 'mangrove_wall_hanging_sign' | 'crimson_wall_hanging_sign' | 'warped_wall_hanging_sign' | 'bamboo_wall_hanging_sign' | 'lever' | 'stone_pressure_plate' | 'iron_door' | 'oak_pressure_plate' | 'spruce_pressure_plate' | 'birch_pressure_plate' | 'jungle_pressure_plate' | 'acacia_pressure_plate' | 'cherry_pressure_plate' | 'dark_oak_pressure_plate' | 'mangrove_pressure_plate' | 'bamboo_pressure_plate' | 'redstone_ore' | 'deepslate_redstone_ore' | 'redstone_torch' | 'redstone_wall_torch' | 'stone_button' | 'snow' | 'ice' | 'snow_block' | 'cactus' | 'clay' | 'sugar_cane' | 'jukebox' | 'oak_fence' | 'pumpkin' | 'netherrack' | 'soul_sand' | 'soul_soil' | 'basalt' | 'polished_basalt' | 'soul_torch' | 'soul_wall_torch' | 'glowstone' | 'nether_portal' | 'carved_pumpkin' | 'jack_o_lantern' | 'cake' | 'repeater' | 'white_stained_glass' | 'orange_stained_glass' | 'magenta_stained_glass' | 'light_blue_stained_glass' | 'yellow_stained_glass' | 'lime_stained_glass' | 'pink_stained_glass' | 'gray_stained_glass' | 'light_gray_stained_glass' | 'cyan_stained_glass' | 'purple_stained_glass' | 'blue_stained_glass' | 'brown_stained_glass' | 'green_stained_glass' | 'red_stained_glass' | 'black_stained_glass' | 'oak_trapdoor' | 'spruce_trapdoor' | 'birch_trapdoor' | 'jungle_trapdoor' | 'acacia_trapdoor' | 'cherry_trapdoor' | 'dark_oak_trapdoor' | 'mangrove_trapdoor' | 'bamboo_trapdoor' | 'stone_bricks' | 'mossy_stone_bricks' | 'cracked_stone_bricks' | 'chiseled_stone_bricks' | 'packed_mud' | 'mud_bricks' | 'infested_stone' | 'infested_cobblestone' | 'infested_stone_bricks' | 'infested_mossy_stone_bricks' | 'infested_cracked_stone_bricks' | 'infested_chiseled_stone_bricks' | 'brown_mushroom_block' | 'red_mushroom_block' | 'mushroom_stem' | 'iron_bars' | 'chain' | 'glass_pane' | 'melon' | 'attached_pumpkin_stem' | 'attached_melon_stem' | 'pumpkin_stem' | 'melon_stem' | 'vine' | 'glow_lichen' | 'oak_fence_gate' | 'brick_stairs' | 'stone_brick_stairs' | 'mud_brick_stairs' | 'mycelium' | 'lily_pad' | 'nether_bricks' | 'nether_brick_fence' | 'nether_brick_stairs' | 'nether_wart' | 'enchanting_table' | 'brewing_stand' | 'cauldron' | 'water_cauldron' | 'lava_cauldron' | 'powder_snow_cauldron' | 'end_portal' | 'end_portal_frame' | 'end_stone' | 'dragon_egg' | 'redstone_lamp' | 'cocoa' | 'sandstone_stairs' | 'emerald_ore' | 'deepslate_emerald_ore' | 'ender_chest' | 'tripwire_hook' | 'tripwire' | 'emerald_block' | 'spruce_stairs' | 'birch_stairs' | 'jungle_stairs' | 'command_block' | 'beacon' | 'cobblestone_wall' | 'mossy_cobblestone_wall' | 'flower_pot' | 'potted_torchflower' | 'potted_oak_sapling' | 'potted_spruce_sapling' | 'potted_birch_sapling' | 'potted_jungle_sapling' | 'potted_acacia_sapling' | 'potted_cherry_sapling' | 'potted_dark_oak_sapling' | 'potted_mangrove_propagule' | 'potted_fern' | 'potted_dandelion' | 'potted_poppy' | 'potted_blue_orchid' | 'potted_allium' | 'potted_azure_bluet' | 'potted_red_tulip' | 'potted_orange_tulip' | 'potted_white_tulip' | 'potted_pink_tulip' | 'potted_oxeye_daisy' | 'potted_cornflower' | 'potted_lily_of_the_valley' | 'potted_wither_rose' | 'potted_red_mushroom' | 'potted_brown_mushroom' | 'potted_dead_bush' | 'potted_cactus' | 'carrots' | 'potatoes' | 'oak_button' | 'spruce_button' | 'birch_button' | 'jungle_button' | 'acacia_button' | 'cherry_button' | 'dark_oak_button' | 'mangrove_button' | 'bamboo_button' | 'skeleton_skull' | 'skeleton_wall_skull' | 'wither_skeleton_skull' | 'wither_skeleton_wall_skull' | 'zombie_head' | 'zombie_wall_head' | 'player_head' | 'player_wall_head' | 'creeper_head' | 'creeper_wall_head' | 'dragon_head' | 'dragon_wall_head' | 'piglin_head' | 'piglin_wall_head' | 'anvil' | 'chipped_anvil' | 'damaged_anvil' | 'trapped_chest' | 'light_weighted_pressure_plate' | 'heavy_weighted_pressure_plate' | 'comparator' | 'daylight_detector' | 'redstone_block' | 'nether_quartz_ore' | 'hopper' | 'quartz_block' | 'chiseled_quartz_block' | 'quartz_pillar' | 'quartz_stairs' | 'activator_rail' | 'dropper' | 'white_terracotta' | 'orange_terracotta' | 'magenta_terracotta' | 'light_blue_terracotta' | 'yellow_terracotta' | 'lime_terracotta' | 'pink_terracotta' | 'gray_terracotta' | 'light_gray_terracotta' | 'cyan_terracotta' | 'purple_terracotta' | 'blue_terracotta' | 'brown_terracotta' | 'green_terracotta' | 'red_terracotta' | 'black_terracotta' | 'white_stained_glass_pane' | 'orange_stained_glass_pane' | 'magenta_stained_glass_pane' | 'light_blue_stained_glass_pane' | 'yellow_stained_glass_pane' | 'lime_stained_glass_pane' | 'pink_stained_glass_pane' | 'gray_stained_glass_pane' | 'light_gray_stained_glass_pane' | 'cyan_stained_glass_pane' | 'purple_stained_glass_pane' | 'blue_stained_glass_pane' | 'brown_stained_glass_pane' | 'green_stained_glass_pane' | 'red_stained_glass_pane' | 'black_stained_glass_pane' | 'acacia_stairs' | 'cherry_stairs' | 'dark_oak_stairs' | 'mangrove_stairs' | 'bamboo_stairs' | 'bamboo_mosaic_stairs' | 'slime_block' | 'barrier' | 'light' | 'iron_trapdoor' | 'prismarine' | 'prismarine_bricks' | 'dark_prismarine' | 'prismarine_stairs' | 'prismarine_brick_stairs' | 'dark_prismarine_stairs' | 'prismarine_slab' | 'prismarine_brick_slab' | 'dark_prismarine_slab' | 'sea_lantern' | 'hay_block' | 'white_carpet' | 'orange_carpet' | 'magenta_carpet' | 'light_blue_carpet' | 'yellow_carpet' | 'lime_carpet' | 'pink_carpet' | 'gray_carpet' | 'light_gray_carpet' | 'cyan_carpet' | 'purple_carpet' | 'blue_carpet' | 'brown_carpet' | 'green_carpet' | 'red_carpet' | 'black_carpet' | 'terracotta' | 'coal_block' | 'packed_ice' | 'sunflower' | 'lilac' | 'rose_bush' | 'peony' | 'tall_grass' | 'large_fern' | 'white_banner' | 'orange_banner' | 'magenta_banner' | 'light_blue_banner' | 'yellow_banner' | 'lime_banner' | 'pink_banner' | 'gray_banner' | 'light_gray_banner' | 'cyan_banner' | 'purple_banner' | 'blue_banner' | 'brown_banner' | 'green_banner' | 'red_banner' | 'black_banner' | 'white_wall_banner' | 'orange_wall_banner' | 'magenta_wall_banner' | 'light_blue_wall_banner' | 'yellow_wall_banner' | 'lime_wall_banner' | 'pink_wall_banner' | 'gray_wall_banner' | 'light_gray_wall_banner' | 'cyan_wall_banner' | 'purple_wall_banner' | 'blue_wall_banner' | 'brown_wall_banner' | 'green_wall_banner' | 'red_wall_banner' | 'black_wall_banner' | 'red_sandstone' | 'chiseled_red_sandstone' | 'cut_red_sandstone' | 'red_sandstone_stairs' | 'oak_slab' | 'spruce_slab' | 'birch_slab' | 'jungle_slab' | 'acacia_slab' | 'cherry_slab' | 'dark_oak_slab' | 'mangrove_slab' | 'bamboo_slab' | 'bamboo_mosaic_slab' | 'stone_slab' | 'smooth_stone_slab' | 'sandstone_slab' | 'cut_sandstone_slab' | 'petrified_oak_slab' | 'cobblestone_slab' | 'brick_slab' | 'stone_brick_slab' | 'mud_brick_slab' | 'nether_brick_slab' | 'quartz_slab' | 'red_sandstone_slab' | 'cut_red_sandstone_slab' | 'purpur_slab' | 'smooth_stone' | 'smooth_sandstone' | 'smooth_quartz' | 'smooth_red_sandstone' | 'spruce_fence_gate' | 'birch_fence_gate' | 'jungle_fence_gate' | 'acacia_fence_gate' | 'cherry_fence_gate' | 'dark_oak_fence_gate' | 'mangrove_fence_gate' | 'bamboo_fence_gate' | 'spruce_fence' | 'birch_fence' | 'jungle_fence' | 'acacia_fence' | 'cherry_fence' | 'dark_oak_fence' | 'mangrove_fence' | 'bamboo_fence' | 'spruce_door' | 'birch_door' | 'jungle_door' | 'acacia_door' | 'cherry_door' | 'dark_oak_door' | 'mangrove_door' | 'bamboo_door' | 'end_rod' | 'chorus_plant' | 'chorus_flower' | 'purpur_block' | 'purpur_pillar' | 'purpur_stairs' | 'end_stone_bricks' | 'torchflower_crop' | 'pitcher_crop' | 'pitcher_plant' | 'beetroots' | 'dirt_path' | 'end_gateway' | 'repeating_command_block' | 'chain_command_block' | 'frosted_ice' | 'magma_block' | 'nether_wart_block' | 'red_nether_bricks' | 'bone_block' | 'structure_void' | 'observer' | 'shulker_box' | 'white_shulker_box' | 'orange_shulker_box' | 'magenta_shulker_box' | 'light_blue_shulker_box' | 'yellow_shulker_box' | 'lime_shulker_box' | 'pink_shulker_box' | 'gray_shulker_box' | 'light_gray_shulker_box' | 'cyan_shulker_box' | 'purple_shulker_box' | 'blue_shulker_box' | 'brown_shulker_box' | 'green_shulker_box' | 'red_shulker_box' | 'black_shulker_box' | 'white_glazed_terracotta' | 'orange_glazed_terracotta' | 'magenta_glazed_terracotta' | 'light_blue_glazed_terracotta' | 'yellow_glazed_terracotta' | 'lime_glazed_terracotta' | 'pink_glazed_terracotta' | 'gray_glazed_terracotta' | 'light_gray_glazed_terracotta' | 'cyan_glazed_terracotta' | 'purple_glazed_terracotta' | 'blue_glazed_terracotta' | 'brown_glazed_terracotta' | 'green_glazed_terracotta' | 'red_glazed_terracotta' | 'black_glazed_terracotta' | 'white_concrete' | 'orange_concrete' | 'magenta_concrete' | 'light_blue_concrete' | 'yellow_concrete' | 'lime_concrete' | 'pink_concrete' | 'gray_concrete' | 'light_gray_concrete' | 'cyan_concrete' | 'purple_concrete' | 'blue_concrete' | 'brown_concrete' | 'green_concrete' | 'red_concrete' | 'black_concrete' | 'white_concrete_powder' | 'orange_concrete_powder' | 'magenta_concrete_powder' | 'light_blue_concrete_powder' | 'yellow_concrete_powder' | 'lime_concrete_powder' | 'pink_concrete_powder' | 'gray_concrete_powder' | 'light_gray_concrete_powder' | 'cyan_concrete_powder' | 'purple_concrete_powder' | 'blue_concrete_powder' | 'brown_concrete_powder' | 'green_concrete_powder' | 'red_concrete_powder' | 'black_concrete_powder' | 'kelp' | 'kelp_plant' | 'dried_kelp_block' | 'turtle_egg' | 'sniffer_egg' | 'dead_tube_coral_block' | 'dead_brain_coral_block' | 'dead_bubble_coral_block' | 'dead_fire_coral_block' | 'dead_horn_coral_block' | 'tube_coral_block' | 'brain_coral_block' | 'bubble_coral_block' | 'fire_coral_block' | 'horn_coral_block' | 'dead_tube_coral' | 'dead_brain_coral' | 'dead_bubble_coral' | 'dead_fire_coral' | 'dead_horn_coral' | 'tube_coral' | 'brain_coral' | 'bubble_coral' | 'fire_coral' | 'horn_coral' | 'dead_tube_coral_fan' | 'dead_brain_coral_fan' | 'dead_bubble_coral_fan' | 'dead_fire_coral_fan' | 'dead_horn_coral_fan' | 'tube_coral_fan' | 'brain_coral_fan' | 'bubble_coral_fan' | 'fire_coral_fan' | 'horn_coral_fan' | 'dead_tube_coral_wall_fan' | 'dead_brain_coral_wall_fan' | 'dead_bubble_coral_wall_fan' | 'dead_fire_coral_wall_fan' | 'dead_horn_coral_wall_fan' | 'tube_coral_wall_fan' | 'brain_coral_wall_fan' | 'bubble_coral_wall_fan' | 'fire_coral_wall_fan' | 'horn_coral_wall_fan' | 'sea_pickle' | 'blue_ice' | 'conduit' | 'bamboo_sapling' | 'bamboo' | 'potted_bamboo' | 'void_air' | 'cave_air' | 'bubble_column' | 'polished_granite_stairs' | 'smooth_red_sandstone_stairs' | 'mossy_stone_brick_stairs' | 'polished_diorite_stairs' | 'mossy_cobblestone_stairs' | 'end_stone_brick_stairs' | 'stone_stairs' | 'smooth_sandstone_stairs' | 'smooth_quartz_stairs' | 'granite_stairs' | 'andesite_stairs' | 'red_nether_brick_stairs' | 'polished_andesite_stairs' | 'diorite_stairs' | 'polished_granite_slab' | 'smooth_red_sandstone_slab' | 'mossy_stone_brick_slab' | 'polished_diorite_slab' | 'mossy_cobblestone_slab' | 'end_stone_brick_slab' | 'smooth_sandstone_slab' | 'smooth_quartz_slab' | 'granite_slab' | 'andesite_slab' | 'red_nether_brick_slab' | 'polished_andesite_slab' | 'diorite_slab' | 'brick_wall' | 'prismarine_wall' | 'red_sandstone_wall' | 'mossy_stone_brick_wall' | 'granite_wall' | 'stone_brick_wall' | 'mud_brick_wall' | 'nether_brick_wall' | 'andesite_wall' | 'red_nether_brick_wall' | 'sandstone_wall' | 'end_stone_brick_wall' | 'diorite_wall' | 'scaffolding' | 'loom' | 'barrel' | 'smoker' | 'blast_furnace' | 'cartography_table' | 'fletching_table' | 'grindstone' | 'lectern' | 'smithing_table' | 'stonecutter' | 'bell' | 'lantern' | 'soul_lantern' | 'campfire' | 'soul_campfire' | 'sweet_berry_bush' | 'warped_stem' | 'stripped_warped_stem' | 'warped_hyphae' | 'stripped_warped_hyphae' | 'warped_nylium' | 'warped_fungus' | 'warped_wart_block' | 'warped_roots' | 'nether_sprouts' | 'crimson_stem' | 'stripped_crimson_stem' | 'crimson_hyphae' | 'stripped_crimson_hyphae' | 'crimson_nylium' | 'crimson_fungus' | 'shroomlight' | 'weeping_vines' | 'weeping_vines_plant' | 'twisting_vines' | 'twisting_vines_plant' | 'crimson_roots' | 'crimson_planks' | 'warped_planks' | 'crimson_slab' | 'warped_slab' | 'crimson_pressure_plate' | 'warped_pressure_plate' | 'crimson_fence' | 'warped_fence' | 'crimson_trapdoor' | 'warped_trapdoor' | 'crimson_fence_gate' | 'warped_fence_gate' | 'crimson_stairs' | 'warped_stairs' | 'crimson_button' | 'warped_button' | 'crimson_door' | 'warped_door' | 'crimson_sign' | 'warped_sign' | 'crimson_wall_sign' | 'warped_wall_sign' | 'structure_block' | 'jigsaw' | 'composter' | 'target' | 'bee_nest' | 'beehive' | 'honey_block' | 'honeycomb_block' | 'netherite_block' | 'ancient_debris' | 'crying_obsidian' | 'respawn_anchor' | 'potted_crimson_fungus' | 'potted_warped_fungus' | 'potted_crimson_roots' | 'potted_warped_roots' | 'lodestone' | 'blackstone' | 'blackstone_stairs' | 'blackstone_wall' | 'blackstone_slab' | 'polished_blackstone' | 'polished_blackstone_bricks' | 'cracked_polished_blackstone_bricks' | 'chiseled_polished_blackstone' | 'polished_blackstone_brick_slab' | 'polished_blackstone_brick_stairs' | 'polished_blackstone_brick_wall' | 'gilded_blackstone' | 'polished_blackstone_stairs' | 'polished_blackstone_slab' | 'polished_blackstone_pressure_plate' | 'polished_blackstone_button' | 'polished_blackstone_wall' | 'chiseled_nether_bricks' | 'cracked_nether_bricks' | 'quartz_bricks' | 'candle' | 'white_candle' | 'orange_candle' | 'magenta_candle' | 'light_blue_candle' | 'yellow_candle' | 'lime_candle' | 'pink_candle' | 'gray_candle' | 'light_gray_candle' | 'cyan_candle' | 'purple_candle' | 'blue_candle' | 'brown_candle' | 'green_candle' | 'red_candle' | 'black_candle' | 'candle_cake' | 'white_candle_cake' | 'orange_candle_cake' | 'magenta_candle_cake' | 'light_blue_candle_cake' | 'yellow_candle_cake' | 'lime_candle_cake' | 'pink_candle_cake' | 'gray_candle_cake' | 'light_gray_candle_cake' | 'cyan_candle_cake' | 'purple_candle_cake' | 'blue_candle_cake' | 'brown_candle_cake' | 'green_candle_cake' | 'red_candle_cake' | 'black_candle_cake' | 'amethyst_block' | 'budding_amethyst' | 'amethyst_cluster' | 'large_amethyst_bud' | 'medium_amethyst_bud' | 'small_amethyst_bud' | 'tuff' | 'calcite' | 'tinted_glass' | 'powder_snow' | 'sculk_sensor' | 'calibrated_sculk_sensor' | 'sculk' | 'sculk_vein' | 'sculk_catalyst' | 'sculk_shrieker' | 'oxidized_copper' | 'weathered_copper' | 'exposed_copper' | 'copper_block' | 'copper_ore' | 'deepslate_copper_ore' | 'oxidized_cut_copper' | 'weathered_cut_copper' | 'exposed_cut_copper' | 'cut_copper' | 'oxidized_cut_copper_stairs' | 'weathered_cut_copper_stairs' | 'exposed_cut_copper_stairs' | 'cut_copper_stairs' | 'oxidized_cut_copper_slab' | 'weathered_cut_copper_slab' | 'exposed_cut_copper_slab' | 'cut_copper_slab' | 'waxed_copper_block' | 'waxed_weathered_copper' | 'waxed_exposed_copper' | 'waxed_oxidized_copper' | 'waxed_oxidized_cut_copper' | 'waxed_weathered_cut_copper' | 'waxed_exposed_cut_copper' | 'waxed_cut_copper' | 'waxed_oxidized_cut_copper_stairs' | 'waxed_weathered_cut_copper_stairs' | 'waxed_exposed_cut_copper_stairs' | 'waxed_cut_copper_stairs' | 'waxed_oxidized_cut_copper_slab' | 'waxed_weathered_cut_copper_slab' | 'waxed_exposed_cut_copper_slab' | 'waxed_cut_copper_slab' | 'lightning_rod' | 'pointed_dripstone' | 'dripstone_block' | 'cave_vines' | 'cave_vines_plant' | 'spore_blossom' | 'azalea' | 'flowering_azalea' | 'moss_carpet' | 'pink_petals' | 'moss_block' | 'big_dripleaf' | 'big_dripleaf_stem' | 'small_dripleaf' | 'hanging_roots' | 'rooted_dirt' | 'mud' | 'deepslate' | 'cobbled_deepslate' | 'cobbled_deepslate_stairs' | 'cobbled_deepslate_slab' | 'cobbled_deepslate_wall' | 'polished_deepslate' | 'polished_deepslate_stairs' | 'polished_deepslate_slab' | 'polished_deepslate_wall' | 'deepslate_tiles' | 'deepslate_tile_stairs' | 'deepslate_tile_slab' | 'deepslate_tile_wall' | 'deepslate_bricks' | 'deepslate_brick_stairs' | 'deepslate_brick_slab' | 'deepslate_brick_wall' | 'chiseled_deepslate' | 'cracked_deepslate_bricks' | 'cracked_deepslate_tiles' | 'infested_deepslate' | 'smooth_basalt' | 'raw_iron_block' | 'raw_copper_block' | 'raw_gold_block' | 'potted_azalea_bush' | 'potted_flowering_azalea_bush' | 'ochre_froglight' | 'verdant_froglight' | 'pearlescent_froglight' | 'frogspawn' | 'reinforced_deepslate' | 'decorated_pot'; +export type ItemNames = 'air' | 'stone' | 'granite' | 'polished_granite' | 'diorite' | 'polished_diorite' | 'andesite' | 'polished_andesite' | 'deepslate' | 'cobbled_deepslate' | 'polished_deepslate' | 'calcite' | 'tuff' | 'dripstone_block' | 'grass_block' | 'dirt' | 'coarse_dirt' | 'podzol' | 'rooted_dirt' | 'mud' | 'crimson_nylium' | 'warped_nylium' | 'cobblestone' | 'oak_planks' | 'spruce_planks' | 'birch_planks' | 'jungle_planks' | 'acacia_planks' | 'cherry_planks' | 'dark_oak_planks' | 'mangrove_planks' | 'bamboo_planks' | 'crimson_planks' | 'warped_planks' | 'bamboo_mosaic' | 'oak_sapling' | 'spruce_sapling' | 'birch_sapling' | 'jungle_sapling' | 'acacia_sapling' | 'cherry_sapling' | 'dark_oak_sapling' | 'mangrove_propagule' | 'bedrock' | 'sand' | 'suspicious_sand' | 'suspicious_gravel' | 'red_sand' | 'gravel' | 'coal_ore' | 'deepslate_coal_ore' | 'iron_ore' | 'deepslate_iron_ore' | 'copper_ore' | 'deepslate_copper_ore' | 'gold_ore' | 'deepslate_gold_ore' | 'redstone_ore' | 'deepslate_redstone_ore' | 'emerald_ore' | 'deepslate_emerald_ore' | 'lapis_ore' | 'deepslate_lapis_ore' | 'diamond_ore' | 'deepslate_diamond_ore' | 'nether_gold_ore' | 'nether_quartz_ore' | 'ancient_debris' | 'coal_block' | 'raw_iron_block' | 'raw_copper_block' | 'raw_gold_block' | 'amethyst_block' | 'budding_amethyst' | 'iron_block' | 'copper_block' | 'gold_block' | 'diamond_block' | 'netherite_block' | 'exposed_copper' | 'weathered_copper' | 'oxidized_copper' | 'cut_copper' | 'exposed_cut_copper' | 'weathered_cut_copper' | 'oxidized_cut_copper' | 'cut_copper_stairs' | 'exposed_cut_copper_stairs' | 'weathered_cut_copper_stairs' | 'oxidized_cut_copper_stairs' | 'cut_copper_slab' | 'exposed_cut_copper_slab' | 'weathered_cut_copper_slab' | 'oxidized_cut_copper_slab' | 'waxed_copper_block' | 'waxed_exposed_copper' | 'waxed_weathered_copper' | 'waxed_oxidized_copper' | 'waxed_cut_copper' | 'waxed_exposed_cut_copper' | 'waxed_weathered_cut_copper' | 'waxed_oxidized_cut_copper' | 'waxed_cut_copper_stairs' | 'waxed_exposed_cut_copper_stairs' | 'waxed_weathered_cut_copper_stairs' | 'waxed_oxidized_cut_copper_stairs' | 'waxed_cut_copper_slab' | 'waxed_exposed_cut_copper_slab' | 'waxed_weathered_cut_copper_slab' | 'waxed_oxidized_cut_copper_slab' | 'oak_log' | 'spruce_log' | 'birch_log' | 'jungle_log' | 'acacia_log' | 'cherry_log' | 'dark_oak_log' | 'mangrove_log' | 'mangrove_roots' | 'muddy_mangrove_roots' | 'crimson_stem' | 'warped_stem' | 'bamboo_block' | 'stripped_oak_log' | 'stripped_spruce_log' | 'stripped_birch_log' | 'stripped_jungle_log' | 'stripped_acacia_log' | 'stripped_cherry_log' | 'stripped_dark_oak_log' | 'stripped_mangrove_log' | 'stripped_crimson_stem' | 'stripped_warped_stem' | 'stripped_oak_wood' | 'stripped_spruce_wood' | 'stripped_birch_wood' | 'stripped_jungle_wood' | 'stripped_acacia_wood' | 'stripped_cherry_wood' | 'stripped_dark_oak_wood' | 'stripped_mangrove_wood' | 'stripped_crimson_hyphae' | 'stripped_warped_hyphae' | 'stripped_bamboo_block' | 'oak_wood' | 'spruce_wood' | 'birch_wood' | 'jungle_wood' | 'acacia_wood' | 'cherry_wood' | 'dark_oak_wood' | 'mangrove_wood' | 'crimson_hyphae' | 'warped_hyphae' | 'oak_leaves' | 'spruce_leaves' | 'birch_leaves' | 'jungle_leaves' | 'acacia_leaves' | 'cherry_leaves' | 'dark_oak_leaves' | 'mangrove_leaves' | 'azalea_leaves' | 'flowering_azalea_leaves' | 'sponge' | 'wet_sponge' | 'glass' | 'tinted_glass' | 'lapis_block' | 'sandstone' | 'chiseled_sandstone' | 'cut_sandstone' | 'cobweb' | 'grass' | 'fern' | 'azalea' | 'flowering_azalea' | 'dead_bush' | 'seagrass' | 'sea_pickle' | 'white_wool' | 'orange_wool' | 'magenta_wool' | 'light_blue_wool' | 'yellow_wool' | 'lime_wool' | 'pink_wool' | 'gray_wool' | 'light_gray_wool' | 'cyan_wool' | 'purple_wool' | 'blue_wool' | 'brown_wool' | 'green_wool' | 'red_wool' | 'black_wool' | 'dandelion' | 'poppy' | 'blue_orchid' | 'allium' | 'azure_bluet' | 'red_tulip' | 'orange_tulip' | 'white_tulip' | 'pink_tulip' | 'oxeye_daisy' | 'cornflower' | 'lily_of_the_valley' | 'wither_rose' | 'torchflower' | 'pitcher_plant' | 'spore_blossom' | 'brown_mushroom' | 'red_mushroom' | 'crimson_fungus' | 'warped_fungus' | 'crimson_roots' | 'warped_roots' | 'nether_sprouts' | 'weeping_vines' | 'twisting_vines' | 'sugar_cane' | 'kelp' | 'moss_carpet' | 'pink_petals' | 'moss_block' | 'hanging_roots' | 'big_dripleaf' | 'small_dripleaf' | 'bamboo' | 'oak_slab' | 'spruce_slab' | 'birch_slab' | 'jungle_slab' | 'acacia_slab' | 'cherry_slab' | 'dark_oak_slab' | 'mangrove_slab' | 'bamboo_slab' | 'bamboo_mosaic_slab' | 'crimson_slab' | 'warped_slab' | 'stone_slab' | 'smooth_stone_slab' | 'sandstone_slab' | 'cut_sandstone_slab' | 'petrified_oak_slab' | 'cobblestone_slab' | 'brick_slab' | 'stone_brick_slab' | 'mud_brick_slab' | 'nether_brick_slab' | 'quartz_slab' | 'red_sandstone_slab' | 'cut_red_sandstone_slab' | 'purpur_slab' | 'prismarine_slab' | 'prismarine_brick_slab' | 'dark_prismarine_slab' | 'smooth_quartz' | 'smooth_red_sandstone' | 'smooth_sandstone' | 'smooth_stone' | 'bricks' | 'bookshelf' | 'chiseled_bookshelf' | 'decorated_pot' | 'mossy_cobblestone' | 'obsidian' | 'torch' | 'end_rod' | 'chorus_plant' | 'chorus_flower' | 'purpur_block' | 'purpur_pillar' | 'purpur_stairs' | 'spawner' | 'chest' | 'crafting_table' | 'farmland' | 'furnace' | 'ladder' | 'cobblestone_stairs' | 'snow' | 'ice' | 'snow_block' | 'cactus' | 'clay' | 'jukebox' | 'oak_fence' | 'spruce_fence' | 'birch_fence' | 'jungle_fence' | 'acacia_fence' | 'cherry_fence' | 'dark_oak_fence' | 'mangrove_fence' | 'bamboo_fence' | 'crimson_fence' | 'warped_fence' | 'pumpkin' | 'carved_pumpkin' | 'jack_o_lantern' | 'netherrack' | 'soul_sand' | 'soul_soil' | 'basalt' | 'polished_basalt' | 'smooth_basalt' | 'soul_torch' | 'glowstone' | 'infested_stone' | 'infested_cobblestone' | 'infested_stone_bricks' | 'infested_mossy_stone_bricks' | 'infested_cracked_stone_bricks' | 'infested_chiseled_stone_bricks' | 'infested_deepslate' | 'stone_bricks' | 'mossy_stone_bricks' | 'cracked_stone_bricks' | 'chiseled_stone_bricks' | 'packed_mud' | 'mud_bricks' | 'deepslate_bricks' | 'cracked_deepslate_bricks' | 'deepslate_tiles' | 'cracked_deepslate_tiles' | 'chiseled_deepslate' | 'reinforced_deepslate' | 'brown_mushroom_block' | 'red_mushroom_block' | 'mushroom_stem' | 'iron_bars' | 'chain' | 'glass_pane' | 'melon' | 'vine' | 'glow_lichen' | 'brick_stairs' | 'stone_brick_stairs' | 'mud_brick_stairs' | 'mycelium' | 'lily_pad' | 'nether_bricks' | 'cracked_nether_bricks' | 'chiseled_nether_bricks' | 'nether_brick_fence' | 'nether_brick_stairs' | 'sculk' | 'sculk_vein' | 'sculk_catalyst' | 'sculk_shrieker' | 'enchanting_table' | 'end_portal_frame' | 'end_stone' | 'end_stone_bricks' | 'dragon_egg' | 'sandstone_stairs' | 'ender_chest' | 'emerald_block' | 'oak_stairs' | 'spruce_stairs' | 'birch_stairs' | 'jungle_stairs' | 'acacia_stairs' | 'cherry_stairs' | 'dark_oak_stairs' | 'mangrove_stairs' | 'bamboo_stairs' | 'bamboo_mosaic_stairs' | 'crimson_stairs' | 'warped_stairs' | 'command_block' | 'beacon' | 'cobblestone_wall' | 'mossy_cobblestone_wall' | 'brick_wall' | 'prismarine_wall' | 'red_sandstone_wall' | 'mossy_stone_brick_wall' | 'granite_wall' | 'stone_brick_wall' | 'mud_brick_wall' | 'nether_brick_wall' | 'andesite_wall' | 'red_nether_brick_wall' | 'sandstone_wall' | 'end_stone_brick_wall' | 'diorite_wall' | 'blackstone_wall' | 'polished_blackstone_wall' | 'polished_blackstone_brick_wall' | 'cobbled_deepslate_wall' | 'polished_deepslate_wall' | 'deepslate_brick_wall' | 'deepslate_tile_wall' | 'anvil' | 'chipped_anvil' | 'damaged_anvil' | 'chiseled_quartz_block' | 'quartz_block' | 'quartz_bricks' | 'quartz_pillar' | 'quartz_stairs' | 'white_terracotta' | 'orange_terracotta' | 'magenta_terracotta' | 'light_blue_terracotta' | 'yellow_terracotta' | 'lime_terracotta' | 'pink_terracotta' | 'gray_terracotta' | 'light_gray_terracotta' | 'cyan_terracotta' | 'purple_terracotta' | 'blue_terracotta' | 'brown_terracotta' | 'green_terracotta' | 'red_terracotta' | 'black_terracotta' | 'barrier' | 'light' | 'hay_block' | 'white_carpet' | 'orange_carpet' | 'magenta_carpet' | 'light_blue_carpet' | 'yellow_carpet' | 'lime_carpet' | 'pink_carpet' | 'gray_carpet' | 'light_gray_carpet' | 'cyan_carpet' | 'purple_carpet' | 'blue_carpet' | 'brown_carpet' | 'green_carpet' | 'red_carpet' | 'black_carpet' | 'terracotta' | 'packed_ice' | 'dirt_path' | 'sunflower' | 'lilac' | 'rose_bush' | 'peony' | 'tall_grass' | 'large_fern' | 'white_stained_glass' | 'orange_stained_glass' | 'magenta_stained_glass' | 'light_blue_stained_glass' | 'yellow_stained_glass' | 'lime_stained_glass' | 'pink_stained_glass' | 'gray_stained_glass' | 'light_gray_stained_glass' | 'cyan_stained_glass' | 'purple_stained_glass' | 'blue_stained_glass' | 'brown_stained_glass' | 'green_stained_glass' | 'red_stained_glass' | 'black_stained_glass' | 'white_stained_glass_pane' | 'orange_stained_glass_pane' | 'magenta_stained_glass_pane' | 'light_blue_stained_glass_pane' | 'yellow_stained_glass_pane' | 'lime_stained_glass_pane' | 'pink_stained_glass_pane' | 'gray_stained_glass_pane' | 'light_gray_stained_glass_pane' | 'cyan_stained_glass_pane' | 'purple_stained_glass_pane' | 'blue_stained_glass_pane' | 'brown_stained_glass_pane' | 'green_stained_glass_pane' | 'red_stained_glass_pane' | 'black_stained_glass_pane' | 'prismarine' | 'prismarine_bricks' | 'dark_prismarine' | 'prismarine_stairs' | 'prismarine_brick_stairs' | 'dark_prismarine_stairs' | 'sea_lantern' | 'red_sandstone' | 'chiseled_red_sandstone' | 'cut_red_sandstone' | 'red_sandstone_stairs' | 'repeating_command_block' | 'chain_command_block' | 'magma_block' | 'nether_wart_block' | 'warped_wart_block' | 'red_nether_bricks' | 'bone_block' | 'structure_void' | 'shulker_box' | 'white_shulker_box' | 'orange_shulker_box' | 'magenta_shulker_box' | 'light_blue_shulker_box' | 'yellow_shulker_box' | 'lime_shulker_box' | 'pink_shulker_box' | 'gray_shulker_box' | 'light_gray_shulker_box' | 'cyan_shulker_box' | 'purple_shulker_box' | 'blue_shulker_box' | 'brown_shulker_box' | 'green_shulker_box' | 'red_shulker_box' | 'black_shulker_box' | 'white_glazed_terracotta' | 'orange_glazed_terracotta' | 'magenta_glazed_terracotta' | 'light_blue_glazed_terracotta' | 'yellow_glazed_terracotta' | 'lime_glazed_terracotta' | 'pink_glazed_terracotta' | 'gray_glazed_terracotta' | 'light_gray_glazed_terracotta' | 'cyan_glazed_terracotta' | 'purple_glazed_terracotta' | 'blue_glazed_terracotta' | 'brown_glazed_terracotta' | 'green_glazed_terracotta' | 'red_glazed_terracotta' | 'black_glazed_terracotta' | 'white_concrete' | 'orange_concrete' | 'magenta_concrete' | 'light_blue_concrete' | 'yellow_concrete' | 'lime_concrete' | 'pink_concrete' | 'gray_concrete' | 'light_gray_concrete' | 'cyan_concrete' | 'purple_concrete' | 'blue_concrete' | 'brown_concrete' | 'green_concrete' | 'red_concrete' | 'black_concrete' | 'white_concrete_powder' | 'orange_concrete_powder' | 'magenta_concrete_powder' | 'light_blue_concrete_powder' | 'yellow_concrete_powder' | 'lime_concrete_powder' | 'pink_concrete_powder' | 'gray_concrete_powder' | 'light_gray_concrete_powder' | 'cyan_concrete_powder' | 'purple_concrete_powder' | 'blue_concrete_powder' | 'brown_concrete_powder' | 'green_concrete_powder' | 'red_concrete_powder' | 'black_concrete_powder' | 'turtle_egg' | 'sniffer_egg' | 'dead_tube_coral_block' | 'dead_brain_coral_block' | 'dead_bubble_coral_block' | 'dead_fire_coral_block' | 'dead_horn_coral_block' | 'tube_coral_block' | 'brain_coral_block' | 'bubble_coral_block' | 'fire_coral_block' | 'horn_coral_block' | 'tube_coral' | 'brain_coral' | 'bubble_coral' | 'fire_coral' | 'horn_coral' | 'dead_brain_coral' | 'dead_bubble_coral' | 'dead_fire_coral' | 'dead_horn_coral' | 'dead_tube_coral' | 'tube_coral_fan' | 'brain_coral_fan' | 'bubble_coral_fan' | 'fire_coral_fan' | 'horn_coral_fan' | 'dead_tube_coral_fan' | 'dead_brain_coral_fan' | 'dead_bubble_coral_fan' | 'dead_fire_coral_fan' | 'dead_horn_coral_fan' | 'blue_ice' | 'conduit' | 'polished_granite_stairs' | 'smooth_red_sandstone_stairs' | 'mossy_stone_brick_stairs' | 'polished_diorite_stairs' | 'mossy_cobblestone_stairs' | 'end_stone_brick_stairs' | 'stone_stairs' | 'smooth_sandstone_stairs' | 'smooth_quartz_stairs' | 'granite_stairs' | 'andesite_stairs' | 'red_nether_brick_stairs' | 'polished_andesite_stairs' | 'diorite_stairs' | 'cobbled_deepslate_stairs' | 'polished_deepslate_stairs' | 'deepslate_brick_stairs' | 'deepslate_tile_stairs' | 'polished_granite_slab' | 'smooth_red_sandstone_slab' | 'mossy_stone_brick_slab' | 'polished_diorite_slab' | 'mossy_cobblestone_slab' | 'end_stone_brick_slab' | 'smooth_sandstone_slab' | 'smooth_quartz_slab' | 'granite_slab' | 'andesite_slab' | 'red_nether_brick_slab' | 'polished_andesite_slab' | 'diorite_slab' | 'cobbled_deepslate_slab' | 'polished_deepslate_slab' | 'deepslate_brick_slab' | 'deepslate_tile_slab' | 'scaffolding' | 'redstone' | 'redstone_torch' | 'redstone_block' | 'repeater' | 'comparator' | 'piston' | 'sticky_piston' | 'slime_block' | 'honey_block' | 'observer' | 'hopper' | 'dispenser' | 'dropper' | 'lectern' | 'target' | 'lever' | 'lightning_rod' | 'daylight_detector' | 'sculk_sensor' | 'calibrated_sculk_sensor' | 'tripwire_hook' | 'trapped_chest' | 'tnt' | 'redstone_lamp' | 'note_block' | 'stone_button' | 'polished_blackstone_button' | 'oak_button' | 'spruce_button' | 'birch_button' | 'jungle_button' | 'acacia_button' | 'cherry_button' | 'dark_oak_button' | 'mangrove_button' | 'bamboo_button' | 'crimson_button' | 'warped_button' | 'stone_pressure_plate' | 'polished_blackstone_pressure_plate' | 'light_weighted_pressure_plate' | 'heavy_weighted_pressure_plate' | 'oak_pressure_plate' | 'spruce_pressure_plate' | 'birch_pressure_plate' | 'jungle_pressure_plate' | 'acacia_pressure_plate' | 'cherry_pressure_plate' | 'dark_oak_pressure_plate' | 'mangrove_pressure_plate' | 'bamboo_pressure_plate' | 'crimson_pressure_plate' | 'warped_pressure_plate' | 'iron_door' | 'oak_door' | 'spruce_door' | 'birch_door' | 'jungle_door' | 'acacia_door' | 'cherry_door' | 'dark_oak_door' | 'mangrove_door' | 'bamboo_door' | 'crimson_door' | 'warped_door' | 'iron_trapdoor' | 'oak_trapdoor' | 'spruce_trapdoor' | 'birch_trapdoor' | 'jungle_trapdoor' | 'acacia_trapdoor' | 'cherry_trapdoor' | 'dark_oak_trapdoor' | 'mangrove_trapdoor' | 'bamboo_trapdoor' | 'crimson_trapdoor' | 'warped_trapdoor' | 'oak_fence_gate' | 'spruce_fence_gate' | 'birch_fence_gate' | 'jungle_fence_gate' | 'acacia_fence_gate' | 'cherry_fence_gate' | 'dark_oak_fence_gate' | 'mangrove_fence_gate' | 'bamboo_fence_gate' | 'crimson_fence_gate' | 'warped_fence_gate' | 'powered_rail' | 'detector_rail' | 'rail' | 'activator_rail' | 'saddle' | 'minecart' | 'chest_minecart' | 'furnace_minecart' | 'tnt_minecart' | 'hopper_minecart' | 'carrot_on_a_stick' | 'warped_fungus_on_a_stick' | 'elytra' | 'oak_boat' | 'oak_chest_boat' | 'spruce_boat' | 'spruce_chest_boat' | 'birch_boat' | 'birch_chest_boat' | 'jungle_boat' | 'jungle_chest_boat' | 'acacia_boat' | 'acacia_chest_boat' | 'cherry_boat' | 'cherry_chest_boat' | 'dark_oak_boat' | 'dark_oak_chest_boat' | 'mangrove_boat' | 'mangrove_chest_boat' | 'bamboo_raft' | 'bamboo_chest_raft' | 'structure_block' | 'jigsaw' | 'turtle_helmet' | 'scute' | 'flint_and_steel' | 'apple' | 'bow' | 'arrow' | 'coal' | 'charcoal' | 'diamond' | 'emerald' | 'lapis_lazuli' | 'quartz' | 'amethyst_shard' | 'raw_iron' | 'iron_ingot' | 'raw_copper' | 'copper_ingot' | 'raw_gold' | 'gold_ingot' | 'netherite_ingot' | 'netherite_scrap' | 'wooden_sword' | 'wooden_shovel' | 'wooden_pickaxe' | 'wooden_axe' | 'wooden_hoe' | 'stone_sword' | 'stone_shovel' | 'stone_pickaxe' | 'stone_axe' | 'stone_hoe' | 'golden_sword' | 'golden_shovel' | 'golden_pickaxe' | 'golden_axe' | 'golden_hoe' | 'iron_sword' | 'iron_shovel' | 'iron_pickaxe' | 'iron_axe' | 'iron_hoe' | 'diamond_sword' | 'diamond_shovel' | 'diamond_pickaxe' | 'diamond_axe' | 'diamond_hoe' | 'netherite_sword' | 'netherite_shovel' | 'netherite_pickaxe' | 'netherite_axe' | 'netherite_hoe' | 'stick' | 'bowl' | 'mushroom_stew' | 'string' | 'feather' | 'gunpowder' | 'wheat_seeds' | 'wheat' | 'bread' | 'leather_helmet' | 'leather_chestplate' | 'leather_leggings' | 'leather_boots' | 'chainmail_helmet' | 'chainmail_chestplate' | 'chainmail_leggings' | 'chainmail_boots' | 'iron_helmet' | 'iron_chestplate' | 'iron_leggings' | 'iron_boots' | 'diamond_helmet' | 'diamond_chestplate' | 'diamond_leggings' | 'diamond_boots' | 'golden_helmet' | 'golden_chestplate' | 'golden_leggings' | 'golden_boots' | 'netherite_helmet' | 'netherite_chestplate' | 'netherite_leggings' | 'netherite_boots' | 'flint' | 'porkchop' | 'cooked_porkchop' | 'painting' | 'golden_apple' | 'enchanted_golden_apple' | 'oak_sign' | 'spruce_sign' | 'birch_sign' | 'jungle_sign' | 'acacia_sign' | 'cherry_sign' | 'dark_oak_sign' | 'mangrove_sign' | 'bamboo_sign' | 'crimson_sign' | 'warped_sign' | 'oak_hanging_sign' | 'spruce_hanging_sign' | 'birch_hanging_sign' | 'jungle_hanging_sign' | 'acacia_hanging_sign' | 'cherry_hanging_sign' | 'dark_oak_hanging_sign' | 'mangrove_hanging_sign' | 'bamboo_hanging_sign' | 'crimson_hanging_sign' | 'warped_hanging_sign' | 'bucket' | 'water_bucket' | 'lava_bucket' | 'powder_snow_bucket' | 'snowball' | 'leather' | 'milk_bucket' | 'pufferfish_bucket' | 'salmon_bucket' | 'cod_bucket' | 'tropical_fish_bucket' | 'axolotl_bucket' | 'tadpole_bucket' | 'brick' | 'clay_ball' | 'dried_kelp_block' | 'paper' | 'book' | 'slime_ball' | 'egg' | 'compass' | 'recovery_compass' | 'bundle' | 'fishing_rod' | 'clock' | 'spyglass' | 'glowstone_dust' | 'cod' | 'salmon' | 'tropical_fish' | 'pufferfish' | 'cooked_cod' | 'cooked_salmon' | 'ink_sac' | 'glow_ink_sac' | 'cocoa_beans' | 'white_dye' | 'orange_dye' | 'magenta_dye' | 'light_blue_dye' | 'yellow_dye' | 'lime_dye' | 'pink_dye' | 'gray_dye' | 'light_gray_dye' | 'cyan_dye' | 'purple_dye' | 'blue_dye' | 'brown_dye' | 'green_dye' | 'red_dye' | 'black_dye' | 'bone_meal' | 'bone' | 'sugar' | 'cake' | 'white_bed' | 'orange_bed' | 'magenta_bed' | 'light_blue_bed' | 'yellow_bed' | 'lime_bed' | 'pink_bed' | 'gray_bed' | 'light_gray_bed' | 'cyan_bed' | 'purple_bed' | 'blue_bed' | 'brown_bed' | 'green_bed' | 'red_bed' | 'black_bed' | 'cookie' | 'filled_map' | 'shears' | 'melon_slice' | 'dried_kelp' | 'pumpkin_seeds' | 'melon_seeds' | 'beef' | 'cooked_beef' | 'chicken' | 'cooked_chicken' | 'rotten_flesh' | 'ender_pearl' | 'blaze_rod' | 'ghast_tear' | 'gold_nugget' | 'nether_wart' | 'potion' | 'glass_bottle' | 'spider_eye' | 'fermented_spider_eye' | 'blaze_powder' | 'magma_cream' | 'brewing_stand' | 'cauldron' | 'ender_eye' | 'glistering_melon_slice' | 'allay_spawn_egg' | 'axolotl_spawn_egg' | 'bat_spawn_egg' | 'bee_spawn_egg' | 'blaze_spawn_egg' | 'cat_spawn_egg' | 'camel_spawn_egg' | 'cave_spider_spawn_egg' | 'chicken_spawn_egg' | 'cod_spawn_egg' | 'cow_spawn_egg' | 'creeper_spawn_egg' | 'dolphin_spawn_egg' | 'donkey_spawn_egg' | 'drowned_spawn_egg' | 'elder_guardian_spawn_egg' | 'ender_dragon_spawn_egg' | 'enderman_spawn_egg' | 'endermite_spawn_egg' | 'evoker_spawn_egg' | 'fox_spawn_egg' | 'frog_spawn_egg' | 'ghast_spawn_egg' | 'glow_squid_spawn_egg' | 'goat_spawn_egg' | 'guardian_spawn_egg' | 'hoglin_spawn_egg' | 'horse_spawn_egg' | 'husk_spawn_egg' | 'iron_golem_spawn_egg' | 'llama_spawn_egg' | 'magma_cube_spawn_egg' | 'mooshroom_spawn_egg' | 'mule_spawn_egg' | 'ocelot_spawn_egg' | 'panda_spawn_egg' | 'parrot_spawn_egg' | 'phantom_spawn_egg' | 'pig_spawn_egg' | 'piglin_spawn_egg' | 'piglin_brute_spawn_egg' | 'pillager_spawn_egg' | 'polar_bear_spawn_egg' | 'pufferfish_spawn_egg' | 'rabbit_spawn_egg' | 'ravager_spawn_egg' | 'salmon_spawn_egg' | 'sheep_spawn_egg' | 'shulker_spawn_egg' | 'silverfish_spawn_egg' | 'skeleton_spawn_egg' | 'skeleton_horse_spawn_egg' | 'slime_spawn_egg' | 'sniffer_spawn_egg' | 'snow_golem_spawn_egg' | 'spider_spawn_egg' | 'squid_spawn_egg' | 'stray_spawn_egg' | 'strider_spawn_egg' | 'tadpole_spawn_egg' | 'trader_llama_spawn_egg' | 'tropical_fish_spawn_egg' | 'turtle_spawn_egg' | 'vex_spawn_egg' | 'villager_spawn_egg' | 'vindicator_spawn_egg' | 'wandering_trader_spawn_egg' | 'warden_spawn_egg' | 'witch_spawn_egg' | 'wither_spawn_egg' | 'wither_skeleton_spawn_egg' | 'wolf_spawn_egg' | 'zoglin_spawn_egg' | 'zombie_spawn_egg' | 'zombie_horse_spawn_egg' | 'zombie_villager_spawn_egg' | 'zombified_piglin_spawn_egg' | 'experience_bottle' | 'fire_charge' | 'writable_book' | 'written_book' | 'item_frame' | 'glow_item_frame' | 'flower_pot' | 'carrot' | 'potato' | 'baked_potato' | 'poisonous_potato' | 'map' | 'golden_carrot' | 'skeleton_skull' | 'wither_skeleton_skull' | 'player_head' | 'zombie_head' | 'creeper_head' | 'dragon_head' | 'piglin_head' | 'nether_star' | 'pumpkin_pie' | 'firework_rocket' | 'firework_star' | 'enchanted_book' | 'nether_brick' | 'prismarine_shard' | 'prismarine_crystals' | 'rabbit' | 'cooked_rabbit' | 'rabbit_stew' | 'rabbit_foot' | 'rabbit_hide' | 'armor_stand' | 'iron_horse_armor' | 'golden_horse_armor' | 'diamond_horse_armor' | 'leather_horse_armor' | 'lead' | 'name_tag' | 'command_block_minecart' | 'mutton' | 'cooked_mutton' | 'white_banner' | 'orange_banner' | 'magenta_banner' | 'light_blue_banner' | 'yellow_banner' | 'lime_banner' | 'pink_banner' | 'gray_banner' | 'light_gray_banner' | 'cyan_banner' | 'purple_banner' | 'blue_banner' | 'brown_banner' | 'green_banner' | 'red_banner' | 'black_banner' | 'end_crystal' | 'chorus_fruit' | 'popped_chorus_fruit' | 'torchflower_seeds' | 'pitcher_pod' | 'beetroot' | 'beetroot_seeds' | 'beetroot_soup' | 'dragon_breath' | 'splash_potion' | 'spectral_arrow' | 'tipped_arrow' | 'lingering_potion' | 'shield' | 'totem_of_undying' | 'shulker_shell' | 'iron_nugget' | 'knowledge_book' | 'debug_stick' | 'music_disc_13' | 'music_disc_cat' | 'music_disc_blocks' | 'music_disc_chirp' | 'music_disc_far' | 'music_disc_mall' | 'music_disc_mellohi' | 'music_disc_stal' | 'music_disc_strad' | 'music_disc_ward' | 'music_disc_11' | 'music_disc_wait' | 'music_disc_otherside' | 'music_disc_relic' | 'music_disc_5' | 'music_disc_pigstep' | 'disc_fragment_5' | 'trident' | 'phantom_membrane' | 'nautilus_shell' | 'heart_of_the_sea' | 'crossbow' | 'suspicious_stew' | 'loom' | 'flower_banner_pattern' | 'creeper_banner_pattern' | 'skull_banner_pattern' | 'mojang_banner_pattern' | 'globe_banner_pattern' | 'piglin_banner_pattern' | 'goat_horn' | 'composter' | 'barrel' | 'smoker' | 'blast_furnace' | 'cartography_table' | 'fletching_table' | 'grindstone' | 'smithing_table' | 'stonecutter' | 'bell' | 'lantern' | 'soul_lantern' | 'sweet_berries' | 'glow_berries' | 'campfire' | 'soul_campfire' | 'shroomlight' | 'honeycomb' | 'bee_nest' | 'beehive' | 'honey_bottle' | 'honeycomb_block' | 'lodestone' | 'crying_obsidian' | 'blackstone' | 'blackstone_slab' | 'blackstone_stairs' | 'gilded_blackstone' | 'polished_blackstone' | 'polished_blackstone_slab' | 'polished_blackstone_stairs' | 'chiseled_polished_blackstone' | 'polished_blackstone_bricks' | 'polished_blackstone_brick_slab' | 'polished_blackstone_brick_stairs' | 'cracked_polished_blackstone_bricks' | 'respawn_anchor' | 'candle' | 'white_candle' | 'orange_candle' | 'magenta_candle' | 'light_blue_candle' | 'yellow_candle' | 'lime_candle' | 'pink_candle' | 'gray_candle' | 'light_gray_candle' | 'cyan_candle' | 'purple_candle' | 'blue_candle' | 'brown_candle' | 'green_candle' | 'red_candle' | 'black_candle' | 'small_amethyst_bud' | 'medium_amethyst_bud' | 'large_amethyst_bud' | 'amethyst_cluster' | 'pointed_dripstone' | 'ochre_froglight' | 'verdant_froglight' | 'pearlescent_froglight' | 'frogspawn' | 'echo_shard' | 'brush' | 'netherite_upgrade_smithing_template' | 'sentry_armor_trim_smithing_template' | 'dune_armor_trim_smithing_template' | 'coast_armor_trim_smithing_template' | 'wild_armor_trim_smithing_template' | 'ward_armor_trim_smithing_template' | 'eye_armor_trim_smithing_template' | 'vex_armor_trim_smithing_template' | 'tide_armor_trim_smithing_template' | 'snout_armor_trim_smithing_template' | 'rib_armor_trim_smithing_template' | 'spire_armor_trim_smithing_template' | 'wayfinder_armor_trim_smithing_template' | 'shaper_armor_trim_smithing_template' | 'silence_armor_trim_smithing_template' | 'raiser_armor_trim_smithing_template' | 'host_armor_trim_smithing_template' | 'angler_pottery_sherd' | 'archer_pottery_sherd' | 'arms_up_pottery_sherd' | 'blade_pottery_sherd' | 'brewer_pottery_sherd' | 'burn_pottery_sherd' | 'danger_pottery_sherd' | 'explorer_pottery_sherd' | 'friend_pottery_sherd' | 'heart_pottery_sherd' | 'heartbreak_pottery_sherd' | 'howl_pottery_sherd' | 'miner_pottery_sherd' | 'mourner_pottery_sherd' | 'plenty_pottery_sherd' | 'prize_pottery_sherd' | 'sheaf_pottery_sherd' | 'shelter_pottery_sherd' | 'skull_pottery_sherd' | 'snort_pottery_sherd'; +export type EntityNames = 'allay' | 'area_effect_cloud' | 'armor_stand' | 'arrow' | 'axolotl' | 'bat' | 'bee' | 'blaze' | 'block_display' | 'boat' | 'camel' | 'cat' | 'cave_spider' | 'chest_boat' | 'chest_minecart' | 'chicken' | 'cod' | 'command_block_minecart' | 'cow' | 'creeper' | 'dolphin' | 'donkey' | 'dragon_fireball' | 'drowned' | 'egg' | 'elder_guardian' | 'end_crystal' | 'ender_dragon' | 'ender_pearl' | 'enderman' | 'endermite' | 'evoker' | 'evoker_fangs' | 'experience_bottle' | 'experience_orb' | 'eye_of_ender' | 'falling_block' | 'firework_rocket' | 'fox' | 'frog' | 'furnace_minecart' | 'ghast' | 'giant' | 'glow_item_frame' | 'glow_squid' | 'goat' | 'guardian' | 'hoglin' | 'hopper_minecart' | 'horse' | 'husk' | 'illusioner' | 'interaction' | 'iron_golem' | 'item' | 'item_display' | 'item_frame' | 'fireball' | 'leash_knot' | 'lightning_bolt' | 'llama' | 'llama_spit' | 'magma_cube' | 'marker' | 'minecart' | 'mooshroom' | 'mule' | 'ocelot' | 'painting' | 'panda' | 'parrot' | 'phantom' | 'pig' | 'piglin' | 'piglin_brute' | 'pillager' | 'polar_bear' | 'potion' | 'pufferfish' | 'rabbit' | 'ravager' | 'salmon' | 'sheep' | 'shulker' | 'shulker_bullet' | 'silverfish' | 'skeleton' | 'skeleton_horse' | 'slime' | 'small_fireball' | 'sniffer' | 'snow_golem' | 'snowball' | 'spawner_minecart' | 'spectral_arrow' | 'spider' | 'squid' | 'stray' | 'strider' | 'tadpole' | 'text_display' | 'tnt' | 'tnt_minecart' | 'trader_llama' | 'trident' | 'tropical_fish' | 'turtle' | 'vex' | 'villager' | 'vindicator' | 'wandering_trader' | 'warden' | 'witch' | 'wither' | 'wither_skeleton' | 'wither_skull' | 'wolf' | 'zoglin' | 'zombie' | 'zombie_horse' | 'zombie_villager' | 'zombified_piglin' | 'player' | 'fishing_bobber'; +export type BiomesNames = 'badlands' | 'bamboo_jungle' | 'basalt_deltas' | 'beach' | 'birch_forest' | 'cherry_grove' | 'cold_ocean' | 'crimson_forest' | 'dark_forest' | 'deep_cold_ocean' | 'deep_dark' | 'deep_frozen_ocean' | 'deep_lukewarm_ocean' | 'deep_ocean' | 'desert' | 'dripstone_caves' | 'end_barrens' | 'end_highlands' | 'end_midlands' | 'eroded_badlands' | 'flower_forest' | 'forest' | 'frozen_ocean' | 'frozen_peaks' | 'frozen_river' | 'grove' | 'ice_spikes' | 'jagged_peaks' | 'jungle' | 'lukewarm_ocean' | 'lush_caves' | 'mangrove_swamp' | 'meadow' | 'mushroom_fields' | 'nether_wastes' | 'ocean' | 'old_growth_birch_forest' | 'old_growth_pine_taiga' | 'old_growth_spruce_taiga' | 'plains' | 'river' | 'savanna' | 'savanna_plateau' | 'small_end_islands' | 'snowy_beach' | 'snowy_plains' | 'snowy_slopes' | 'snowy_taiga' | 'soul_sand_valley' | 'sparse_jungle' | 'stony_peaks' | 'stony_shore' | 'sunflower_plains' | 'swamp' | 'taiga' | 'the_end' | 'the_void' | 'warm_ocean' | 'warped_forest' | 'windswept_forest' | 'windswept_gravelly_hills' | 'windswept_hills' | 'windswept_savanna' | 'wooded_badlands'; +export type EnchantmentNames = 'protection' | 'fire_protection' | 'feather_falling' | 'blast_protection' | 'projectile_protection' | 'respiration' | 'aqua_affinity' | 'thorns' | 'depth_strider' | 'frost_walker' | 'binding_curse' | 'soul_speed' | 'swift_sneak' | 'sharpness' | 'smite' | 'bane_of_arthropods' | 'knockback' | 'fire_aspect' | 'looting' | 'sweeping' | 'efficiency' | 'silk_touch' | 'unbreaking' | 'fortune' | 'power' | 'punch' | 'flame' | 'infinity' | 'luck_of_the_sea' | 'lure' | 'loyalty' | 'impaling' | 'riptide' | 'channeling' | 'multishot' | 'quick_charge' | 'piercing' | 'mending' | 'vanishing_curse'; + +export type EntityMetadataVersions = { +'Mob': {},'Monster': {},'Creeper': {},'Skeleton': {},'Spider': {},'Giant': {},'Zombie': {},'Slime': {},'Ghast': {},'PigZombie': {},'Enderman': {},'CaveSpider': {},'Silverfish': {},'Blaze': {},'LavaSlime': {},'EnderDragon': {},'WitherBoss': {},'Bat': {},'Witch': {},'Endermite': {},'Guardian': {},'Pig': {},'Sheep': {},'Cow': {},'Chicken': {},'Squid': {},'Wolf': {},'MushroomCow': {},'SnowMan': {},'Ozelot': {},'VillagerGolem': {},'EntityHorse': {},'Rabbit': {},'Villager': {},'Boat': {},'Item': {},'MinecartRideable': {},'PrimedTnt': {},'EnderCrystal': {},'Arrow': {},'Snowball': {},'ThrownEgg': {},'Fireball': {},'SmallFireball': {},'ThrownEnderpearl': {},'WitherSkull': {},'FallingSand': {},'ItemFrame': {},'EyeOfEnderSignal': {},'ThrownPotion': {},'ThrownExpBottle': {},'FireworksRocketEntity': {},'LeashKnot': {},'ArmorStand': {},'Fishing Float': {},'Shulker': {},'XPOrb': {},'Dragon Fireball': {},'item': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item': string;},'xp_orb': {},'area_effect_cloud': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'radius': string; +/** 1.19.4+ (9) */ +'color': string; +/** 1.19.4+ (10) */ +'waiting': string; +/** 1.19.4+ (11) */ +'particle': string;},'elder_guardian': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'moving': string; +/** 1.19.4+ (17) */ +'attack_target': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'wither_skeleton': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'stray': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'egg': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'leash_knot': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'painting': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'painting_variant': string;},'arrow': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'flags': string; +/** 1.19.4+ (9) */ +'pierce_level': string; +/** 1.19.4+ (10) */ +'effect_color': string;},'snowball': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'fireball': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'small_fireball': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'ender_pearl': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'eye_of_ender_signal': {},'potion': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'xp_bottle': {},'item_frame': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item': string; +/** 1.19.4+ (9) */ +'rotation': string;},'wither_skull': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'dangerous': string;},'tnt': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'fuse': string; +/** 1.20.3+ (9) */ +'block_state': string;},'falling_block': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'start_pos': string;},'fireworks_rocket': {},'husk': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'special_type': string; +/** 1.19.4+ (18) */ +'drowned_conversion': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'spectral_arrow': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'flags': string; +/** 1.19.4+ (9) */ +'pierce_level': string;},'shulker_bullet': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'dragon_fireball': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'zombie_villager': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'special_type': string; +/** 1.19.4+ (18) */ +'drowned_conversion': string; +/** 1.19.4+ (19) */ +'converting': string; +/** 1.19.4+ (20) */ +'villager_data': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'skeleton_horse': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'zombie_horse': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'armor_stand': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'client_flags': string; +/** 1.19.4+ (16) */ +'head_pose': string; +/** 1.19.4+ (17) */ +'body_pose': string; +/** 1.19.4+ (18) */ +'left_arm_pose': string; +/** 1.19.4+ (19) */ +'right_arm_pose': string; +/** 1.19.4+ (20) */ +'left_leg_pose': string; +/** 1.19.4+ (21) */ +'right_leg_pose': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'donkey': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'chest': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'mule': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'chest': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'evocation_fangs': {},'evocation_illager': {},'vex': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'vindication_illager': {},'commandblock_minecart': {},'boat': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'type': string; +/** 1.19.4+ (12) */ +'paddle_left': string; +/** 1.19.4+ (13) */ +'paddle_right': string; +/** 1.19.4+ (14) */ +'bubble_time': string;},'minecart': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'display_block': string; +/** 1.19.4+ (12) */ +'display_offset': string; +/** 1.19.4+ (13) */ +'custom_display': string;},'chest_minecart': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'display_block': string; +/** 1.19.4+ (12) */ +'display_offset': string; +/** 1.19.4+ (13) */ +'custom_display': string;},'furnace_minecart': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'display_block': string; +/** 1.19.4+ (12) */ +'display_offset': string; +/** 1.19.4+ (13) */ +'custom_display': string; +/** 1.19.4+ (14) */ +'fuel': string;},'tnt_minecart': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'display_block': string; +/** 1.19.4+ (12) */ +'display_offset': string; +/** 1.19.4+ (13) */ +'custom_display': string;},'hopper_minecart': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'display_block': string; +/** 1.19.4+ (12) */ +'display_offset': string; +/** 1.19.4+ (13) */ +'custom_display': string;},'spawner_minecart': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'display_block': string; +/** 1.19.4+ (12) */ +'display_offset': string; +/** 1.19.4+ (13) */ +'custom_display': string;},'creeper': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'swell_dir': string; +/** 1.19.4+ (17) */ +'is_powered': string; +/** 1.19.4+ (18) */ +'is_ignited': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'skeleton': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'stray_conversion': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'spider': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'giant': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'zombie': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'special_type': string; +/** 1.19.4+ (18) */ +'drowned_conversion': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'slime': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'size': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'ghast': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'is_charging': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'zombie_pigman': {},'enderman': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'carry_state': string; +/** 1.19.4+ (17) */ +'creepy': string; +/** 1.19.4+ (18) */ +'stared_at': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'cave_spider': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'silverfish': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'blaze': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'magma_cube': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'size': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'ender_dragon': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'phase': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'wither': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'target_a': string; +/** 1.19.4+ (17) */ +'target_b': string; +/** 1.19.4+ (18) */ +'target_c': string; +/** 1.19.4+ (19) */ +'inv': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'bat': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'witch': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'is_celebrating': string; +/** 1.19.4+ (17) */ +'using_item': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'endermite': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'guardian': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'moving': string; +/** 1.19.4+ (17) */ +'attack_target': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'shulker': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'attach_face': string; +/** 1.19.4+ (17) */ +'peek': string; +/** 1.19.4+ (18) */ +'color': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'pig': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'saddle': string; +/** 1.19.4+ (18) */ +'boost_time': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'sheep': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'wool': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'cow': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'chicken': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'squid': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'wolf': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'owneruuid': string; +/** 1.19.4+ (19) */ +'interested': string; +/** 1.19.4+ (20) */ +'collar_color': string; +/** 1.19.4+ (21) */ +'remaining_anger_time': string; +/** 1.20.5+ (10) */ +'effect_particles': string; +/** 1.20.5+ (22) */ +'variant': string;},'mooshroom': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'type': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'snowman': {},'ocelot': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'trusting': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'villager_golem': {},'horse': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'type_variant': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'rabbit': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'type': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'polar_bear': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'standing': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'llama': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'chest': string; +/** 1.19.4+ (19) */ +'strength': string; +/** 1.19.4+ (20) */ +'swag': string; +/** 1.19.4+ (21) */ +'variant': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'llama_spit': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'villager': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'unhappy_counter': string; +/** 1.19.4+ (18) */ +'villager_data': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'ender_crystal': {},'Fishing Hook': {},'illusion_illager': {},'parrot': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'owneruuid': string; +/** 1.19.4+ (19) */ +'variant': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'cod': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'from_bucket': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'dolphin': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'treasure_pos': string; +/** 1.19.4+ (17) */ +'got_fish': string; +/** 1.19.4+ (18) */ +'moistness_level': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'drowned': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'special_type': string; +/** 1.19.4+ (18) */ +'drowned_conversion': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'end_crystal': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'beam_target': string; +/** 1.19.4+ (9) */ +'show_bottom': string;},'evoker_fangs': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'evoker': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'is_celebrating': string; +/** 1.19.4+ (17) */ +'spell_casting': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'experience_orb': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'eye_of_ender': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'illusioner': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'is_celebrating': string; +/** 1.19.4+ (17) */ +'spell_casting': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'pufferfish': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'from_bucket': string; +/** 1.19.4+ (17) */ +'puff_state': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'salmon': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'from_bucket': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'snow_golem': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'pumpkin': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'tropical_fish': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'from_bucket': string; +/** 1.19.4+ (17) */ +'type_variant': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'turtle': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'home_pos': string; +/** 1.19.4+ (18) */ +'has_egg': string; +/** 1.19.4+ (19) */ +'laying_egg': string; +/** 1.19.4+ (20) */ +'travel_pos': string; +/** 1.19.4+ (21) */ +'going_home': string; +/** 1.19.4+ (22) */ +'travelling': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'experience_bottle': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item_stack': string;},'iron_golem}': {},'vindicator': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'is_celebrating': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'phantom': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'size': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'lightning_bolt': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'player': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'player_absorption': string; +/** 1.19.4+ (16) */ +'score': string; +/** 1.19.4+ (17) */ +'player_mode_customisation': string; +/** 1.19.4+ (18) */ +'player_main_hand': string; +/** 1.19.4+ (19) */ +'shoulder_left': string; +/** 1.19.4+ (20) */ +'shoulder_right': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'fishing_bobber': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hooked_entity': string; +/** 1.19.4+ (9) */ +'biting': string;},'trident': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'flags': string; +/** 1.19.4+ (9) */ +'pierce_level': string; +/** 1.19.4+ (10) */ +'loyalty': string; +/** 1.19.4+ (11) */ +'foil': string;},'item_stack': {},'area_effect cloud': {},'activated_tnt': {},'endercrystal': {},'tipped_arrow': {},'firecharge': {},'thrown_enderpearl': {},'falling_objects': {},'item_frames': {},'eye_of ender': {},'thrown_potion': {},'thrown_exp bottle': {},'firework_rocket': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'fireworks_item': string; +/** 1.19.4+ (9) */ +'attached_to_target': string; +/** 1.19.4+ (10) */ +'shot_at_angle': string;},'armorstand': {},'fishing_hook': {},'cat': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'owneruuid': string; +/** 1.19.4+ (19) */ +'variant': string; +/** 1.19.4+ (20) */ +'is_lying': string; +/** 1.19.4+ (21) */ +'relax_state_one': string; +/** 1.19.4+ (22) */ +'collar_color': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'fox': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'type': string; +/** 1.19.4+ (18) */ +'flags': string; +/** 1.19.4+ (19) */ +'trusted_0': string; +/** 1.19.4+ (20) */ +'trusted_1': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'command_block_minecart': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'display_block': string; +/** 1.19.4+ (12) */ +'display_offset': string; +/** 1.19.4+ (13) */ +'custom_display': string; +/** 1.19.4+ (14) */ +'command_name': string; +/** 1.19.4+ (15) */ +'last_output': string;},'panda': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'unhappy_counter': string; +/** 1.19.4+ (18) */ +'sneeze_counter': string; +/** 1.19.4+ (19) */ +'eat_counter': string; +/** 1.19.4+ (20) */ +'main_gene': string; +/** 1.19.4+ (21) */ +'hidden_gene': string; +/** 1.19.4+ (22) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'trader_llama': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'chest': string; +/** 1.19.4+ (19) */ +'strength': string; +/** 1.19.4+ (20) */ +'swag': string; +/** 1.19.4+ (21) */ +'variant': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'iron_golem': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'pillager': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'is_celebrating': string; +/** 1.19.4+ (17) */ +'is_charging_crossbow': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'wandering_trader': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'unhappy_counter': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'ravager': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'is_celebrating': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'bee': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'remaining_anger_time': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'hoglin': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'immune_to_zombification': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'piglin': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'immune_to_zombification': string; +/** 1.19.4+ (17) */ +'baby': string; +/** 1.19.4+ (18) */ +'is_charging_crossbow': string; +/** 1.19.4+ (19) */ +'is_dancing': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'strider': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'boost_time': string; +/** 1.19.4+ (18) */ +'suffocating': string; +/** 1.19.4+ (19) */ +'saddle': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'zoglin': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'zombified_piglin': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'special_type': string; +/** 1.19.4+ (18) */ +'drowned_conversion': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'piglin_brute': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'immune_to_zombification': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'axolotl': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'variant': string; +/** 1.19.4+ (18) */ +'playing_dead': string; +/** 1.19.4+ (19) */ +'from_bucket': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'glow_item_frame': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'item': string; +/** 1.19.4+ (9) */ +'rotation': string;},'glow_squid': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'dark_ticks_remaining': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'goat': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'is_screaming_goat': string; +/** 1.19.4+ (18) */ +'has_left_horn': string; +/** 1.19.4+ (19) */ +'has_right_horn': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'marker': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string;},'allay': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'dancing': string; +/** 1.19.4+ (17) */ +'can_duplicate': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'chest_boat': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'hurt': string; +/** 1.19.4+ (9) */ +'hurtdir': string; +/** 1.19.4+ (10) */ +'damage': string; +/** 1.19.4+ (11) */ +'type': string; +/** 1.19.4+ (12) */ +'paddle_left': string; +/** 1.19.4+ (13) */ +'paddle_right': string; +/** 1.19.4+ (14) */ +'bubble_time': string;},'frog': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'variant': string; +/** 1.19.4+ (18) */ +'tongue_target': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'tadpole': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'from_bucket': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'warden': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'client_anger_level': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'camel': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'flags': string; +/** 1.19.4+ (18) */ +'dash': string; +/** 1.19.4+ (19) */ +'last_pose_change_tick': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'block_display': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'interpolation_start_delta_ticks': string; +/** 1.19.4+ (9) */ +'interpolation_duration': string; +/** 1.19.4+ (10) */ +'translation': string; +/** 1.19.4+ (11) */ +'scale': string; +/** 1.19.4+ (12) */ +'left_rotation': string; +/** 1.19.4+ (13) */ +'right_rotation': string; +/** 1.19.4+ (14) */ +'billboard_render_constraints': string; +/** 1.19.4+ (15) */ +'brightness_override': string; +/** 1.19.4+ (16) */ +'view_range': string; +/** 1.19.4+ (17) */ +'shadow_radius': string; +/** 1.19.4+ (18) */ +'shadow_strength': string; +/** 1.19.4+ (19) */ +'width': string; +/** 1.19.4+ (20) */ +'height': string; +/** 1.19.4+ (21) */ +'glow_color_override': string; +/** 1.19.4+ (22) */ +'block_state': string; +/** 1.20.2+ (8) */ +'transformation_interpolation_start_delta_ticks': string; +/** 1.20.2+ (9) */ +'transformation_interpolation_duration': string; +/** 1.20.2+ (10) */ +'pos_rot_interpolation_duration': string;},'interaction': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'width': string; +/** 1.19.4+ (9) */ +'height': string; +/** 1.19.4+ (10) */ +'response': string;},'item_display': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'interpolation_start_delta_ticks': string; +/** 1.19.4+ (9) */ +'interpolation_duration': string; +/** 1.19.4+ (10) */ +'translation': string; +/** 1.19.4+ (11) */ +'scale': string; +/** 1.19.4+ (12) */ +'left_rotation': string; +/** 1.19.4+ (13) */ +'right_rotation': string; +/** 1.19.4+ (14) */ +'billboard_render_constraints': string; +/** 1.19.4+ (15) */ +'brightness_override': string; +/** 1.19.4+ (16) */ +'view_range': string; +/** 1.19.4+ (17) */ +'shadow_radius': string; +/** 1.19.4+ (18) */ +'shadow_strength': string; +/** 1.19.4+ (19) */ +'width': string; +/** 1.19.4+ (20) */ +'height': string; +/** 1.19.4+ (21) */ +'glow_color_override': string; +/** 1.19.4+ (22) */ +'item_stack': string; +/** 1.19.4+ (23) */ +'item_display': string; +/** 1.20.2+ (8) */ +'transformation_interpolation_start_delta_ticks': string; +/** 1.20.2+ (9) */ +'transformation_interpolation_duration': string; +/** 1.20.2+ (10) */ +'pos_rot_interpolation_duration': string;},'sniffer': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'living_entity_flags': string; +/** 1.19.4+ (9) */ +'health': string; +/** 1.19.4+ (10) */ +'effect_color': string; +/** 1.19.4+ (11) */ +'effect_ambience': string; +/** 1.19.4+ (12) */ +'arrow_count': string; +/** 1.19.4+ (13) */ +'stinger_count': string; +/** 1.19.4+ (14) */ +'sleeping_pos': string; +/** 1.19.4+ (15) */ +'mob_flags': string; +/** 1.19.4+ (16) */ +'baby': string; +/** 1.19.4+ (17) */ +'state': string; +/** 1.19.4+ (18) */ +'drop_seed_at_tick': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'text_display': { +/** 1.19.4+ (0) */ +'shared_flags': string; +/** 1.19.4+ (1) */ +'air_supply': string; +/** 1.19.4+ (2) */ +'custom_name': string; +/** 1.19.4+ (3) */ +'custom_name_visible': string; +/** 1.19.4+ (4) */ +'silent': string; +/** 1.19.4+ (5) */ +'no_gravity': string; +/** 1.19.4+ (6) */ +'pose': string; +/** 1.19.4+ (7) */ +'ticks_frozen': string; +/** 1.19.4+ (8) */ +'interpolation_start_delta_ticks': string; +/** 1.19.4+ (9) */ +'interpolation_duration': string; +/** 1.19.4+ (10) */ +'translation': string; +/** 1.19.4+ (11) */ +'scale': string; +/** 1.19.4+ (12) */ +'left_rotation': string; +/** 1.19.4+ (13) */ +'right_rotation': string; +/** 1.19.4+ (14) */ +'billboard_render_constraints': string; +/** 1.19.4+ (15) */ +'brightness_override': string; +/** 1.19.4+ (16) */ +'view_range': string; +/** 1.19.4+ (17) */ +'shadow_radius': string; +/** 1.19.4+ (18) */ +'shadow_strength': string; +/** 1.19.4+ (19) */ +'width': string; +/** 1.19.4+ (20) */ +'height': string; +/** 1.19.4+ (21) */ +'glow_color_override': string; +/** 1.19.4+ (22) */ +'text': string; +/** 1.19.4+ (23) */ +'line_width': string; +/** 1.19.4+ (24) */ +'background_color': string; +/** 1.19.4+ (25) */ +'text_opacity': string; +/** 1.19.4+ (26) */ +'style_flags': string; +/** 1.20.2+ (8) */ +'transformation_interpolation_start_delta_ticks': string; +/** 1.20.2+ (9) */ +'transformation_interpolation_duration': string; +/** 1.20.2+ (10) */ +'pos_rot_interpolation_duration': string;},'breeze': { +/** 1.20.3+ (0) */ +'shared_flags': string; +/** 1.20.3+ (1) */ +'air_supply': string; +/** 1.20.3+ (2) */ +'custom_name': string; +/** 1.20.3+ (3) */ +'custom_name_visible': string; +/** 1.20.3+ (4) */ +'silent': string; +/** 1.20.3+ (5) */ +'no_gravity': string; +/** 1.20.3+ (6) */ +'pose': string; +/** 1.20.3+ (7) */ +'ticks_frozen': string; +/** 1.20.3+ (8) */ +'living_entity_flags': string; +/** 1.20.3+ (9) */ +'health': string; +/** 1.20.3+ (10) */ +'effect_color': string; +/** 1.20.3+ (11) */ +'effect_ambience': string; +/** 1.20.3+ (12) */ +'arrow_count': string; +/** 1.20.3+ (13) */ +'stinger_count': string; +/** 1.20.3+ (14) */ +'sleeping_pos': string; +/** 1.20.3+ (15) */ +'mob_flags': string; +/** 1.20.5+ (10) */ +'effect_particles': string;},'wind_charge': { +/** 1.20.3+ (0) */ +'shared_flags': string; +/** 1.20.3+ (1) */ +'air_supply': string; +/** 1.20.3+ (2) */ +'custom_name': string; +/** 1.20.3+ (3) */ +'custom_name_visible': string; +/** 1.20.3+ (4) */ +'silent': string; +/** 1.20.3+ (5) */ +'no_gravity': string; +/** 1.20.3+ (6) */ +'pose': string; +/** 1.20.3+ (7) */ +'ticks_frozen': string;},'armadillo': { +/** 1.20.5+ (0) */ +'shared_flags': string; +/** 1.20.5+ (1) */ +'air_supply': string; +/** 1.20.5+ (2) */ +'custom_name': string; +/** 1.20.5+ (3) */ +'custom_name_visible': string; +/** 1.20.5+ (4) */ +'silent': string; +/** 1.20.5+ (5) */ +'no_gravity': string; +/** 1.20.5+ (6) */ +'pose': string; +/** 1.20.5+ (7) */ +'ticks_frozen': string; +/** 1.20.5+ (8) */ +'living_entity_flags': string; +/** 1.20.5+ (9) */ +'health': string; +/** 1.20.5+ (10) */ +'effect_particles': string; +/** 1.20.5+ (11) */ +'effect_ambience': string; +/** 1.20.5+ (12) */ +'arrow_count': string; +/** 1.20.5+ (13) */ +'stinger_count': string; +/** 1.20.5+ (14) */ +'sleeping_pos': string; +/** 1.20.5+ (15) */ +'mob_flags': string; +/** 1.20.5+ (16) */ +'baby': string; +/** 1.20.5+ (17) */ +'armadillo_state': string;},'bogged': { +/** 1.20.5+ (0) */ +'shared_flags': string; +/** 1.20.5+ (1) */ +'air_supply': string; +/** 1.20.5+ (2) */ +'custom_name': string; +/** 1.20.5+ (3) */ +'custom_name_visible': string; +/** 1.20.5+ (4) */ +'silent': string; +/** 1.20.5+ (5) */ +'no_gravity': string; +/** 1.20.5+ (6) */ +'pose': string; +/** 1.20.5+ (7) */ +'ticks_frozen': string; +/** 1.20.5+ (8) */ +'living_entity_flags': string; +/** 1.20.5+ (9) */ +'health': string; +/** 1.20.5+ (10) */ +'effect_particles': string; +/** 1.20.5+ (11) */ +'effect_ambience': string; +/** 1.20.5+ (12) */ +'arrow_count': string; +/** 1.20.5+ (13) */ +'stinger_count': string; +/** 1.20.5+ (14) */ +'sleeping_pos': string; +/** 1.20.5+ (15) */ +'mob_flags': string; +/** 1.20.5+ (16) */ +'sheared': string;},'breeze_wind_charge': { +/** 1.20.5+ (0) */ +'shared_flags': string; +/** 1.20.5+ (1) */ +'air_supply': string; +/** 1.20.5+ (2) */ +'custom_name': string; +/** 1.20.5+ (3) */ +'custom_name_visible': string; +/** 1.20.5+ (4) */ +'silent': string; +/** 1.20.5+ (5) */ +'no_gravity': string; +/** 1.20.5+ (6) */ +'pose': string; +/** 1.20.5+ (7) */ +'ticks_frozen': string;},'ominous_item_spawner': { +/** 1.20.5+ (0) */ +'shared_flags': string; +/** 1.20.5+ (1) */ +'air_supply': string; +/** 1.20.5+ (2) */ +'custom_name': string; +/** 1.20.5+ (3) */ +'custom_name_visible': string; +/** 1.20.5+ (4) */ +'silent': string; +/** 1.20.5+ (5) */ +'no_gravity': string; +/** 1.20.5+ (6) */ +'pose': string; +/** 1.20.5+ (7) */ +'ticks_frozen': string; +/** 1.20.5+ (8) */ +'item': string;}, +} \ No newline at end of file diff --git a/src/mcTypes.ts b/src/mcTypes.ts new file mode 100644 index 00000000..ebb4f560 --- /dev/null +++ b/src/mcTypes.ts @@ -0,0 +1,165 @@ + +// todo move from here + +//@ts-format-ignore-region +// 1.8.8 +export interface LevelDat { + WorldGenSettings?: WorldGenSettings; + RandomSeed: number[]; + generatorName?: string; + BorderCenterX: number; + BorderCenterZ: number; + Difficulty: number; + DifficultyLocked: number; + BorderSizeLerpTime: number[]; + Version?: { + Name: string + // id, snapshot + } + /** 0,1 */ + raining: number; + Time: number[]; + GameType: number; + MapFeatures: number; + BorderDamagePerBlock: number; + BorderWarningBlocks: number; + BorderSizeLerpTarget: number; + DayTime: number[]; + initialized: number; + allowCommands: number; + SizeOnDisk: number[]; + GameRules: GameRules; + Player: Player; + SpawnY: number; + rainTime: number; + thunderTime: number; + SpawnZ: number; + hardcore: number; + SpawnX: number; + clearWeatherTime: number; + thundering: number; + generatorVersion?: number; + version: number; + BorderSafeZone: number; + generatorOptions?: string; + LastPlayed: number[]; + BorderWarningTime: number; + LevelName: string; + BorderSize: number; +} + +export interface GameRules { + doTileDrops: string; + doFireTick: string; + reducedDebugInfo: string; + naturalRegeneration: string; + doMobLoot: string; + keepInventory: string; + doEntityDrops: string; + mobGriefing: string; + randomTickSpeed: string; + commandBlockOutput: string; + doMobSpawning: string; + logAdminCommands: string; + sendCommandFeedback: string; + doDaylightCycle: string; + showDeathMessages: string; +} + +export interface Player { + HurtByTimestamp: number; + SleepTimer: number; + Attributes: Attribute[]; + Invulnerable: number; + PortalCooldown: number; + AbsorptionAmount: number; + abilities: Abilities; + FallDistance: number; + DeathTime: number; + XpSeed: number; + HealF: number; + XpTotal: number; + playerGameType: number; + SelectedItem: SelectedItem; + Motion: number[]; + UUIDLeast: number[]; + Health: number; + foodSaturationLevel: number; + Air: number; + OnGround: number; + Dimension: number; + Rotation: number[]; + XpLevel: number; + Score: number; + UUIDMost: number[]; + Sleeping: number; + Pos: number[]; + Fire: number; + XpP: number; + EnderItems: any[]; + foodLevel: number; + foodExhaustionLevel: number; + HurtTime: number; + SelectedItemSlot: number; + Inventory: SelectedItem[]; + foodTickTimer: number; +} + +export interface Attribute { + Base: number; + Name: string; +} + +export interface SelectedItem { + Slot?: number; + id: string; + Count: number; + Damage: number; +} + +export interface Abilities { + invulnerable: number; + mayfly: number; + instabuild: number; + walkSpeed: number; + mayBuild: number; + flying: number; + flySpeed: number; +} + +// 1.16+ + +export interface WorldGenSettings { + /** 0,1 */ + bonus_chest: number; + seed: number[]; + /** 0,1 */ + generate_features: number; + dimensions: Dimensions; +} + +export interface Dimensions { + // :overworld, :the_nether, :the_end + [key: string]: WorldGen; +} + +export interface WorldGen { + generator: WorldGenGenerator; + // same as key + type: string; +} + +export interface WorldGenGenerator { + settings: string; + seed: number[]; + biome_source: PurpleBiomeSource; + type: string; +} + +export interface PurpleBiomeSource { + seed: number[]; + /** only for overworld 0,1 */ + large_biomes?: number; + // :noise, :flat, ? + type: string; +} diff --git a/src/microsoftAuthflow.ts b/src/microsoftAuthflow.ts new file mode 100644 index 00000000..d759a7dc --- /dev/null +++ b/src/microsoftAuthflow.ts @@ -0,0 +1,182 @@ +export const getProxyDetails = async (proxyBaseUrl: string) => { + if (!proxyBaseUrl.startsWith('http')) proxyBaseUrl = `${isPageSecure() ? 'https' : 'http'}://${proxyBaseUrl}` + const url = `${proxyBaseUrl}/api/vm/net/connect` + let result: Response + try { + result = await fetch(url) + } catch (err) { + throw new Error(`Selected proxy server ${proxyBaseUrl} most likely is down`) + } + return result +} + +export default async ({ tokenCaches, proxyBaseUrl, setProgressText = (text) => { }, setCacheResult, connectingServer }) => { + let onMsaCodeCallback + let connectingVersion = '' + // const authEndpoint = 'http://localhost:3000/' + // const sessionEndpoint = 'http://localhost:3000/session' + let authEndpoint: URL | undefined + let sessionEndpoint: URL | undefined + const result = await getProxyDetails(proxyBaseUrl) + + try { + const json = await result.json() + authEndpoint = urlWithBase(json.capabilities.authEndpoint, proxyBaseUrl) + sessionEndpoint = urlWithBase(json.capabilities.sessionEndpoint, proxyBaseUrl) + if (!authEndpoint) throw new Error('No auth endpoint') + } catch (err) { + console.error(err) + throw new Error(`Selected proxy server ${proxyBaseUrl} does not support Microsoft authentication`) + } + const authFlow = { + async getMinecraftJavaToken () { + setProgressText('Authenticating with Microsoft account') + if (!window.crypto && !isPageSecure()) throw new Error('Crypto API is available only in secure contexts. Be sure to use https!') + let result = null + await fetch(authEndpoint, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify({ + ...tokenCaches, + // important to set this param and not fake it as auth server might reject the request otherwise + connectingServer, + connectingServerVersion: connectingVersion + }), + }) + .catch(e => { + throw new Error(`Failed to connect to auth server (network error): ${e.message}`) + }) + .then(async response => { + if (!response.ok) { + throw new Error(`Auth server error (${response.status}): ${await response.text()}`) + } + + const reader = response.body!.getReader() + const decoder = new TextDecoder('utf8') + + const processText = ({ done, value = undefined as Uint8Array | undefined }) => { + if (done) { + return + } + + const processChunk = (chunkStr) => { + let json: any + try { + json = JSON.parse(chunkStr) + } catch (err) {} + if (!json) return + if (json.user_code) { + onMsaCodeCallback(json) + // this.codeCallback(json) + } + if (json.error) throw new Error(`Auth server error: ${json.error}`) + if (json.token) result = json + if (json.newCache) setCacheResult(json.newCache) + } + + const strings = decoder.decode(value) + + for (const chunk of strings.split('\n\n')) { + processChunk(chunk) + } + + return reader.read().then(processText) + } + return reader.read().then(processText) + }) + const restoredData = await restoreData(result) + if (restoredData?.certificates?.profileKeys?.privatePEM) { + restoredData.certificates.profileKeys.private = restoredData.certificates.profileKeys.privatePEM + } + return restoredData + } + } + return { + authFlow, + sessionEndpoint, + setOnMsaCodeCallback (callback) { + onMsaCodeCallback = callback + }, + setConnectingVersion (version) { + connectingVersion = version + } + } +} + +function isPageSecure (url = window.location.href) { + return !url.startsWith('http:') +} + +// restore dates from strings +const restoreData = async (json) => { + const promises = [] as Array> + if (typeof json === 'object' && json) { + for (const [key, value] of Object.entries(json)) { + if (typeof value === 'string') { + promises.push(tryRestorePublicKey(value, key, json)) + if (value.endsWith('Z')) { + const date = new Date(value) + if (!isNaN(date.getTime())) { + json[key] = date + } + } + } + if (typeof value === 'object') { + // eslint-disable-next-line no-await-in-loop + await restoreData(value) + } + } + } + + await Promise.all(promises) + + return json +} + +const tryRestorePublicKey = async (value: string, name: string, parent: { [x: string]: any }) => { + value = value.trim() + if (!name.endsWith('PEM') || !value.startsWith('-----BEGIN RSA PUBLIC KEY-----') || !value.endsWith('-----END RSA PUBLIC KEY-----')) return + const der = pemToArrayBuffer(value) + const key = await window.crypto.subtle.importKey( + 'spki', // Specify that the data is in SPKI format + der, + { + name: 'RSA-OAEP', + hash: { name: 'SHA-256' } + }, + true, + ['encrypt'] // Specify key usages + ) + const originalName = name.replace('PEM', '') + const exported = await window.crypto.subtle.exportKey('spki', key) + const exportedBuffer = new Uint8Array(exported) + parent[originalName] = { + export () { + return exportedBuffer + } + } +} + +function pemToArrayBuffer (pem) { + // Fetch the part of the PEM string between header and footer + const pemHeader = '-----BEGIN RSA PUBLIC KEY-----' + const pemFooter = '-----END RSA PUBLIC KEY-----' + const pemContents = pem.slice(pemHeader.length, pem.length - pemFooter.length).trim() + const binaryDerString = atob(pemContents.replaceAll(/\s/g, '')) + const binaryDer = new Uint8Array(binaryDerString.length) + for (let i = 0; i < binaryDerString.length; i++) { + binaryDer[i] = binaryDerString.codePointAt(i)! + } + return binaryDer.buffer +} + +const urlWithBase = (url: string, base: string) => { + const defaultBase = isPageSecure() ? 'https' : 'http' + if (!base.startsWith('http')) base = `${defaultBase}://${base}` + const urlObj = new URL(url, base) + base = base.replace(/^https?:\/\//, '') + urlObj.host = base.includes(':') ? base : `${base}:${isPageSecure(base) ? '443' : '80'}` + return urlObj +} diff --git a/src/mineflayer/cameraShake.ts b/src/mineflayer/cameraShake.ts new file mode 100644 index 00000000..9e271da5 --- /dev/null +++ b/src/mineflayer/cameraShake.ts @@ -0,0 +1,25 @@ +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' + +customEvents.on('mineflayerBotCreated', () => { + customEvents.on('hurtAnimation', (yaw) => { + getThreeJsRendererMethods()?.shakeFromDamage() + }) + + bot._client.on('hurt_animation', ({ entityId, yaw }) => { + if (entityId === bot.entity.id) { + customEvents.emit('hurtAnimation', yaw) + } + }) + bot.on('entityHurt', ({ id }) => { + if (id === bot.entity.id) { + customEvents.emit('hurtAnimation') + } + }) + let { health } = bot + bot.on('health', () => { + if (bot.health < health) { + customEvents.emit('hurtAnimation') + } + health = bot.health + }) +}) diff --git a/src/mineflayer/entityStatus.ts b/src/mineflayer/entityStatus.ts new file mode 100644 index 00000000..e13784bc --- /dev/null +++ b/src/mineflayer/entityStatus.ts @@ -0,0 +1,70 @@ +export const EntityStatus = { + JUMP: 1, + HURT: 2, // legacy + DEATH: 3, + START_ATTACKING: 4, + STOP_ATTACKING: 5, + TAMING_FAILED: 6, + TAMING_SUCCEEDED: 7, + SHAKE_WETNESS: 8, + USE_ITEM_COMPLETE: 9, + EAT_GRASS: 10, + OFFER_FLOWER: 11, + LOVE_HEARTS: 12, + VILLAGER_ANGRY: 13, + VILLAGER_HAPPY: 14, + WITCH_HAT_MAGIC: 15, + ZOMBIE_CONVERTING: 16, + FIREWORKS_EXPLODE: 17, + IN_LOVE_HEARTS: 18, + SQUID_ANIM_SYNCH: 19, + SILVERFISH_MERGE_ANIM: 20, + GUARDIAN_ATTACK_SOUND: 21, + REDUCED_DEBUG_INFO: 22, + FULL_DEBUG_INFO: 23, + PERMISSION_LEVEL_ALL: 24, + PERMISSION_LEVEL_MODERATORS: 25, + PERMISSION_LEVEL_GAMEMASTERS: 26, + PERMISSION_LEVEL_ADMINS: 27, + PERMISSION_LEVEL_OWNERS: 28, + ATTACK_BLOCKED: 29, + SHIELD_DISABLED: 30, + FISHING_ROD_REEL_IN: 31, + ARMORSTAND_WOBBLE: 32, + THORNED: 33, // legacy + STOP_OFFER_FLOWER: 34, + TALISMAN_ACTIVATE: 35, // legacy + DROWNED: 36, // legacy + BURNED: 37, // legacy + DOLPHIN_LOOKING_FOR_TREASURE: 38, + RAVAGER_STUNNED: 39, + TRUSTING_FAILED: 40, + TRUSTING_SUCCEEDED: 41, + VILLAGER_SWEAT: 42, + BAD_OMEN_TRIGGERED: 43, // legacy + POKED: 44, // legacy + FOX_EAT: 45, + TELEPORT: 46, + MAINHAND_BREAK: 47, + OFFHAND_BREAK: 48, + HEAD_BREAK: 49, + CHEST_BREAK: 50, + LEGS_BREAK: 51, + FEET_BREAK: 52, + HONEY_SLIDE: 53, + HONEY_JUMP: 54, + SWAP_HANDS: 55, + CANCEL_SHAKE_WETNESS: 56, + FROZEN: 57, // legacy + START_RAM: 58, + END_RAM: 59, + POOF: 60, + TENDRILS_SHIVER: 61, + SONIC_CHARGE: 62, + SNIFFER_DIGGING_SOUND: 63, + ARMADILLO_PEEK: 64, + BODY_BREAK: 65, + SHAKE: 66 +} as const + +export type EntityStatusName = keyof typeof EntityStatus diff --git a/src/mineflayer/items.ts b/src/mineflayer/items.ts new file mode 100644 index 00000000..48d0dfe0 --- /dev/null +++ b/src/mineflayer/items.ts @@ -0,0 +1,139 @@ +import mojangson from 'mojangson' +import nbt from 'prismarine-nbt' +import { fromFormattedString } from '@xmcl/text-component' +import { getItemSelector, ItemSpecificContextProperties, PlayerStateRenderer } from 'renderer/viewer/lib/basePlayerState' +import { getItemDefinition } from 'mc-assets/dist/itemDefinitions' +import { MessageFormatPart } from '../chatUtils' +import { ResourcesManager, ResourcesManagerCommon, ResourcesManagerTransferred } from '../resourcesManager' + +type RenderSlotComponent = { + type: string, + data: any + // example + // { + // "type": "item_model", + // "data": "aa:ss" + // } +} +export type RenderItem = Pick & { + components?: RenderSlotComponent[], + // componentMap?: Map +} +export type GeneralInputItem = Pick & { + components?: RenderSlotComponent[], + displayName?: string + modelResolved?: boolean +} + +type JsonString = string +type PossibleItemProps = { + CustomModelData?: number + Damage?: number + display?: { Name?: JsonString } // {"text":"Knife","color":"white","italic":"true"} +} + +export const getItemMetadata = (item: GeneralInputItem, resourcesManager: ResourcesManagerCommon) => { + let customText = undefined as string | any | undefined + let customModel = undefined as string | undefined + + let itemId = item.name + if (!itemId.includes(':')) { + itemId = `minecraft:${itemId}` + } + const customModelDataDefinitions = resourcesManager.currentResources?.customItemModelNames[itemId] + + if (item.components) { + const componentMap = new Map() + for (const component of item.components) { + componentMap.set(component.type, component) + } + + const customTextComponent = componentMap.get('custom_name') || componentMap.get('item_name') + if (customTextComponent) { + customText = typeof customTextComponent.data === 'string' ? customTextComponent.data : nbt.simplify(customTextComponent.data) + } + const customModelComponent = componentMap.get('item_model') + if (customModelComponent) { + customModel = customModelComponent.data + } + if (customModelDataDefinitions) { + const customModelDataComponent: any = componentMap.get('custom_model_data') + if (customModelDataComponent?.data) { + let customModelData: number | undefined + if (typeof customModelDataComponent.data === 'number') { + customModelData = customModelDataComponent.data + } else if (typeof customModelDataComponent.data === 'object' + && 'floats' in customModelDataComponent.data + && Array.isArray(customModelDataComponent.data.floats) + && customModelDataComponent.data.floats.length > 0) { + customModelData = customModelDataComponent.data.floats[0] + } + if (customModelData && customModelDataDefinitions[customModelData]) { + customModel = customModelDataDefinitions[customModelData] + } + } + } + const loreComponent = componentMap.get('lore') + if (loreComponent) { + customText ??= item.displayName ?? item.name + // todo test + customText += `\n${JSON.stringify(loreComponent.data)}` + } + } + if (item.nbt) { + const itemNbt: PossibleItemProps = nbt.simplify(item.nbt) + const customName = itemNbt.display?.Name + if (customName) { + customText = customName + } + if (customModelDataDefinitions && itemNbt.CustomModelData && customModelDataDefinitions[itemNbt.CustomModelData]) { + customModel = customModelDataDefinitions[itemNbt.CustomModelData] + } + } + + return { + customText, + customModel + } +} + + +export const getItemNameRaw = (item: Pick | null, resourcesManager: ResourcesManagerCommon) => { + if (!item) return '' + const { customText } = getItemMetadata(item as GeneralInputItem, resourcesManager) + if (!customText) return + try { + if (typeof customText === 'object') { + return customText + } + const parsed = customText.startsWith('{') && customText.endsWith('}') ? mojangson.simplify(mojangson.parse(customText)) : fromFormattedString(customText) + if (parsed.extra) { + return parsed as Record + } else { + return parsed as MessageFormatPart + } + } catch (err) { + return { + text: JSON.stringify(customText) + } + } +} + +export const getItemModelName = (item: GeneralInputItem, specificProps: ItemSpecificContextProperties, resourcesManager: ResourcesManagerCommon, playerState: PlayerStateRenderer) => { + let itemModelName = item.name + const { customModel } = getItemMetadata(item, resourcesManager) + if (customModel) { + itemModelName = customModel + } + + const itemSelector = getItemSelector(playerState, { + ...specificProps + }) + const modelFromDef = getItemDefinition(appViewer.resourcesManager.itemsDefinitionsStore, { + name: itemModelName, + version: appViewer.resourcesManager.currentResources!.version, + properties: itemSelector + })?.model + const model = (modelFromDef === 'minecraft:special' ? undefined : modelFromDef) ?? itemModelName + return model +} diff --git a/src/mineflayer/java-tester/commands.ts b/src/mineflayer/java-tester/commands.ts new file mode 100644 index 00000000..1925c4d7 --- /dev/null +++ b/src/mineflayer/java-tester/commands.ts @@ -0,0 +1,68 @@ +import { versionToNumber } from 'flying-squid/dist/utils' + +const customStickNbt = (tags: Record) => { + let cmd = '/give @p stick' + const wrapIntoQuotes = versionToNumber(bot.version) < versionToNumber('1.21.5') + cmd += `[${Object.entries(tags).map(([key, value]) => { + if (typeof value === 'object') { + value = JSON.stringify(value) + } + return `${key}=${wrapIntoQuotes ? `'${value}'` : value}` + }).join(',')}]` + return cmd +} + +const writeCmd = (cmd: string) => { + if (!cmd.startsWith('/')) cmd = `/${cmd}` + console.log('Executing', cmd) + bot.chat(cmd) +} + +let msg = 0 +const LIMIT_MSG = 100 +export const javaServerTester = { + itemCustomLore () { + const cmd = customStickNbt({ + lore: [{ text: 'This Stick is very sticky.' }] + }) + writeCmd(cmd) + }, + + itemCustomModel () { + const cmd = customStickNbt({ + item_model: 'minecraft:diamond' + }) + writeCmd(cmd) + }, + itemCustomModel2 () { + const cmd = customStickNbt({ + item_model: 'diamond' + }) + writeCmd(cmd) + }, + + itemCustomName () { + const cmd = customStickNbt({ + custom_name: [{ text: 'diamond' }] + }) + writeCmd(cmd) + }, + itemCustomName2 () { + const cmd = customStickNbt({ + custom_name: [{ translate: 'item.diamond.name' }] + }) + writeCmd(cmd) + }, + + spamChat () { + for (let i = msg; i < msg + LIMIT_MSG; i++) { + bot.chat('Hello, world, ' + i) + } + msg += LIMIT_MSG + }, + spamChatComplexMessage () { + for (let i = msg; i < msg + LIMIT_MSG; i++) { + bot.chat('/tell @a ' + i) + } + } +} diff --git a/src/mineflayer/java-tester/index.ts b/src/mineflayer/java-tester/index.ts new file mode 100644 index 00000000..d395b8f3 --- /dev/null +++ b/src/mineflayer/java-tester/index.ts @@ -0,0 +1,6 @@ +import { javaServerTester } from './commands' + +window.javaServerTester = javaServerTester +customEvents.on('mineflayerBotCreated', () => { + // +}) diff --git a/src/mineflayer/maps.ts b/src/mineflayer/maps.ts new file mode 100644 index 00000000..5e968205 --- /dev/null +++ b/src/mineflayer/maps.ts @@ -0,0 +1,24 @@ +import { mapDownloader } from 'mineflayer-item-map-downloader' +import { setImageConverter } from 'mineflayer-item-map-downloader/lib/util' +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' + +setImageConverter((buf: Uint8Array) => { + const canvas = document.createElement('canvas') + const ctx = canvas.getContext('2d')! + canvas.width = 128 + canvas.height = 128 + const imageData = ctx.createImageData(canvas.width, canvas.height) + imageData.data.set(buf) + ctx.putImageData(imageData, 0, 0) + // data url + return canvas.toDataURL('image/png') +}) + +customEvents.on('mineflayerBotCreated', () => { + bot.on('login', () => { + bot.loadPlugin(mapDownloader) + bot.mapDownloader.on('new_map', ({ png, id }) => { + getThreeJsRendererMethods()?.updateMap(id, png) + }) + }) +}) diff --git a/src/mineflayer/mc-protocol.ts b/src/mineflayer/mc-protocol.ts new file mode 100644 index 00000000..cd21d01f --- /dev/null +++ b/src/mineflayer/mc-protocol.ts @@ -0,0 +1,139 @@ +import net from 'net' +import { Client } from 'minecraft-protocol' +import { appQueryParams } from '../appParams' +import { downloadAllMinecraftData, getVersionAutoSelect } from '../connect' +import { gameAdditionalState } from '../globalState' +import { ProgressReporter } from '../core/progressReporter' +import { parseServerAddress } from '../parseServerAddress' +import { getCurrentProxy } from '../react/ServersList' +import { pingServerVersion, validatePacket } from './minecraft-protocol-extra' +import { getWebsocketStream } from './websocket-core' + +let lastPacketTime = 0 +customEvents.on('mineflayerBotCreated', () => { + // const oldParsePacketBuffer = bot._client.deserializer.parsePacketBuffer + // try { + // const parsed = oldParsePacketBuffer(buffer) + // } catch (err) { + // debugger + // reportError(new Error(`Error parsing packet ${buffer.subarray(0, 30).toString('hex')}`, { cause: err })) + // throw err + // } + // } + class MinecraftProtocolError extends Error { + constructor (message: string, cause?: Error, public data?: any) { + if (data?.customPayload) { + message += ` (Custom payload: ${data.customPayload.channel})` + } + super(message, { cause }) + this.name = 'MinecraftProtocolError' + } + } + + const onClientError = (err, data) => { + const error = new MinecraftProtocolError(`Minecraft protocol client error: ${err.message}`, err, data) + reportError(error) + } + if (typeof bot._client['_events'].error === 'function') { + // dont report to bot for more explicit error + bot._client['_events'].error = onClientError + } else { + bot._client.on('error' as any, onClientError) + } + + // todo move more code here + if (!appQueryParams.noPacketsValidation) { + (bot._client as unknown as Client).on('packet', (data, packetMeta, buffer, fullBuffer) => { + validatePacket(packetMeta.name, data, fullBuffer, true) + lastPacketTime = performance.now() + }); + (bot._client as unknown as Client).on('writePacket', (name, params) => { + validatePacket(name, params, Buffer.alloc(0), false) + }) + } +}) + +setInterval(() => { + if (!bot || !lastPacketTime) return + if (bot.player?.ping > 500) { // TODO: we cant rely on server ping 1. weird calculations 2. available with delays instead patch minecraft-protocol to get latency of keep_alive packet + gameAdditionalState.poorConnection = true + } else { + gameAdditionalState.poorConnection = false + } + if (performance.now() - lastPacketTime < 2000) { + gameAdditionalState.noConnection = false + return + } + gameAdditionalState.noConnection = true +}, 1000) + + +export const getServerInfo = async (ip: string, port?: number, preferredVersion = getVersionAutoSelect(), ping = false, progressReporter?: ProgressReporter, setProxyParams?: ProxyParams) => { + await downloadAllMinecraftData() + const isWebSocket = ip.startsWith('ws://') || ip.startsWith('wss://') + let stream + if (isWebSocket) { + progressReporter?.setMessage('Connecting to WebSocket server') + stream = (await getWebsocketStream(ip)).mineflayerStream + progressReporter?.setMessage('WebSocket connected. Ping packet sent, waiting for response') + } else if (setProxyParams) { + setProxy(setProxyParams) + } + window.setLoadingMessage = (message?: string) => { + if (message === undefined) { + progressReporter?.endStage('dns') + } else { + progressReporter?.beginStage('dns', message) + } + } + return pingServerVersion(ip, port, { + ...(stream ? { stream } : {}), + ...(ping ? { noPongTimeout: 3000 } : {}), + ...(preferredVersion ? { version: preferredVersion } : {}), + }).finally(() => { + window.setLoadingMessage = undefined + }) +} + +globalThis.debugTestPing = async (ip: string) => { + const parsed = parseServerAddress(ip, false) + const result = await getServerInfo(parsed.host, parsed.port ? Number(parsed.port) : undefined, undefined, true, undefined, { address: getCurrentProxy(), }) + console.log('result', result) + return result +} + +export const getDefaultProxyParams = () => { + return { + headers: { + Authorization: `Bearer ${new URLSearchParams(location.search).get('token') ?? ''}` + } + } +} + +export type ProxyParams = { + address?: string + headers?: Record +} + +export const setProxy = (proxyParams: ProxyParams) => { + if (proxyParams.address?.startsWith(':')) { + proxyParams.address = `${location.protocol}//${location.hostname}${proxyParams.address}` + } + if (proxyParams.address && location.port !== '80' && location.port !== '443' && !/:\d+$/.test(proxyParams.address)) { + const https = proxyParams.address.startsWith('https://') || location.protocol === 'https:' + proxyParams.address = `${proxyParams.address}:${https ? 443 : 80}` + } + + const parsedProxy = parseServerAddress(proxyParams.address, false) + const proxy = { host: parsedProxy.host, port: parsedProxy.port } + proxyParams.headers ??= getDefaultProxyParams().headers + net['setProxy']({ + hostname: proxy.host, + port: proxy.port, + headers: proxyParams.headers, + artificialDelay: appQueryParams.addPing ? Number(appQueryParams.addPing) : undefined + }) + return { + proxy + } +} diff --git a/src/mineflayer/minecraft-protocol-extra.ts b/src/mineflayer/minecraft-protocol-extra.ts new file mode 100644 index 00000000..65260979 --- /dev/null +++ b/src/mineflayer/minecraft-protocol-extra.ts @@ -0,0 +1,119 @@ +import EventEmitter from 'events' +import clientAutoVersion from 'minecraft-protocol/src/client/autoVersion' + +export const pingServerVersion = async (ip: string, port?: number, mergeOptions: Record = {}) => { + const fakeClient = new EventEmitter() as any + const options = { + host: ip, + port, + noPongTimeout: 10_000, + closeTimeout: 20_000, + ...mergeOptions, + } + let latency = 0 + let fullInfo: any = null + fakeClient.autoVersionHooks = [(res) => { + latency = res.latency + fullInfo = res + }] + + // TODO use client.socket.destroy() instead of client.end() for faster cleanup + clientAutoVersion(fakeClient, options) + await Promise.race([ + new Promise((resolve, reject) => { + fakeClient.once('connect_allowed', () => { + resolve() + }) + }), + new Promise((resolve, reject) => { + fakeClient.on('error', (err) => { + reject(new Error(err.message ?? err)) + }) + if (mergeOptions.stream) { + mergeOptions.stream.on('end', (err) => { + setTimeout(() => { + reject(new Error('Connection closed. Please report if you see this but the server is actually fine.')) + }) + }) + } + }) + ]) + + return { + version: fakeClient.version, + latency, + fullInfo, + } +} + +const MAX_PACKET_SIZE = 2_097_152 // 2mb +const CHAT_MAX_PACKET_DEPTH = 200 // todo improve perf + +const CHAT_VALIDATE_PACKETS = new Set([ + 'chat', + 'system_chat', + 'player_chat', + 'profileless_chat', + 'kick_disconnect', + 'resource_pack_send', + 'action_bar', + 'set_title_text', + 'set_title_subtitle', + 'title', + 'death_combat_event', + 'server_data', + 'scoreboard_objective', + 'scoreboard_team', + 'playerlist_header', + 'boss_bar' +]) + +export const validatePacket = (name: string, data: any, fullBuffer: Buffer, isFromServer: boolean) => { + // todo find out why chat is so slow with react + if (!isFromServer) return + + if (fullBuffer.length > MAX_PACKET_SIZE) { + console.groupCollapsed(`Packet ${name} is too large: ${fullBuffer.length} bytes`) + console.log(data) + console.groupEnd() + throw new Error(`Packet ${name} is too large: ${fullBuffer.length} bytes`) + } + + if (CHAT_VALIDATE_PACKETS.has(name)) { + // todo count total number of objects instead of max depth + const maxDepth = getObjectMaxDepth(data) + if (maxDepth > CHAT_MAX_PACKET_DEPTH) { + console.groupCollapsed(`Packet ${name} have too many nested objects: ${maxDepth}`) + console.log(data) + console.groupEnd() + throw new Error(`Packet ${name} have too many nested objects: ${maxDepth}`) + } + } +} + +function getObjectMaxDepth (obj: unknown, currentDepth = 0): number { + // Base case: null or primitive types have depth 0 + if (obj === null || typeof obj !== 'object' || obj instanceof Buffer) { + return currentDepth + } + + // Handle arrays and objects + let maxDepth = currentDepth + + if (Array.isArray(obj)) { + // For arrays, check each element + for (const item of obj) { + const depth = getObjectMaxDepth(item, currentDepth + 1) + maxDepth = Math.max(maxDepth, depth) + } + } else { + // For objects, check each value + // eslint-disable-next-line guard-for-in + for (const key in obj) { + const depth = getObjectMaxDepth(obj[key], currentDepth + 1) + maxDepth = Math.max(maxDepth, depth) + } + } + + return maxDepth +} diff --git a/src/mineflayer/playerState.ts b/src/mineflayer/playerState.ts new file mode 100644 index 00000000..33f7af77 --- /dev/null +++ b/src/mineflayer/playerState.ts @@ -0,0 +1,200 @@ +import { HandItemBlock } from 'renderer/viewer/three/holdingBlock' +import { getInitialPlayerState, getPlayerStateUtils, PlayerStateReactive, PlayerStateRenderer, PlayerStateUtils } from 'renderer/viewer/lib/basePlayerState' +import { subscribe } from 'valtio' +import { subscribeKey } from 'valtio/utils' +import { gameAdditionalState } from '../globalState' +import { options } from '../optionsStorage' + +/** + * can be used only in main thread. Mainly for more convenient reactive state updates. + * In renderer/ directory, use PlayerStateControllerRenderer type or worldRenderer.playerState. + */ +export class PlayerStateControllerMain { + disableStateUpdates = false + + private timeOffGround = 0 + private lastUpdateTime = performance.now() + + // Held item state + private isUsingItem = false + ready = false + + reactive: PlayerStateReactive + utils: PlayerStateUtils + + constructor () { + customEvents.on('mineflayerBotCreated', () => { + this.ready = false + bot.on('inject_allowed', () => { + if (this.ready) return + this.ready = true + this.botCreated() + }) + bot.on('end', () => { + this.ready = false + }) + }) + } + + private onBotCreatedOrGameJoined () { + this.reactive.username = bot.username ?? '' + } + + private botCreated () { + console.log('bot created & plugins injected') + this.reactive = getInitialPlayerState() + this.reactive.perspective = options.defaultPerspective + this.utils = getPlayerStateUtils(this.reactive) + this.onBotCreatedOrGameJoined() + + const handleDimensionData = (data) => { + let hasSkyLight = 1 + try { + hasSkyLight = data.dimension.value.has_skylight.value + } catch {} + this.reactive.lightingDisabled = bot.game.dimension === 'the_nether' || bot.game.dimension === 'the_end' || !hasSkyLight + } + + bot._client.on('login', (packet) => { + handleDimensionData(packet) + }) + bot._client.on('respawn', (packet) => { + handleDimensionData(packet) + }) + + // Movement tracking + bot.on('move', () => { + this.updateMovementState() + }) + + // Item tracking + bot.on('heldItemChanged', () => { + return this.updateHeldItem(false) + }) + bot.inventory.on('updateSlot', (index) => { + if (index === 45) this.updateHeldItem(true) + }) + const updateSneakingOrFlying = () => { + this.updateMovementState() + this.reactive.sneaking = bot.controlState.sneak + this.reactive.flying = gameAdditionalState.isFlying + this.reactive.eyeHeight = bot.controlState.sneak && !gameAdditionalState.isFlying ? 1.27 : 1.62 + } + bot.on('physicsTick', () => { + if (this.isUsingItem) this.reactive.itemUsageTicks++ + updateSneakingOrFlying() + }) + // todo move from gameAdditionalState to reactive directly + subscribeKey(gameAdditionalState, 'isSneaking', () => { + updateSneakingOrFlying() + }) + subscribeKey(gameAdditionalState, 'isFlying', () => { + updateSneakingOrFlying() + }) + + // Initial held items setup + this.updateHeldItem(false) + this.updateHeldItem(true) + + bot.on('game', () => { + this.reactive.gameMode = bot.game.gameMode + }) + this.reactive.gameMode = bot.game?.gameMode + + customEvents.on('gameLoaded', () => { + this.reactive.team = bot.teamMap[bot.username] + }) + + this.watchReactive() + } + + // #region Movement and Physics State + private updateMovementState () { + if (!bot?.entity || this.disableStateUpdates) return + + const { velocity } = bot.entity + const isOnGround = bot.entity.onGround + const VELOCITY_THRESHOLD = 0.01 + const SPRINTING_VELOCITY = 0.15 + const OFF_GROUND_THRESHOLD = 0 // ms before switching to SNEAKING when off ground + + const now = performance.now() + const deltaTime = now - this.lastUpdateTime + this.lastUpdateTime = now + + // this.lastVelocity = velocity + + // Update time off ground + if (isOnGround) { + this.timeOffGround = 0 + } else { + this.timeOffGround += deltaTime + } + + if (gameAdditionalState.isSneaking || gameAdditionalState.isFlying || (this.timeOffGround > OFF_GROUND_THRESHOLD)) { + this.reactive.movementState = 'SNEAKING' + } else if (Math.abs(velocity.x) > VELOCITY_THRESHOLD || Math.abs(velocity.z) > VELOCITY_THRESHOLD) { + this.reactive.movementState = Math.abs(velocity.x) > SPRINTING_VELOCITY || Math.abs(velocity.z) > SPRINTING_VELOCITY + ? 'SPRINTING' + : 'WALKING' + } else { + this.reactive.movementState = 'NOT_MOVING' + } + } + + // #region Held Item State + private updateHeldItem (isLeftHand: boolean) { + const newItem = isLeftHand ? bot.inventory.slots[45] : bot.heldItem + if (!newItem) { + if (isLeftHand) { + this.reactive.heldItemOff = undefined + } else { + this.reactive.heldItemMain = undefined + } + return + } + + const block = loadedData.blocksByName[newItem.name] + const blockProperties = block ? new window.PrismarineBlock(block.id, 'void', newItem.metadata).getProperties() : {} + const item: HandItemBlock = { + name: newItem.name, + properties: blockProperties, + id: newItem.type, + type: block ? 'block' : 'item', + fullItem: newItem, + } + + if (isLeftHand) { + this.reactive.heldItemOff = item + } else { + this.reactive.heldItemMain = item + } + // this.events.emit('heldItemChanged', item, isLeftHand) + } + + startUsingItem () { + if (this.isUsingItem) return + this.isUsingItem = true + this.reactive.itemUsageTicks = 0 + } + + stopUsingItem () { + this.isUsingItem = false + this.reactive.itemUsageTicks = 0 + } + + getItemUsageTicks (): number { + return this.reactive.itemUsageTicks + } + + watchReactive () { + subscribeKey(this.reactive, 'eyeHeight', () => { + appViewer.backend?.updateCamera(bot.entity.position, bot.entity.yaw, bot.entity.pitch) + }) + } + + // #endregion +} + +export const playerState = new PlayerStateControllerMain() +window.playerState = playerState diff --git a/src/mineflayer/plugins/index.ts b/src/mineflayer/plugins/index.ts new file mode 100644 index 00000000..6ac11376 --- /dev/null +++ b/src/mineflayer/plugins/index.ts @@ -0,0 +1,21 @@ +import { lastConnectOptions } from '../../react/AppStatusProvider' +import mouse from './mouse' +import packetsPatcher from './packetsPatcher' +import { localRelayServerPlugin } from './packetsRecording' +import ping from './ping' +import webFeatures from './webFeatures' + +// register +webFeatures() +packetsPatcher() + + +customEvents.on('mineflayerBotCreated', () => { + if (lastConnectOptions.value!.server) { + bot.loadPlugin(ping) + } + bot.loadPlugin(mouse) + if (!lastConnectOptions.value!.worldStateFileContents) { + bot.loadPlugin(localRelayServerPlugin) + } +}) diff --git a/src/mineflayer/plugins/mouse.ts b/src/mineflayer/plugins/mouse.ts new file mode 100644 index 00000000..14e19345 --- /dev/null +++ b/src/mineflayer/plugins/mouse.ts @@ -0,0 +1,122 @@ +import { createMouse } from 'mineflayer-mouse' +import { Bot } from 'mineflayer' +import { Block } from 'prismarine-block' +import { getThreeJsRendererMethods } from 'renderer/viewer/three/threeJsMethods' +import { isGameActive, showModal } from '../../globalState' + +import { isCypress } from '../../standaloneUtils' +import { playerState } from '../playerState' +import { sendVideoInteraction, videoCursorInteraction } from '../../customChannels' + +function cursorBlockDisplay (bot: Bot) { + const updateCursorBlock = (data?: { block: Block }) => { + if (!data?.block || bot.game.gameMode === 'spectator') { + playerState.reactive.lookingAtBlock = undefined + return + } + + const { block } = data + playerState.reactive.lookingAtBlock = { + x: block.position.x, + y: block.position.y, + z: block.position.z, + shapes: bot.mouse.getBlockCursorShapes(block).map(shape => { + return bot.mouse.getDataFromShape(shape) + }) + } + } + + bot.on('highlightCursorBlock', updateCursorBlock) + bot.on('game', () => { + const block = bot.mouse.getCursorState().cursorBlock + updateCursorBlock(block ? { block } : undefined) + }) + + bot.on('blockBreakProgressStage', (block, stage) => { + const mergedShape = bot.mouse.getMergedCursorShape(block) + playerState.reactive.diggingBlock = stage === null ? undefined : { + x: block.position.x, + y: block.position.y, + z: block.position.z, + stage, + mergedShape: mergedShape ? bot.mouse.getDataFromShape(mergedShape) : undefined + } + }) +} + +export default (bot: Bot) => { + bot.loadPlugin(createMouse({})) + + domListeners(bot) + cursorBlockDisplay(bot) + + otherListeners() +} + +const otherListeners = () => { + bot.on('startDigging', (block) => { + customEvents.emit('digStart') + }) + + bot.on('goingToSleep', () => { + showModal({ reactType: 'bed' }) + }) + + bot.on('botArmSwingStart', (hand) => { + getThreeJsRendererMethods()?.changeHandSwingingState(true, hand === 'left') + }) + + bot.on('botArmSwingEnd', (hand) => { + getThreeJsRendererMethods()?.changeHandSwingingState(false, hand === 'left') + }) + + bot.on('startUsingItem', (item, slot, isOffhand, duration) => { + customEvents.emit('activateItem', item, isOffhand ? 45 : bot.quickBarSlot, isOffhand) + playerState.startUsingItem() + }) + + bot.on('stopUsingItem', () => { + playerState.stopUsingItem() + }) +} + +const domListeners = (bot: Bot) => { + const abortController = new AbortController() + document.addEventListener('mousedown', (e) => { + if (e.isTrusted && !document.pointerLockElement && !isCypress()) return + if (!isGameActive(true)) return + + getThreeJsRendererMethods()?.onPageInteraction() + + const videoInteraction = videoCursorInteraction() + if (videoInteraction) { + sendVideoInteraction(videoInteraction.id, videoInteraction.x, videoInteraction.y, e.button === 0) + return + } + + if (e.button === 0) { + bot.leftClickStart() + } else if (e.button === 2) { + bot.rightClickStart() + } + }, { signal: abortController.signal }) + + document.addEventListener('mouseup', (e) => { + if (e.button === 0) { + bot.leftClickEnd() + } else if (e.button === 2) { + bot.rightClickEnd() + } + }, { signal: abortController.signal }) + + bot.mouse.beforeUpdateChecks = () => { + if (!document.hasFocus() || !isGameActive(true)) { + // deactive all buttons + bot.mouse.buttons.fill(false) + } + } + + bot.on('end', () => { + abortController.abort() + }) +} diff --git a/src/mineflayer/plugins/packetsPatcher.ts b/src/mineflayer/plugins/packetsPatcher.ts new file mode 100644 index 00000000..5e93ef60 --- /dev/null +++ b/src/mineflayer/plugins/packetsPatcher.ts @@ -0,0 +1,50 @@ +export default () => { + // not plugin so its loaded earlier + customEvents.on('mineflayerBotCreated', () => { + botInit() + }) +} + +const waitingPackets = {} as Record> + +const botInit = () => { + // PATCH READING + bot._client.on('packet', (data, meta) => { + if (meta.name === 'map_chunk') { + if (data.groundUp && data.bitMap === 1 && data.chunkData.every(x => x === 0)) { + data.chunkData = Buffer.from(Array.from({ length: 12_544 }).fill(0) as any) + } + } + }) + + // PATCH WRITING + + const clientWrite = bot._client.write.bind(bot._client) + const sendAllPackets = (name: string, data: any) => { + for (const packet of waitingPackets[name]) { + clientWrite(packet.name, packet.data) + } + delete waitingPackets[name] + } + + //@ts-expect-error + bot._client.write = (name: string, data: any) => { + // if (name === 'position' || name === 'position_look' || name === 'look' || name === 'teleport_confirm') { + // const chunkX = Math.floor(bot.entity.position.x / 16) + // const chunkZ = Math.floor(bot.entity.position.z / 16) + // const loadedColumns = bot.world.getColumns() + // if (loadedColumns.some((c) => c.chunkX === chunkX && c.chunkZ === chunkZ)) { + // sendAllPackets('position', data) + // } else { + // waitingPackets['position'] = [...(waitingPackets['position'] || []), { name, data }] + // return + // } + // } + if (name === 'settings') { + data['viewDistance'] = Math.max(data['viewDistance'], 3) + } + return clientWrite(name, data) + } + + // PATCH INTERACTIONS +} diff --git a/src/mineflayer/plugins/packetsRecording.ts b/src/mineflayer/plugins/packetsRecording.ts new file mode 100644 index 00000000..b9ba028c --- /dev/null +++ b/src/mineflayer/plugins/packetsRecording.ts @@ -0,0 +1,147 @@ +import { viewerConnector } from 'mcraft-fun-mineflayer' +import { PACKETS_REPLAY_FILE_EXTENSION, WORLD_STATE_FILE_EXTENSION } from 'mcraft-fun-mineflayer/build/worldState' +import { Bot } from 'mineflayer' +import CircularBuffer from 'flying-squid/dist/circularBuffer' +import { PacketsLogger } from 'mcraft-fun-mineflayer/build/packetsLogger' +import { subscribe } from 'valtio' +import { lastConnectOptions } from '../../react/AppStatusProvider' +import { packetsRecordingState } from '../../packetsReplay/packetsReplayLegacy' +import { packetsReplayState } from '../../react/state/packetsReplayState' + +const AUTO_CAPTURE_PACKETS_COUNT = 30 +let circularBuffer: CircularBuffer | undefined +let lastConnectVersion = '' + +export const localRelayServerPlugin = (bot: Bot) => { + lastConnectVersion = bot.version + let ended = false + bot.on('end', () => { + ended = true + }) + + bot.loadPlugin( + viewerConnector({ + tcpEnabled: false, + websocketEnabled: false, + }) + ) + + const downloadFile = (contents: string, filename: string) => { + const a = document.createElement('a') + const blob = new Blob([contents], { type: 'text/plain' }) + const url = URL.createObjectURL(blob) + a.href = url + a.download = filename + a.click() + URL.revokeObjectURL(url) + } + + bot.downloadCurrentWorldState = () => { + const worldState = bot.webViewer._unstable.createStateCaptureFile() + // add readable timestamp to filename + const timestamp = new Date().toISOString().replaceAll(/[-:Z]/g, '') + downloadFile(worldState.contents, `${bot.username}-world-state-${timestamp}.${WORLD_STATE_FILE_EXTENSION}`) + } + + let logger: PacketsLogger | undefined + bot.startPacketsRecording = () => { + bot.webViewer._unstable.startRecording((l) => { + logger = l + }) + } + + bot.stopPacketsRecording = () => { + if (!logger) return + const packets = logger?.contents + logger = undefined + const timestamp = new Date().toISOString().replaceAll(/[-:Z]/g, '') + downloadFile(packets, `${bot.username}-packets-${timestamp}.${PACKETS_REPLAY_FILE_EXTENSION}`) + bot.webViewer._unstable.stopRecording() + } + + circularBuffer = new CircularBuffer(AUTO_CAPTURE_PACKETS_COUNT) + let position = 0 + bot._client.on('writePacket' as any, (name, params) => { + circularBuffer!.add({ name, state: bot._client.state, params, isFromServer: false, timestamp: Date.now() }) + if (packetsRecordingState.active) { + packetsReplayState.packetsPlayback.push({ + name, + data: params, + isFromClient: true, + isUpcoming: false, + position: position++, + timestamp: Date.now(), + }) + packetsReplayState.progress.current++ + } + }) + bot._client.on('packet', (data, { name }) => { + if (name === 'map_chunk') data = { x: data.x, z: data.z } + circularBuffer!.add({ name, state: bot._client.state, params: data, isFromServer: true, timestamp: Date.now() }) + if (packetsRecordingState.active) { + packetsReplayState.packetsPlayback.push({ + name, + data, + isFromClient: false, + isUpcoming: false, + position: position++, + timestamp: Date.now(), + }) + packetsReplayState.progress.total++ + } + }) + const oldWriteChannel = bot._client.writeChannel.bind(bot._client) + bot._client.writeChannel = (channel, params) => { + packetsReplayState.packetsPlayback.push({ + name: channel, + data: params, + isFromClient: true, + isUpcoming: false, + position: position++, + timestamp: Date.now(), + isCustomChannel: true, + }) + oldWriteChannel(channel, params) + } + + upPacketsReplayPanel() +} + +const upPacketsReplayPanel = () => { + if (packetsRecordingState.active && bot) { + packetsReplayState.isOpen = true + packetsReplayState.isMinimized = true + packetsReplayState.isRecording = true + packetsReplayState.replayName = 'Recording all packets for ' + bot.username + } +} + +subscribe(packetsRecordingState, () => { + upPacketsReplayPanel() +}) + +declare module 'mineflayer' { + interface Bot { + downloadCurrentWorldState: () => void + startPacketsRecording: () => void + stopPacketsRecording: () => void + } +} + +export const getLastAutoCapturedPackets = () => circularBuffer?.size +export const downloadAutoCapturedPackets = () => { + const logger = new PacketsLogger({ minecraftVersion: lastConnectVersion }) + logger.relativeTime = false + logger.formattedTime = true + for (const packet of circularBuffer?.getLastElements() ?? []) { + logger.log(packet.isFromServer, { name: packet.name, state: packet.state, time: packet.timestamp }, packet.params) + } + const textContents = logger.contents + const blob = new Blob([textContents], { type: 'text/plain' }) + const url = URL.createObjectURL(blob) + const a = document.createElement('a') + a.href = url + a.download = `${lastConnectOptions.value?.server ?? 'unknown-server'}-${lastConnectOptions.value?.username ?? 'unknown-username'}-auto-captured-packets.txt` + a.click() + URL.revokeObjectURL(url) +} diff --git a/src/mineflayer/plugins/ping.ts b/src/mineflayer/plugins/ping.ts new file mode 100644 index 00000000..d6a23554 --- /dev/null +++ b/src/mineflayer/plugins/ping.ts @@ -0,0 +1,42 @@ +import { versionToNumber } from 'renderer/viewer/common/utils' + +export default () => { + let i = 0 + bot.pingProxy = async () => { + const curI = ++i + return new Promise(resolve => { + //@ts-expect-error + bot._client.socket._ws.send(`ping:${curI}`) + const date = Date.now() + const onPong = (received) => { + if (received !== curI.toString()) return + bot._client.socket.off('pong' as any, onPong) + resolve(Date.now() - date) + } + bot._client.socket.on('pong' as any, onPong) + }) + } + + let pingId = 0 + bot.pingServer = async () => { + if (versionToNumber(bot.version) < versionToNumber('1.20.2')) return bot.player?.ping ?? -1 + return new Promise((resolve) => { + const curId = pingId++ + bot._client.write('ping_request', { id: BigInt(curId) }) + const date = Date.now() + const onPong = (data: { id: bigint }) => { + if (BigInt(data.id) !== BigInt(curId)) return + bot._client.off('ping_response' as any, onPong) + resolve(Date.now() - date) + } + bot._client.on('ping_response' as any, onPong) + }) + } +} + +declare module 'mineflayer' { + interface Bot { + pingProxy: () => Promise + pingServer: () => Promise + } +} diff --git a/src/mineflayer/plugins/webFeatures.ts b/src/mineflayer/plugins/webFeatures.ts new file mode 100644 index 00000000..c56d7d66 --- /dev/null +++ b/src/mineflayer/plugins/webFeatures.ts @@ -0,0 +1,12 @@ +import { Bot } from 'mineflayer' +import { getAppLanguage } from '../../optionsStorage' + +export default () => { + customEvents.on('mineflayerBotCreated', () => { + bot.loadPlugin(plugin) + }) +} + +const plugin = (bot: Bot) => { + bot.settings['locale'] = getAppLanguage() +} diff --git a/src/mineflayer/timers.ts b/src/mineflayer/timers.ts new file mode 100644 index 00000000..99110718 --- /dev/null +++ b/src/mineflayer/timers.ts @@ -0,0 +1,71 @@ +import { subscribeKey } from 'valtio/utils' +import { preventThrottlingWithSound } from '../core/timers' +import { options } from '../optionsStorage' + +customEvents.on('mineflayerBotCreated', () => { + const abortController = new AbortController() + + const maybeGoBackgroundKickPrevention = () => { + if (options.preventBackgroundTimeoutKick && !bot.backgroundKickPrevention) { + const unsub = preventThrottlingWithSound() + bot.on('end', unsub) + bot.backgroundKickPrevention = true + } + } + maybeGoBackgroundKickPrevention() + subscribeKey(options, 'preventBackgroundTimeoutKick', (value) => { + maybeGoBackgroundKickPrevention() + }) + + // wake lock + const requestWakeLock = async () => { + if (!('wakeLock' in navigator)) { + console.warn('Wake Lock API is not supported in this browser') + return + } + + if (options.preventSleep && !bot.wakeLock && !bot.lockRequested) { + bot.lockRequested = true + bot.wakeLock = await navigator.wakeLock.request('screen').finally(() => { + bot.lockRequested = false + }) + + bot.wakeLock.addEventListener('release', () => { + bot.wakeLock = undefined + }, { + once: true, + }) + } + + if (!options.preventSleep && bot.wakeLock) { + void bot.wakeLock.release() + } + } + document.addEventListener('visibilitychange', () => { + if (document.visibilityState === 'visible') { + // we are back to the tab, request wake lock again + void requestWakeLock() + } + }, { + signal: abortController.signal, + }) + void requestWakeLock() + subscribeKey(options, 'preventSleep', (value) => { + void requestWakeLock() + }) + + bot.on('end', () => { + if (bot.wakeLock) { + void bot.wakeLock.release() + } + abortController.abort() + }) +}) + +declare module 'mineflayer' { + interface Bot { + backgroundKickPrevention?: boolean + wakeLock?: WakeLockSentinel + lockRequested?: boolean + } +} diff --git a/src/mineflayer/userError.ts b/src/mineflayer/userError.ts new file mode 100644 index 00000000..9d3e08a7 --- /dev/null +++ b/src/mineflayer/userError.ts @@ -0,0 +1,6 @@ +export class UserError extends Error { + constructor (message: string) { + super(message) + this.name = 'UserError' + } +} diff --git a/src/mineflayer/websocket-core.ts b/src/mineflayer/websocket-core.ts new file mode 100644 index 00000000..f8163102 --- /dev/null +++ b/src/mineflayer/websocket-core.ts @@ -0,0 +1,63 @@ +import { Duplex } from 'stream' +import { UserError } from './userError' + +class CustomDuplex extends Duplex { + constructor (options, public writeAction) { + super(options) + } + + override _read () {} + + override _write (chunk, encoding, callback) { + this.writeAction(chunk) + callback() + } +} + +export const getWebsocketStream = async (host: string) => { + const baseProtocol = host.startsWith('ws://') ? 'ws' : 'wss' + const hostClean = host.replace('ws://', '').replace('wss://', '') + const hostURL = new URL(`${baseProtocol}://${hostClean}`) + const hostParams = hostURL.searchParams + hostParams.append('client_mcraft', '') + const ws = new WebSocket(`${baseProtocol}://${hostURL.host}${hostURL.pathname}?${hostParams.toString()}`) + const clientDuplex = new CustomDuplex(undefined, data => { + ws.send(data) + }) + + clientDuplex.on('error', () => {}) + + ws.addEventListener('message', async message => { + let { data } = message + if (data instanceof Blob) { + data = await data.arrayBuffer() + } + clientDuplex.push(Buffer.from(data)) + }) + + ws.addEventListener('close', () => { + console.log('ws closed') + clientDuplex.end() + setTimeout(() => { + clientDuplex.emit('end', 'Connection lost') + }, 500) + }) + + ws.addEventListener('error', err => { + console.log('ws error', err) + clientDuplex.emit('error', err) + }) + + await new Promise((resolve, reject) => { + ws.addEventListener('open', resolve) + ws.addEventListener('error', err => { + console.log('ws error', err) + reject(new UserError('Failed to open websocket connection')) + }) + }) + + return { + mineflayerStream: clientDuplex, + ws, + } +} diff --git a/src/mobileShim.ts b/src/mobileShim.ts new file mode 100644 index 00000000..ebf33d6e --- /dev/null +++ b/src/mobileShim.ts @@ -0,0 +1,20 @@ +// fix double tap on mobile + +let lastElement = null as { + clickTime: number + element: HTMLElement +} | null +document.addEventListener('touchstart', (e) => { + if (e.touches.length > 1) { + lastElement = null + return + } + if (lastElement && Date.now() - lastElement.clickTime < 500 && lastElement.element === e.target) { + lastElement.element.dispatchEvent(new MouseEvent('dblclick', { bubbles: true })) + lastElement = null + } + lastElement = { + clickTime: Date.now(), + element: e.target as HTMLElement + } +}, { passive: false }) diff --git a/src/optimizeJson.ts b/src/optimizeJson.ts new file mode 100644 index 00000000..a7fe7d4e --- /dev/null +++ b/src/optimizeJson.ts @@ -0,0 +1,369 @@ +import { versionToNumber } from 'renderer/viewer/common/utils' + +type IdMap = Record + +type DiffData = { + removed: number[], + changed: any[], + removedProps: Array<[number, number[]]>, + added +} + +type SourceData = { + keys: IdMap, + properties: IdMap + source: Record + diffs: Record + arrKey? + __IS_OPTIMIZED__: true +} + +function getRecipesProcessorProcessRecipes (items, blocks) { + return (current) => { + // can require the same multiple times per different versions + const itemsIdsMap = Object.fromEntries(items.map((b) => [b.name, b.id])) + const blocksIdsMap = Object.fromEntries(blocks.map((b) => [b.name, b.id])) + const keys = Object.keys(current) + for (const key of keys) { + if (key === '_proccessed') { + delete current[key] + continue + } + const mapId = (id) => { + if (typeof id !== 'string' && typeof id !== 'number') throw new Error('Incorrect type') + const mapped = itemsIdsMap[id] ?? blocksIdsMap[id] + if (!mapped) { + throw new Error(`No item/block name with id ${id}`) + } + return mapped + } + const processRecipe = (obj) => { + // if (!obj) return + // if (Array.isArray(obj)) { + // obj.forEach((id, i) => { + // obj[i] = mapId(obj[id]) + // }) + // } else if (obj && typeof obj === 'object') { + // if (!'count metadata id'.split(' ').every(x => x in obj)) { + // throw new Error(`process error: Unknown deep object pattern: ${JSON.stringify(obj)}`) + // } + // obj.id = mapId(obj.id) + // } else { + // throw new Error('unknown type') + // } + const parseRecipeItem = (item) => { + if (typeof item === 'number' || typeof item === 'string') return mapId(item) + if (Array.isArray(item)) return [mapId(item), ...item.slice(1)] + if (!item) { + return item + } + if ('id' in item) { + item.id = mapId(item.id) + return item + } + throw new Error('unhandled') + } + const maybeProccessShape = (shape) => { + if (!shape) return + for (const shapeRow of shape) { + for (const [i, item] of shapeRow.entries()) { + shapeRow[i] = parseRecipeItem(item) + } + } + } + if (obj.result) obj.result = parseRecipeItem(obj.result) + maybeProccessShape(obj.inShape) + maybeProccessShape(obj.outShape) + if (obj.ingredients) { + for (const [i, ingredient] of obj.ingredients.entries()) { + obj.ingredients[i] = parseRecipeItem(ingredient) + } + } + } + // eslint-disable-next-line no-useless-catch + try { + const name = mapId(key) + for (const [i, recipe] of current[key].entries()) { + // eslint-disable-next-line no-useless-catch + try { + processRecipe(recipe) + } catch (err) { + // console.warn(`${version} [warn] Removing incorrect recipe: ${err}`) + // delete current[i] + throw err + } + } + current[name] = current[key] + } catch (err) { + // console.warn(`${version} [warn] Removing incorrect recipe: ${err}`) + throw err + } + delete current[key] + } + } +} + +export const restoreMinecraftData = (allVersionData: any, type: string, version: string) => { + let restorer + if (type === 'recipes') { + restorer = getRecipesProcessorProcessRecipes( + JsonOptimizer.restoreData(allVersionData.items, version, undefined), + JsonOptimizer.restoreData(allVersionData.blocks, version, undefined), + ) + } + return JsonOptimizer.restoreData(allVersionData[type], version, restorer) +} + +export default class JsonOptimizer { + keys = {} as IdMap + idToKey = {} as Record + properties = {} as IdMap + source = {} + previousKeys = [] as number[] + previousValues = {} as Record + diffs = {} as Record + + constructor (public arrKey?: string, public ignoreChanges = false, public ignoreRemoved = false) { } + + export () { + const { keys, properties, source, arrKey, diffs } = this + return { + keys, + properties, + source, + arrKey, + diffs, + '__IS_OPTIMIZED__': true + } satisfies SourceData + } + + diffObj (diffing): DiffData { + const removed = [] as number[] + const changed = [] as any[] + const removedProps = [] as any[] + const { arrKey, ignoreChanges, ignoreRemoved } = this + const added = [] as number[] + + if (!diffing || typeof diffing !== 'object') throw new Error('diffing data is not object') + if (Array.isArray(diffing) && !arrKey) throw new Error('arrKey is required for arrays') + const diffingObj = Array.isArray(diffing) ? Object.fromEntries(diffing.map(x => { + const key = JsonOptimizer.getByArrKey(x, arrKey!) + return [key, x] + })) : diffing + + const possiblyNewKeys = Object.keys(diffingObj) + this.keys ??= {} + this.properties ??= {} + let lastRootKeyId = Object.values(this.keys).length + let lastItemKeyId = Object.values(this.properties).length + for (const key of possiblyNewKeys) { + this.keys[key] ??= lastRootKeyId++ + this.idToKey[this.keys[key]] = key + } + const DEBUG = false + + const addDiff = (key, newVal, prevVal) => { + const valueMapped = [] as any[] + const isItemObj = typeof newVal === 'object' && newVal + const keyId = this.keys[key] + if (isItemObj) { + const removedPropsLocal = [] as any[] + for (const [prop, val] of Object.entries(newVal)) { + // mc-data: why push only changed props? eg for blocks only stateId are different between all versions so we skip a lot of duplicated data like block props + if (!isEqualStructured(newVal[prop], prevVal[prop])) { + let keyMapped = this.properties[prop] + if (keyMapped === undefined) { + this.properties[prop] = lastItemKeyId++ + keyMapped = this.properties[prop] + } + valueMapped.push(DEBUG ? prop : keyMapped, newVal[prop]) + } + } + // also add undefined for removed props + for (const prop of Object.keys(prevVal)) { + if (prop in newVal) continue + let keyMapped = this.properties[prop] + if (keyMapped === undefined) { + this.properties[prop] = lastItemKeyId++ + keyMapped = this.properties[prop] + } + removedPropsLocal.push(DEBUG ? prop : keyMapped) + } + removedProps.push([keyId, removedPropsLocal]) + } + changed.push(DEBUG ? key : keyId, isItemObj ? valueMapped : newVal) + } + for (const [id, sourceVal] of Object.entries(this.source)) { + const key = this.idToKey[id] + const diffVal = diffingObj[key] + if (!ignoreChanges && diffVal !== undefined) { + this.previousValues[id] ??= this.source[id] + const prevVal = this.previousValues[id] + if (!isEqualStructured(prevVal, diffVal)) { + addDiff(key, diffVal, prevVal) + } + this.previousValues[id] = diffVal + } + } + for (const [key, val] of Object.entries(diffingObj)) { + const id = this.keys[key] + if (!this.source[id]) { + this.source[id] = val + } + added.push(id) + } + + for (const previousKey of this.previousKeys) { + const key = this.idToKey[previousKey] + if (diffingObj[key] === undefined && !ignoreRemoved) { + removed.push(previousKey) + } + } + + for (const toRemove of removed) { + this.previousKeys.splice(this.previousKeys.indexOf(toRemove), 1) + } + + for (const previousKey of this.previousKeys) { + const index = added.indexOf(previousKey) + if (index === -1) continue + added.splice(index, 1) + } + + this.previousKeys = [...this.previousKeys, ...added] + + return { + removed, + changed, + added, + removedProps + } + } + + recordDiff (key: string, diffObj: string) { + const diff = this.diffObj(diffObj) + // problem is that 274 key 10.20.6 no removed keys in diff created + this.diffs[key] = diff + } + + static isOptimizedChangeDiff (changePossiblyArrDiff) { + if (!Array.isArray(changePossiblyArrDiff)) return false + if (changePossiblyArrDiff.length % 2 !== 0) return false + for (let i = 0; i < changePossiblyArrDiff.length; i += 2) { + if (typeof changePossiblyArrDiff[i] !== 'number') return false + } + return true + } + + static restoreData ({ keys, properties, source, arrKey, diffs }: SourceData, targetKey: string, dataRestorer: ((data) => void) | undefined) { + // if (!diffs[targetKey]) throw new Error(`The requested data to restore with key ${targetKey} does not exist`) + source = structuredClone(source) + const keysById = Object.fromEntries(Object.entries(keys).map(x => [x[1], x[0]])) + const propertiesById = Object.fromEntries(Object.entries(properties).map(x => [x[1], x[0]])) + const dataByKeys = {} as Record + for (const [versionKey, { added, changed, removed, removedProps }] of Object.entries(diffs)) { + for (const toAdd of added) { + dataByKeys[toAdd] = source[toAdd] + } + for (const toRemove of removed) { + delete dataByKeys[toRemove] + } + for (let i = 0; i < changed.length; i += 2) { + const key = changed[i] + const change = changed[i + 1] + const isOptimizedChange = JsonOptimizer.isOptimizedChangeDiff(change) + if (isOptimizedChange) { + // apply optimized diff + for (let k = 0; k < change.length; k += 2) { + const propId = change[k] + const newVal = change[k + 1] + const prop = propertiesById[propId] + // const prop = propId + if (prop === undefined) throw new Error(`Property id change is undefined: ${propId}`) + dataByKeys[key][prop] = newVal + } + } else { + dataByKeys[key] = change + } + } + for (const [key, removePropsId] of removedProps) { + for (const removePropId of removePropsId) { + const removeProp = propertiesById[removePropId] + // todo: this is not correct! + if (Array.isArray(dataByKeys[key])) { + dataByKeys[key].splice(removeProp as any, 1) // splice accepts strings as well + } else { + delete dataByKeys[key][removeProp] + } + } + } + if (versionToNumber(versionKey) <= versionToNumber(targetKey)) { + break + } + } + let data + if (arrKey) { + data = Object.values(dataByKeys) + } else { + data = Object.fromEntries(Object.entries(dataByKeys).map(([key, val]) => [keysById[key], val])) + } + dataRestorer?.(data) + return data + } + + static getByArrKey (item: any, arrKey: string) { + return arrKey.split('+').map(x => item[x]).join('+') + } + + static resolveDefaults (arr) { + if (!Array.isArray(arr)) throw new Error('not an array') + const propsValueCount = {} as { + [key: string]: { + [val: string]: number + } + } + for (const obj of arr) { + if (typeof obj !== 'object' || !obj) continue + for (const [key, val] of Object.entries(obj)) { + const valJson = JSON.stringify(val) + propsValueCount[key] ??= {} + propsValueCount[key][valJson] ??= 0 + propsValueCount[key][valJson] += 1 + } + } + const defaults = Object.fromEntries(Object.entries(propsValueCount).map(([prop, values]) => { + const defaultValue = Object.entries(values).sort(([, count1], [, count2]) => count2 - count1)[0][0] + return [prop, defaultValue] + })) + + const newData = [] as any[] + const noData = {} + for (const [i, obj] of arr.entries()) { + if (typeof obj !== 'object' || !obj) { + newData.push(obj) + continue + } + for (const key of Object.keys(defaults)) { + const val = obj[key] + if (!val) { + noData[key] ??= [] + noData[key].push(key) + continue + } + if (defaults[key] === JSON.stringify(val)) { + delete obj[key] + } + } + newData.push(obj) + } + + return { + data: newData, + defaults + } + } +} + +const isEqualStructured = (val1, val2) => { + return JSON.stringify(val1) === JSON.stringify(val2) +} diff --git a/src/optionsGuiScheme.tsx b/src/optionsGuiScheme.tsx new file mode 100644 index 00000000..0cb0fe1e --- /dev/null +++ b/src/optionsGuiScheme.tsx @@ -0,0 +1,743 @@ +import { useEffect, useRef, useState } from 'react' +import { useSnapshot } from 'valtio' +import { openURL } from 'renderer/viewer/lib/simpleUtils' +import { noCase } from 'change-case' +import { versionToNumber } from 'mc-assets/dist/utils' +import { gameAdditionalState, miscUiState, openOptionsMenu, showModal } from './globalState' +import { AppOptions, getChangedSettings, options, resetOptions } from './optionsStorage' +import Button from './react/Button' +import { OptionMeta, OptionSlider } from './react/OptionsItems' +import Slider from './react/Slider' +import { getScreenRefreshRate } from './utils' +import { setLoadingScreenStatus } from './appStatus' +import { openFilePicker, resetLocalStorage } from './browserfs' +import { completeResourcepackPackInstall, getResourcePackNames, resourcepackReload, resourcePackState, uninstallResourcePack } from './resourcePack' +import { downloadPacketsReplay, packetsRecordingState } from './packetsReplay/packetsReplayLegacy' +import { showInputsModal, showOptionsModal } from './react/SelectOption' +import { ClientMod, getAllMods, modsUpdateStatus } from './clientMods' +import supportedVersions from './supportedVersions.mjs' +import { getVersionAutoSelect } from './connect' +import { createNotificationProgressReporter } from './core/progressReporter' +import { customKeymaps } from './controls' +import { appStorage } from './react/appStorageProvider' +import { exportData, importData } from './core/importExport' + +export const guiOptionsScheme: { + [t in OptionsGroupType]: Array<{ [K in keyof AppOptions]?: Partial> } & { custom? }> +} = { + render: [ + { + custom () { + const frameLimitValue = useSnapshot(options).frameLimit + const [frameLimitMax, setFrameLimitMax] = useState(null as number | null) + + return
+ { + options.frameLimit = newVal > frameLimitMax! ? false : newVal + }} + /> +
+ } + }, + { + gpuPreference: { + text: 'GPU Preference', + tooltip: 'You will need to reload the page for this to take effect.', + values: [['default', 'Auto'], ['high-performance', 'Dedicated'], ['low-power', 'Low Power']] + }, + }, + { + custom () { + return + }, + mouseSensX: {}, + mouseSensY: { + min: -1, + valueText (value) { + return value === -1 ? 'Same as X' : `${value}` + }, + }, + mouseRawInput: { + tooltip: 'Wether to disable any mouse acceleration (MC does it by default). Most probably it is still supported only by Chrome.', + // eslint-disable-next-line no-extra-boolean-cast + disabledReason: Boolean(document.documentElement.requestPointerLock) ? undefined : 'Your browser does not support pointer lock.', + }, + autoFullScreen: { + tooltip: 'Auto Fullscreen allows you to use Ctrl+W and Escape having to wait/click on screen again.', + disabledReason: navigator['keyboard'] ? undefined : 'Your browser doesn\'t support keyboard lock API' + }, + autoExitFullscreen: { + tooltip: 'Exit fullscreen on escape (pause menu open). But note you can always do it with F11.', + }, + }, + { + custom () { + return Touch Controls + }, + alwaysShowMobileControls: { + text: 'Always Mobile Controls', + }, + touchButtonsSize: { + min: 40, + disableIf: [ + 'touchMovementType', + 'modern' + ], + }, + touchButtonsOpacity: { + min: 10, + max: 90, + disableIf: [ + 'touchMovementType', + 'modern' + ], + }, + touchButtonsPosition: { + max: 80, + disableIf: [ + 'touchMovementType', + 'modern' + ], + }, + touchMovementType: { + text: 'Movement Controls', + values: [['modern', 'Modern'], ['classic', 'Classic']], + }, + touchInteractionType: { + text: 'Interaction Controls', + values: [['classic', 'Classic'], ['buttons', 'Buttons']], + }, + }, + { + custom () { + const { touchInteractionType, touchMovementType } = useSnapshot(options) + return + }, + }, + { + custom () { + return + }, + }, + { + custom () { + return + }, + }, + { + custom () { + const { active, hasRecordedPackets } = useSnapshot(packetsRecordingState) + return + }, + }, + { + packetsLoggerPreset: { + text: 'Packets Logger Preset', + values: [ + ['all', 'All'], + ['no-buffers', 'No Buffers'] + ], + }, + }, + { + debugContro: { + text: 'Debug Controls', + }, + }, + { + debugResponseTimeIndicator: { + text: 'Debug Input Lag', + }, + }, + { + debugChatScroll: { + }, + } + ], + 'export-import': [ + { + custom () { + return Export/Import Data + } + }, + { + custom () { + return + } + }, + { + custom () { + return + } + }, + { + custom () { + return + } + }, + { + custom () { + return + } + } + ], +} +export type OptionsGroupType = 'main' | 'render' | 'interface' | 'controls' | 'sound' | 'advanced' | 'VR' | 'export-import' + +const Category = ({ children }) =>
{children}
+ +const UiToggleButton = ({ name, addUiText = false, label = noCase(name) }: { name: string, addUiText?: boolean, label?: string }) => { + const { disabledUiParts } = useSnapshot(options) + + const currentlyDisabled = disabledUiParts.includes(name) + if (addUiText) label = `${label} UI` + return +} + +export const tryFindOptionConfig = (option: keyof AppOptions) => { + for (const group of Object.values(guiOptionsScheme)) { + for (const optionConfig of group) { + if (option in optionConfig) { + return optionConfig[option] + } + } + } + + return null +} diff --git a/src/optionsStorage.ts b/src/optionsStorage.ts new file mode 100644 index 00000000..22d5ef26 --- /dev/null +++ b/src/optionsStorage.ts @@ -0,0 +1,164 @@ +import { proxy, subscribe } from 'valtio/vanilla' +import { subscribeKey } from 'valtio/utils' +import { omitObj } from '@zardoy/utils' +import { appQueryParams, appQueryParamsArray } from './appParams' +import type { AppConfig } from './appConfig' +import { appStorage } from './react/appStorageProvider' +import { miscUiState } from './globalState' +import { defaultOptions } from './defaultOptions' + +const isDev = process.env.NODE_ENV === 'development' +const initialAppConfig = process.env?.INLINED_APP_CONFIG as AppConfig ?? {} + +// const qsOptionsRaw = new URLSearchParams(location.search).getAll('setting') +const qsOptionsRaw = appQueryParamsArray.setting ?? [] +export const qsOptions = Object.fromEntries(qsOptionsRaw.map(o => { + const [key, value] = o.split(':') + return [key, JSON.parse(value)] +})) + +// Track which settings are disabled (controlled by QS or forced by config) +export const disabledSettings = proxy({ + value: new Set(Object.keys(qsOptions)) +}) + +const migrateOptions = (options: Partial>) => { + if (options.highPerformanceGpu) { + options.gpuPreference = 'high-performance' + delete options.highPerformanceGpu + } + if (Object.keys(options.touchControlsPositions ?? {}).length === 0) { + options.touchControlsPositions = defaultOptions.touchControlsPositions + } + if (options.touchControlsPositions?.jump === undefined) { + options.touchControlsPositions!.jump = defaultOptions.touchControlsPositions.jump + } + if (options.touchControlsType === 'joystick-buttons') { + options.touchInteractionType = 'buttons' + } + + return options +} +const migrateOptionsLocalStorage = () => { + if (Object.keys(appStorage['options'] ?? {}).length) { + for (const key of Object.keys(appStorage['options'])) { + if (!(key in defaultOptions)) continue // drop unknown options + const defaultValue = defaultOptions[key] + if (JSON.stringify(defaultValue) !== JSON.stringify(appStorage['options'][key])) { + appStorage.changedSettings[key] = appStorage['options'][key] + } + } + delete appStorage['options'] + } +} + +export type AppOptions = typeof defaultOptions + +const isDeepEqual = (a: any, b: any): boolean => { + if (a === b) return true + if (typeof a !== typeof b) return false + if (typeof a !== 'object') return false + if (a === null || b === null) return a === b + if (Array.isArray(a) && Array.isArray(b)) { + if (a.length !== b.length) return false + return a.every((item, index) => isDeepEqual(item, b[index])) + } + const keysA = Object.keys(a) + const keysB = Object.keys(b) + if (keysA.length !== keysB.length) return false + return keysA.every(key => isDeepEqual(a[key], b[key])) +} + +export const getChangedSettings = () => { + return Object.fromEntries( + Object.entries(appStorage.changedSettings).filter(([key, value]) => !isDeepEqual(defaultOptions[key], value)) + ) +} + +migrateOptionsLocalStorage() +export const options: AppOptions = proxy({ + ...defaultOptions, + ...initialAppConfig.defaultSettings, + ...migrateOptions(appStorage.changedSettings), + ...qsOptions +}) + +window.options = window.settings = options + +export const resetOptions = () => { + Object.assign(options, defaultOptions) +} + +Object.defineProperty(window, 'debugChangedOptions', { + get () { + return getChangedSettings() + }, +}) + +subscribe(options, (ops) => { + if (appQueryParams.freezeSettings === 'true') return + for (const op of ops) { + const [type, path, value] = op + // let patch + // let accessor = options + // for (const part of path) { + // } + const key = path[0] as string + if (disabledSettings.value.has(key)) continue + appStorage.changedSettings[key] = options[key] + } +}) + +type WatchValue = >(proxy: T, callback: (p: T, isChanged: boolean) => void) => () => void + +export const watchValue: WatchValue = (proxy, callback) => { + const watchedProps = new Set() + callback(new Proxy(proxy, { + get (target, p, receiver) { + watchedProps.add(p.toString()) + return Reflect.get(target, p, receiver) + }, + }), false) + const unsubscribes = [] as Array<() => void> + for (const prop of watchedProps) { + unsubscribes.push( + subscribeKey(proxy, prop, () => { + callback(proxy, true) + }) + ) + } + + return () => { + for (const unsubscribe of unsubscribes) { + unsubscribe() + } + } +} + +watchValue(options, o => { + globalThis.excludeCommunicationDebugEvents = o.excludeCommunicationDebugEvents +}) + +watchValue(options, o => { + document.body.classList.toggle('disable-assets', o.disableAssets) +}) +watchValue(options, o => { + document.body.style.setProperty('--touch-movement-buttons-opacity', (o.touchButtonsOpacity / 100).toString()) +}) +watchValue(options, o => { + document.body.style.setProperty('--touch-movement-buttons-position', (o.touchButtonsPosition * 2) + 'px') +}) + +export const useOptionValue = (setting, valueCallback) => { + valueCallback(setting) + subscribe(setting, valueCallback) +} + +export const getAppLanguage = () => { + if (options.language === 'auto') { + return miscUiState.appConfig?.defaultLanguage ?? navigator.language + } + return options.language +} + +export { defaultOptions } from './defaultOptions' diff --git a/src/packetsReplay/packetsReplayLegacy.ts b/src/packetsReplay/packetsReplayLegacy.ts new file mode 100644 index 00000000..a9cc71ec --- /dev/null +++ b/src/packetsReplay/packetsReplayLegacy.ts @@ -0,0 +1,70 @@ +import { proxy } from 'valtio' +import { PacketsLogger } from 'mcraft-fun-mineflayer/build/packetsLogger' +import { options } from '../optionsStorage' + +export const packetsRecordingState = proxy({ + active: options.packetsRecordingAutoStart, + hasRecordedPackets: false +}) + +// eslint-disable-next-line import/no-mutable-exports +export let replayLogger: PacketsLogger | undefined + +const isBufferData = (data: any): boolean => { + if (Buffer.isBuffer(data) || data instanceof Uint8Array) return true + if (typeof data === 'object' && data !== null) { + return Object.values(data).some(value => isBufferData(value)) + } + return false +} + +const processPacketData = (data: any): any => { + if (options.packetsLoggerPreset === 'no-buffers') { + if (Buffer.isBuffer(data)) { + return '[buffer]' + } + if (typeof data === 'object' && data !== null) { + const processed = {} + for (const [key, value] of Object.entries(data)) { + processed[key] = isBufferData(value) ? '[buffer]' : value + } + return processed + } + } + return data +} + +export default () => { + customEvents.on('mineflayerBotCreated', () => { + replayLogger = new PacketsLogger({ minecraftVersion: bot.version }) + replayLogger.contents = '' + packetsRecordingState.hasRecordedPackets = false + const handleServerPacket = (data, { name, state = bot._client.state }) => { + if (!packetsRecordingState.active) { + return + } + replayLogger!.log(true, { name, state }, processPacketData(data)) + packetsRecordingState.hasRecordedPackets = true + } + bot._client.on('packet', handleServerPacket) + bot._client.on('packet_name' as any, (name, data) => { + handleServerPacket(data, { name }) + }) + + bot._client.on('writePacket' as any, (name, data) => { + if (!packetsRecordingState.active) { + return + } + replayLogger!.log(false, { name, state: bot._client.state }, processPacketData(data)) + packetsRecordingState.hasRecordedPackets = true + }) + }) +} + +export const downloadPacketsReplay = async () => { + const a = document.createElement('a') + a.href = `data:text/plain;charset=utf-8,${encodeURIComponent(replayLogger!.contents)}` + a.download = `packets-replay-${new Date().toISOString()}.txt` + a.click() +} +globalThis.downloadPacketsReplay = downloadPacketsReplay diff --git a/src/packetsReplay/replayPackets.ts b/src/packetsReplay/replayPackets.ts new file mode 100644 index 00000000..54b3d652 --- /dev/null +++ b/src/packetsReplay/replayPackets.ts @@ -0,0 +1,366 @@ +/* eslint-disable no-await-in-loop */ +import { createServer, ServerClient } from 'minecraft-protocol' +import { ParsedReplayPacket, parseReplayContents } from 'mcraft-fun-mineflayer/build/packetsLogger' +import { PACKETS_REPLAY_FILE_EXTENSION, WORLD_STATE_FILE_EXTENSION } from 'mcraft-fun-mineflayer/build/worldState' +import MinecraftData from 'minecraft-data' +import { GameMode } from 'mineflayer' +import { UserError } from '../mineflayer/userError' +import { packetsReplayState } from '../react/state/packetsReplayState' +import { getFixedFilesize } from '../react/simpleUtils' +import { appQueryParams } from '../appParams' +import { LocalServer } from '../customServer' + +const SUPPORTED_FORMAT_VERSION = 1 + +type ReplayDefinition = { + minecraftVersion: string + replayAgainst?: 'client' | 'server' + serverIp?: string +} + +interface OpenFileOptions { + contents: string + filename?: string + filesize?: number +} + +export function openFile ({ contents, filename = 'unnamed', filesize }: OpenFileOptions) { + packetsReplayState.replayName = `${filename} (${getFixedFilesize(filesize ?? contents.length)})` + packetsReplayState.isPlaying = false + + const connectOptions = { + worldStateFileContents: contents, + username: 'replay' + } + dispatchEvent(new CustomEvent('connect', { detail: connectOptions })) +} + +export const startLocalReplayServer = (contents: string) => { + const { packets, header } = parseReplayContents(contents) + + packetsReplayState.packetsPlayback = [] + packetsReplayState.isOpen = true + packetsReplayState.isPlaying = true + packetsReplayState.progress = { + current: 0, + total: packets.filter(packet => packet.isFromServer).length + } + packetsReplayState.speed = 1 + packetsReplayState.replayName ||= `local ${getFixedFilesize(contents.length)}` + packetsReplayState.replayName = `${header.minecraftVersion} ${packetsReplayState.replayName}` + + if ('formatVersion' in header && header.formatVersion !== SUPPORTED_FORMAT_VERSION) { + throw new UserError(`Unsupported format version: ${header.formatVersion}`) + } + if ('replayAgainst' in header && header.replayAgainst === 'server') { + throw new Error('not supported') + } + + const server = createServer({ + Server: LocalServer as any, + version: header.minecraftVersion, + keepAlive: false, + 'online-mode': false + }) + + const data = MinecraftData(header.minecraftVersion) + server.on(data.supportFeature('hasConfigurationState') ? 'playerJoin' : 'login' as any, async client => { + await mainPacketsReplayer( + client, + packets, + packetsReplayState.customButtons.validateClientPackets.state ? undefined : true + ) + }) + + return { + server, + version: header.minecraftVersion + } +} + +// time based packets +// const FLATTEN_CLIENT_PACKETS = new Set(['position', 'position_look']) +const FLATTEN_CLIENT_PACKETS = new Set([] as string[]) + +const positions = { + client: 0, + server: 0 +} +const addPacketToReplayer = (name: string, data, isFromClient: boolean, wasUpcoming = false) => { + const side = isFromClient ? 'client' : 'server' + + if (wasUpcoming) { + const lastUpcoming = packetsReplayState.packetsPlayback.find(p => p.isUpcoming && p.name === name) + if (lastUpcoming) { + lastUpcoming.isUpcoming = false + } + } else { + packetsReplayState.packetsPlayback.push({ + name, + data, + isFromClient, + position: ++positions[side]!, + isUpcoming: false, + timestamp: Date.now() + }) + } + + if (!isFromClient && !wasUpcoming) { + packetsReplayState.progress.current++ + } +} + +const IGNORE_SERVER_PACKETS = new Set([ + 'kick_disconnect', +]) + +const ADDITIONAL_DELAY = 500 + +const mainPacketsReplayer = async (client: ServerClient, packets: ParsedReplayPacket[], ignoreClientPacketsWait: string[] | true = []) => { + const writePacket = (name: string, data: any) => { + data = restoreData(data) + client.write(name, data) + } + + const playPackets = packets.filter(p => p.state === 'play') + + let clientPackets = [] as Array<{ name: string, params: any }> + const clientsPacketsWaiter = createPacketsWaiter({ + unexpectedPacketReceived (name, params) { + console.log('unexpectedPacketReceived', name, params) + addPacketToReplayer(name, params, true) + }, + expectedPacketReceived (name, params) { + console.log('expectedPacketReceived', name, params) + addPacketToReplayer(name, params, true, true) + }, + unexpectedPacketsLimit: 15, + onUnexpectedPacketsLimitReached () { + addPacketToReplayer('...', {}, true) + } + }) + + // Patch console.error to detect errors + const originalConsoleError = console.error + let lastSentPacket: { name: string, params: any } | null = null + console.error = (...args) => { + if (lastSentPacket) { + console.log('Got error after packet', lastSentPacket.name, lastSentPacket.params) + } + originalConsoleError.apply(console, args) + if (packetsReplayState.customButtons.stopOnError.state) { + packetsReplayState.isPlaying = false + throw new Error('Replay stopped due to error: ' + args.join(' ')) + } + } + + const playServerPacket = (name: string, params: any) => { + try { + writePacket(name, params) + addPacketToReplayer(name, params, false) + lastSentPacket = { name, params } + } catch (err) { + console.error('Error processing packet:', err) + if (packetsReplayState.customButtons.stopOnError.state) { + packetsReplayState.isPlaying = false + } + } + } + + try { + bot.on('error', (err) => { + console.error('Mineflayer error:', err) + }) + + bot._client.on('writePacket' as any, (name, params) => { + clientsPacketsWaiter.addPacket(name, params) + }) + + console.log('start replaying!') + for (const [i, packet] of playPackets.entries()) { + if (!packetsReplayState.isPlaying) { + await new Promise(resolve => { + const interval = setInterval(() => { + if (packetsReplayState.isPlaying) { + clearInterval(interval) + resolve() + } + }, 100) + }) + } + + if (packet.isFromServer) { + if (packet.params === null) { + console.warn('packet.params is null', packet) + continue + } + playServerPacket(packet.name, packet.params) + if (packet.diff) { + await new Promise(resolve => { + setTimeout(resolve, packet.diff * packetsReplayState.speed + ADDITIONAL_DELAY * (packetsReplayState.customButtons.packetsSenderDelay.state ? 1 : 0)) + }) + } + } else if (ignoreClientPacketsWait !== true && !ignoreClientPacketsWait.includes(packet.name)) { + clientPackets.push({ name: packet.name, params: packet.params }) + if (playPackets[i + 1]?.isFromServer) { + // eslint-disable-next-line @typescript-eslint/no-loop-func + clientPackets = clientPackets.filter((p, index) => { + return !FLATTEN_CLIENT_PACKETS.has(p.name) || index === clientPackets.findIndex(clientPacket => clientPacket.name === p.name) + }) + for (const packet of clientPackets) { + packetsReplayState.packetsPlayback.push({ + name: packet.name, + data: packet.params, + isFromClient: true, + position: positions.client++, + timestamp: Date.now(), + isUpcoming: true, + }) + } + + await Promise.race([ + clientsPacketsWaiter.waitForPackets(clientPackets.map(p => p.name)), + ...(packetsReplayState.customButtons.skipMissingOnTimeout.state ? [new Promise(resolve => { + setTimeout(resolve, 1000) + })] : []) + ]) + clientsPacketsWaiter.stopWaiting() + clientPackets = [] + } + } + } + } finally { + // Restore original console.error + console.error = originalConsoleError + } +} + +export const switchGameMode = (gameMode: GameMode) => { + const gamemodes = { + survival: 0, + creative: 1, + adventure: 2, + spectator: 3 + } + if (gameMode === 'spectator') { + bot._client.emit('abilities', { + // can fly + is flying + flags: 6 + }) + } + bot._client.emit('game_state_change', { + reason: 3, + gameMode: gamemodes[gameMode] + }) +} + +interface PacketsWaiterOptions { + unexpectedPacketReceived?: (name: string, params: any) => void + expectedPacketReceived?: (name: string, params: any) => void + onUnexpectedPacketsLimitReached?: () => void + unexpectedPacketsLimit?: number +} + +interface PacketsWaiter { + addPacket(name: string, params: any): void + waitForPackets(packets: string[]): Promise + stopWaiting(): void +} + +const createPacketsWaiter = (options: PacketsWaiterOptions = {}): PacketsWaiter => { + let packetHandler: ((data: any, name: string) => void) | null = null + const queuedPackets: Array<{ name: string, params: any }> = [] + let isWaiting = false + let unexpectedPacketsCount = 0 + const handlePacket = (data: any, name: string, waitingPackets: string[], resolve: () => void) => { + if (waitingPackets.includes(name)) { + waitingPackets.splice(waitingPackets.indexOf(name), 1) + options.expectedPacketReceived?.(name, data) + } else { + if (options.unexpectedPacketsLimit && unexpectedPacketsCount < options.unexpectedPacketsLimit) { + options.unexpectedPacketReceived?.(name, data) + } + if (options.onUnexpectedPacketsLimitReached && unexpectedPacketsCount === options.unexpectedPacketsLimit) { + options.onUnexpectedPacketsLimitReached?.() + } + unexpectedPacketsCount++ + } + + if (waitingPackets.length === 0) { + resolve() + } + } + + return { + addPacket (name: string, params: any) { + if (packetHandler) { + packetHandler(params, name) + } else { + queuedPackets.push({ name, params }) + } + }, + + async waitForPackets (packets: string[]) { + if (isWaiting) { + throw new Error('Already waiting for packets') + } + unexpectedPacketsCount = 0 + isWaiting = true + + try { + await new Promise(resolve => { + const waitingPackets = [...packets] + + packetHandler = (data: any, name: string) => { + handlePacket(data, name, waitingPackets, resolve) + } + + // Process any queued packets + for (const packet of queuedPackets) { + handlePacket(packet.params, packet.name, waitingPackets, resolve) + } + queuedPackets.length = 0 + }) + } finally { + isWaiting = false + packetHandler = null + } + }, + stopWaiting () { + isWaiting = false + packetHandler = null + queuedPackets.length = 0 + } + } +} + +const isArrayEqual = (a: any[], b: any[]) => { + if (a.length !== b.length) return false + for (const [i, element] of a.entries()) { + if (element !== b[i]) return false + } + return true +} + +const restoreData = (json: any) => { + if (!json) return json + const keys = Object.keys(json) + + if (isArrayEqual(keys.sort(), ['data', 'type'].sort())) { + if (json.type === 'Buffer') { + return Buffer.from(json.data) + } + } + + if (typeof json === 'object' && json) { + for (const [key, value] of Object.entries(json)) { + if (typeof value === 'object') { + json[key] = restoreData(value) + } + } + } + + return json +} + +export const VALID_REPLAY_EXTENSIONS = [`.${PACKETS_REPLAY_FILE_EXTENSION}`, `.${WORLD_STATE_FILE_EXTENSION}`] diff --git a/src/parseServerAddress.ts b/src/parseServerAddress.ts new file mode 100644 index 00000000..acedf70a --- /dev/null +++ b/src/parseServerAddress.ts @@ -0,0 +1,54 @@ + + +export const parseServerAddress = (address: string | undefined, removeHttp = true): ParsedServerAddress => { + if (!address) { + return { host: '', isWebSocket: false, serverIpFull: '' } + } + + if (/^ws:[^/]/.test(address)) address = address.replace('ws:', 'ws://') + if (/^wss:[^/]/.test(address)) address = address.replace('wss:', 'wss://') + const isWebSocket = address.startsWith('ws://') || address.startsWith('wss://') + if (isWebSocket) { + return { host: address, isWebSocket: true, serverIpFull: address } + } + + if (removeHttp) { + address = address.replace(/^https?:\/\//, '') + } + + const parts = address.split(':') + + let version: string | null = null + let port: string | null = null + + for (let i = 0; i < parts.length; i++) { + const part = parts[i] + if (/^\d+\.\d+(\.\d+)?$/.test(part)) { + version = part + parts.splice(i, 1) + i-- + } + if (/^\d+$/.test(part)) { + port = part + parts.splice(i, 1) + i-- + } + } + + const host = parts.join(':') + return { + host, + ...(port ? { port } : {}), + ...(version ? { version } : {}), + isWebSocket: false, + serverIpFull: port ? `${host}:${port}` : host + } +} + +export interface ParsedServerAddress { + host: string + port?: string + version?: string + isWebSocket: boolean + serverIpFull: string +} diff --git a/src/preflatMap.json b/src/preflatMap.json new file mode 100644 index 00000000..81c2a20a --- /dev/null +++ b/src/preflatMap.json @@ -0,0 +1,1741 @@ +{ + "blocks": { + "0:0": "air", + "1:0": "stone", + "1:1": "granite", + "1:2": "polished_granite", + "1:3": "diorite", + "1:4": "polished_diorite", + "1:5": "andesite", + "1:6": "polished_andesite", + "2:0": "grass_block[snowy=false]", + "3:0": "dirt", + "3:1": "coarse_dirt", + "3:2": "podzol[snowy=false]", + "4:0": "cobblestone", + "5:0": "oak_planks", + "5:1": "spruce_planks", + "5:2": "birch_planks", + "5:3": "jungle_planks", + "5:4": "acacia_planks", + "5:5": "dark_oak_planks", + "6:0": "oak_sapling[stage=0]", + "6:1": "spruce_sapling[stage=0]", + "6:2": "birch_sapling[stage=0]", + "6:3": "jungle_sapling[stage=0]", + "6:4": "acacia_sapling[stage=0]", + "6:5": "dark_oak_sapling[stage=0]", + "6:8": "oak_sapling[stage=1]", + "6:9": "spruce_sapling[stage=1]", + "6:10": "birch_sapling[stage=1]", + "6:11": "jungle_sapling[stage=1]", + "6:12": "acacia_sapling[stage=1]", + "6:13": "dark_oak_sapling[stage=1]", + "7:0": "bedrock", + "8:0": "water[level=0]", + "8:1": "water[level=1]", + "8:2": "water[level=2]", + "8:3": "water[level=3]", + "8:4": "water[level=4]", + "8:5": "water[level=5]", + "8:6": "water[level=6]", + "8:7": "water[level=7]", + "8:8": "water[level=8]", + "8:9": "water[level=9]", + "8:10": "water[level=10]", + "8:11": "water[level=11]", + "8:12": "water[level=12]", + "8:13": "water[level=13]", + "8:14": "water[level=14]", + "8:15": "water[level=15]", + "9:0": "water[level=0]", + "9:1": "water[level=1]", + "9:2": "water[level=2]", + "9:3": "water[level=3]", + "9:4": "water[level=4]", + "9:5": "water[level=5]", + "9:6": "water[level=6]", + "9:7": "water[level=7]", + "9:8": "water[level=8]", + "9:9": "water[level=9]", + "9:10": "water[level=10]", + "9:11": "water[level=11]", + "9:12": "water[level=12]", + "9:13": "water[level=13]", + "9:14": "water[level=14]", + "9:15": "water[level=15]", + "10:0": "lava[level=0]", + "10:1": "lava[level=1]", + "10:2": "lava[level=2]", + "10:3": "lava[level=3]", + "10:4": "lava[level=4]", + "10:5": "lava[level=5]", + "10:6": "lava[level=6]", + "10:7": "lava[level=7]", + "10:8": "lava[level=8]", + "10:9": "lava[level=9]", + "10:10": "lava[level=10]", + "10:11": "lava[level=11]", + "10:12": "lava[level=12]", + "10:13": "lava[level=13]", + "10:14": "lava[level=14]", + "10:15": "lava[level=15]", + "11:0": "lava[level=0]", + "11:1": "lava[level=1]", + "11:2": "lava[level=2]", + "11:3": "lava[level=3]", + "11:4": "lava[level=4]", + "11:5": "lava[level=5]", + "11:6": "lava[level=6]", + "11:7": "lava[level=7]", + "11:8": "lava[level=8]", + "11:9": "lava[level=9]", + "11:10": "lava[level=10]", + "11:11": "lava[level=11]", + "11:12": "lava[level=12]", + "11:13": "lava[level=13]", + "11:14": "lava[level=14]", + "11:15": "lava[level=15]", + "12:0": "sand", + "12:1": "red_sand", + "13:0": "gravel", + "14:0": "gold_ore", + "15:0": "iron_ore", + "16:0": "coal_ore", + "17:0": "oak_log[axis=y]", + "17:1": "spruce_log[axis=y]", + "17:2": "birch_log[axis=y]", + "17:3": "jungle_log[axis=y]", + "17:4": "oak_log[axis=x]", + "17:5": "spruce_log[axis=x]", + "17:6": "birch_log[axis=x]", + "17:7": "jungle_log[axis=x]", + "17:8": "oak_log[axis=z]", + "17:9": "spruce_log[axis=z]", + "17:10": "birch_log[axis=z]", + "17:11": "jungle_log[axis=z]", + "17:12": "oak_bark", + "17:13": "spruce_bark", + "17:14": "birch_bark", + "17:15": "jungle_bark", + "18:0": "oak_leaves[check_decay=false,decayable=true]", + "18:1": "spruce_leaves[check_decay=false,decayable=true]", + "18:2": "birch_leaves[check_decay=false,decayable=true]", + "18:3": "jungle_leaves[check_decay=false,decayable=true]", + "18:4": "oak_leaves[check_decay=false,decayable=false]", + "18:5": "spruce_leaves[check_decay=false,decayable=false]", + "18:6": "birch_leaves[check_decay=false,decayable=false]", + "18:7": "jungle_leaves[check_decay=false,decayable=false]", + "18:8": "oak_leaves[check_decay=true,decayable=true]", + "18:9": "spruce_leaves[check_decay=true,decayable=true]", + "18:10": "birch_leaves[check_decay=true,decayable=true]", + "18:11": "jungle_leaves[check_decay=true,decayable=true]", + "18:12": "oak_leaves[check_decay=true,decayable=false]", + "18:13": "spruce_leaves[check_decay=true,decayable=false]", + "18:14": "birch_leaves[check_decay=true,decayable=false]", + "18:15": "jungle_leaves[check_decay=true,decayable=false]", + "19:0": "sponge", + "19:1": "wet_sponge", + "20:0": "glass", + "21:0": "lapis_ore", + "22:0": "lapis_block", + "23:0": "dispenser[facing=down,triggered=false]", + "23:1": "dispenser[facing=up,triggered=false]", + "23:2": "dispenser[facing=north,triggered=false]", + "23:3": "dispenser[facing=south,triggered=false]", + "23:4": "dispenser[facing=west,triggered=false]", + "23:5": "dispenser[facing=east,triggered=false]", + "23:8": "dispenser[facing=down,triggered=true]", + "23:9": "dispenser[facing=up,triggered=true]", + "23:10": "dispenser[facing=north,triggered=true]", + "23:11": "dispenser[facing=south,triggered=true]", + "23:12": "dispenser[facing=west,triggered=true]", + "23:13": "dispenser[facing=east,triggered=true]", + "24:0": "sandstone", + "24:1": "chiseled_sandstone", + "24:2": "cut_sandstone", + "25:0": "note_block", + "26:0": "red_bed[facing=south,occupied=false,part=foot]", + "26:1": "red_bed[facing=west,occupied=false,part=foot]", + "26:2": "red_bed[facing=north,occupied=false,part=foot]", + "26:3": "red_bed[facing=east,occupied=false,part=foot]", + "26:8": "red_bed[facing=south,occupied=false,part=head]", + "26:9": "red_bed[facing=west,occupied=false,part=head]", + "26:10": "red_bed[facing=north,occupied=false,part=head]", + "26:11": "red_bed[facing=east,occupied=false,part=head]", + "26:12": "red_bed[facing=south,occupied=true,part=head]", + "26:13": "red_bed[facing=west,occupied=true,part=head]", + "26:14": "red_bed[facing=north,occupied=true,part=head]", + "26:15": "red_bed[facing=east,occupied=true,part=head]", + "27:0": "powered_rail[powered=false,shape=north_south]", + "27:1": "powered_rail[powered=false,shape=east_west]", + "27:2": "powered_rail[powered=false,shape=ascending_east]", + "27:3": "powered_rail[powered=false,shape=ascending_west]", + "27:4": "powered_rail[powered=false,shape=ascending_north]", + "27:5": "powered_rail[powered=false,shape=ascending_south]", + "27:8": "powered_rail[powered=true,shape=north_south]", + "27:9": "powered_rail[powered=true,shape=east_west]", + "27:10": "powered_rail[powered=true,shape=ascending_east]", + "27:11": "powered_rail[powered=true,shape=ascending_west]", + "27:12": "powered_rail[powered=true,shape=ascending_north]", + "27:13": "powered_rail[powered=true,shape=ascending_south]", + "28:0": "detector_rail[powered=false,shape=north_south]", + "28:1": "detector_rail[powered=false,shape=east_west]", + "28:2": "detector_rail[powered=false,shape=ascending_east]", + "28:3": "detector_rail[powered=false,shape=ascending_west]", + "28:4": "detector_rail[powered=false,shape=ascending_north]", + "28:5": "detector_rail[powered=false,shape=ascending_south]", + "28:8": "detector_rail[powered=true,shape=north_south]", + "28:9": "detector_rail[powered=true,shape=east_west]", + "28:10": "detector_rail[powered=true,shape=ascending_east]", + "28:11": "detector_rail[powered=true,shape=ascending_west]", + "28:12": "detector_rail[powered=true,shape=ascending_north]", + "28:13": "detector_rail[powered=true,shape=ascending_south]", + "29:0": "sticky_piston[extended=false,facing=down]", + "29:1": "sticky_piston[extended=false,facing=up]", + "29:2": "sticky_piston[extended=false,facing=north]", + "29:3": "sticky_piston[extended=false,facing=south]", + "29:4": "sticky_piston[extended=false,facing=west]", + "29:5": "sticky_piston[extended=false,facing=east]", + "29:8": "sticky_piston[extended=true,facing=down]", + "29:9": "sticky_piston[extended=true,facing=up]", + "29:10": "sticky_piston[extended=true,facing=north]", + "29:11": "sticky_piston[extended=true,facing=south]", + "29:12": "sticky_piston[extended=true,facing=west]", + "29:13": "sticky_piston[extended=true,facing=east]", + "30:0": "cobweb", + "31:0": "dead_bush", + "31:1": "grass", + "31:2": "fern", + "32:0": "dead_bush", + "33:0": "piston[extended=false,facing=down]", + "33:1": "piston[extended=false,facing=up]", + "33:2": "piston[extended=false,facing=north]", + "33:3": "piston[extended=false,facing=south]", + "33:4": "piston[extended=false,facing=west]", + "33:5": "piston[extended=false,facing=east]", + "33:8": "piston[extended=true,facing=down]", + "33:9": "piston[extended=true,facing=up]", + "33:10": "piston[extended=true,facing=north]", + "33:11": "piston[extended=true,facing=south]", + "33:12": "piston[extended=true,facing=west]", + "33:13": "piston[extended=true,facing=east]", + "34:0": "piston_head[facing=down,short=false,type=normal]", + "34:1": "piston_head[facing=up,short=false,type=normal]", + "34:2": "piston_head[facing=north,short=false,type=normal]", + "34:3": "piston_head[facing=south,short=false,type=normal]", + "34:4": "piston_head[facing=west,short=false,type=normal]", + "34:5": "piston_head[facing=east,short=false,type=normal]", + "34:8": "piston_head[facing=down,short=false,type=sticky]", + "34:9": "piston_head[facing=up,short=false,type=sticky]", + "34:10": "piston_head[facing=north,short=false,type=sticky]", + "34:11": "piston_head[facing=south,short=false,type=sticky]", + "34:12": "piston_head[facing=west,short=false,type=sticky]", + "34:13": "piston_head[facing=east,short=false,type=sticky]", + "35:0": "white_wool", + "35:1": "orange_wool", + "35:2": "magenta_wool", + "35:3": "light_blue_wool", + "35:4": "yellow_wool", + "35:5": "lime_wool", + "35:6": "pink_wool", + "35:7": "gray_wool", + "35:8": "light_gray_wool", + "35:9": "cyan_wool", + "35:10": "purple_wool", + "35:11": "blue_wool", + "35:12": "brown_wool", + "35:13": "green_wool", + "35:14": "red_wool", + "35:15": "black_wool", + "36:0": "moving_piston[facing=down,type=normal]", + "36:1": "moving_piston[facing=up,type=normal]", + "36:2": "moving_piston[facing=north,type=normal]", + "36:3": "moving_piston[facing=south,type=normal]", + "36:4": "moving_piston[facing=west,type=normal]", + "36:5": "moving_piston[facing=east,type=normal]", + "36:8": "moving_piston[facing=down,type=sticky]", + "36:9": "moving_piston[facing=up,type=sticky]", + "36:10": "moving_piston[facing=north,type=sticky]", + "36:11": "moving_piston[facing=south,type=sticky]", + "36:12": "moving_piston[facing=west,type=sticky]", + "36:13": "moving_piston[facing=east,type=sticky]", + "37:0": "dandelion", + "38:0": "poppy", + "38:1": "blue_orchid", + "38:2": "allium", + "38:3": "azure_bluet", + "38:4": "red_tulip", + "38:5": "orange_tulip", + "38:6": "white_tulip", + "38:7": "pink_tulip", + "38:8": "oxeye_daisy", + "39:0": "brown_mushroom", + "40:0": "red_mushroom", + "41:0": "gold_block", + "42:0": "iron_block", + "43:0": "stone_slab[type=double]", + "43:1": "sandstone_slab[type=double]", + "43:2": "petrified_oak_slab[type=double]", + "43:3": "cobblestone_slab[type=double]", + "43:4": "brick_slab[type=double]", + "43:5": "stone_brick_slab[type=double]", + "43:6": "nether_brick_slab[type=double]", + "43:7": "quartz_slab[type=double]", + "43:8": "smooth_stone", + "43:9": "smooth_sandstone", + "43:10": "petrified_oak_slab[type=double]", + "43:11": "cobblestone_slab[type=double]", + "43:12": "brick_slab[type=double]", + "43:13": "stone_brick_slab[type=double]", + "43:14": "nether_brick_slab[type=double]", + "43:15": "smooth_quartz", + "44:0": "stone_slab[type=bottom]", + "44:1": "sandstone_slab[type=bottom]", + "44:2": "petrified_oak_slab[type=bottom]", + "44:3": "cobblestone_slab[type=bottom]", + "44:4": "brick_slab[type=bottom]", + "44:5": "stone_brick_slab[type=bottom]", + "44:6": "nether_brick_slab[type=bottom]", + "44:7": "quartz_slab[type=bottom]", + "44:8": "stone_slab[type=top]", + "44:9": "sandstone_slab[type=top]", + "44:10": "petrified_oak_slab[type=top]", + "44:11": "cobblestone_slab[type=top]", + "44:12": "brick_slab[type=top]", + "44:13": "stone_brick_slab[type=top]", + "44:14": "nether_brick_slab[type=top]", + "44:15": "quartz_slab[type=top]", + "45:0": "bricks", + "46:0": "tnt[unstable=false]", + "46:1": "tnt[unstable=true]", + "47:0": "bookshelf", + "48:0": "mossy_cobblestone", + "49:0": "obsidian", + "50:1": "wall_torch[facing=east]", + "50:2": "wall_torch[facing=west]", + "50:3": "wall_torch[facing=south]", + "50:4": "wall_torch[facing=north]", + "50:5": "torch", + "51:0": "fire[age=0,east=false,north=false,south=false,up=false,west=false]", + "51:1": "fire[age=1,east=false,north=false,south=false,up=false,west=false]", + "51:2": "fire[age=2,east=false,north=false,south=false,up=false,west=false]", + "51:3": "fire[age=3,east=false,north=false,south=false,up=false,west=false]", + "51:4": "fire[age=4,east=false,north=false,south=false,up=false,west=false]", + "51:5": "fire[age=5,east=false,north=false,south=false,up=false,west=false]", + "51:6": "fire[age=6,east=false,north=false,south=false,up=false,west=false]", + "51:7": "fire[age=7,east=false,north=false,south=false,up=false,west=false]", + "51:8": "fire[age=8,east=false,north=false,south=false,up=false,west=false]", + "51:9": "fire[age=9,east=false,north=false,south=false,up=false,west=false]", + "51:10": "fire[age=10,east=false,north=false,south=false,up=false,west=false]", + "51:11": "fire[age=11,east=false,north=false,south=false,up=false,west=false]", + "51:12": "fire[age=12,east=false,north=false,south=false,up=false,west=false]", + "51:13": "fire[age=13,east=false,north=false,south=false,up=false,west=false]", + "51:14": "fire[age=14,east=false,north=false,south=false,up=false,west=false]", + "51:15": "fire[age=15,east=false,north=false,south=false,up=false,west=false]", + "52:0": "mob_spawner", + "53:0": "oak_stairs[facing=east,half=bottom,shape=straight]", + "53:1": "oak_stairs[facing=west,half=bottom,shape=straight]", + "53:2": "oak_stairs[facing=south,half=bottom,shape=straight]", + "53:3": "oak_stairs[facing=north,half=bottom,shape=straight]", + "53:4": "oak_stairs[facing=east,half=top,shape=straight]", + "53:5": "oak_stairs[facing=west,half=top,shape=straight]", + "53:6": "oak_stairs[facing=south,half=top,shape=straight]", + "53:7": "oak_stairs[facing=north,half=top,shape=straight]", + "54:2": "chest[facing=north,type=single]", + "54:3": "chest[facing=south,type=single]", + "54:4": "chest[facing=west,type=single]", + "54:5": "chest[facing=east,type=single]", + "55:0": "redstone_wire[east=none,north=none,power=0,south=none,west=none]", + "55:1": "redstone_wire[east=none,north=none,power=1,south=none,west=none]", + "55:2": "redstone_wire[east=none,north=none,power=2,south=none,west=none]", + "55:3": "redstone_wire[east=none,north=none,power=3,south=none,west=none]", + "55:4": "redstone_wire[east=none,north=none,power=4,south=none,west=none]", + "55:5": "redstone_wire[east=none,north=none,power=5,south=none,west=none]", + "55:6": "redstone_wire[east=none,north=none,power=6,south=none,west=none]", + "55:7": "redstone_wire[east=none,north=none,power=7,south=none,west=none]", + "55:8": "redstone_wire[east=none,north=none,power=8,south=none,west=none]", + "55:9": "redstone_wire[east=none,north=none,power=9,south=none,west=none]", + "55:10": "redstone_wire[east=none,north=none,power=10,south=none,west=none]", + "55:11": "redstone_wire[east=none,north=none,power=11,south=none,west=none]", + "55:12": "redstone_wire[east=none,north=none,power=12,south=none,west=none]", + "55:13": "redstone_wire[east=none,north=none,power=13,south=none,west=none]", + "55:14": "redstone_wire[east=none,north=none,power=14,south=none,west=none]", + "55:15": "redstone_wire[east=none,north=none,power=15,south=none,west=none]", + "56:0": "diamond_ore", + "57:0": "diamond_block", + "58:0": "crafting_table", + "59:0": "wheat[age=0]", + "59:1": "wheat[age=1]", + "59:2": "wheat[age=2]", + "59:3": "wheat[age=3]", + "59:4": "wheat[age=4]", + "59:5": "wheat[age=5]", + "59:6": "wheat[age=6]", + "59:7": "wheat[age=7]", + "60:0": "farmland[moisture=0]", + "60:1": "farmland[moisture=1]", + "60:2": "farmland[moisture=2]", + "60:3": "farmland[moisture=3]", + "60:4": "farmland[moisture=4]", + "60:5": "farmland[moisture=5]", + "60:6": "farmland[moisture=6]", + "60:7": "farmland[moisture=7]", + "61:2": "furnace[facing=north,lit=false]", + "61:3": "furnace[facing=south,lit=false]", + "61:4": "furnace[facing=west,lit=false]", + "61:5": "furnace[facing=east,lit=false]", + "62:2": "furnace[facing=north,lit=true]", + "62:3": "furnace[facing=south,lit=true]", + "62:4": "furnace[facing=west,lit=true]", + "62:5": "furnace[facing=east,lit=true]", + "63:0": "sign[rotation=0]", + "63:1": "sign[rotation=1]", + "63:2": "sign[rotation=2]", + "63:3": "sign[rotation=3]", + "63:4": "sign[rotation=4]", + "63:5": "sign[rotation=5]", + "63:6": "sign[rotation=6]", + "63:7": "sign[rotation=7]", + "63:8": "sign[rotation=8]", + "63:9": "sign[rotation=9]", + "63:10": "sign[rotation=10]", + "63:11": "sign[rotation=11]", + "63:12": "sign[rotation=12]", + "63:13": "sign[rotation=13]", + "63:14": "sign[rotation=14]", + "63:15": "sign[rotation=15]", + "64:0": "oak_door[facing=east,half=lower,hinge=right,open=false,powered=false]", + "64:1": "oak_door[facing=south,half=lower,hinge=right,open=false,powered=false]", + "64:2": "oak_door[facing=west,half=lower,hinge=right,open=false,powered=false]", + "64:3": "oak_door[facing=north,half=lower,hinge=right,open=false,powered=false]", + "64:4": "oak_door[facing=east,half=lower,hinge=right,open=true,powered=false]", + "64:5": "oak_door[facing=south,half=lower,hinge=right,open=true,powered=false]", + "64:6": "oak_door[facing=west,half=lower,hinge=right,open=true,powered=false]", + "64:7": "oak_door[facing=north,half=lower,hinge=right,open=true,powered=false]", + "64:8": "oak_door[facing=east,half=upper,hinge=left,open=false,powered=false]", + "64:9": "oak_door[facing=east,half=upper,hinge=right,open=false,powered=false]", + "64:10": "oak_door[facing=east,half=upper,hinge=left,open=false,powered=true]", + "64:11": "oak_door[facing=east,half=upper,hinge=right,open=false,powered=true]", + "65:2": "ladder[facing=north]", + "65:3": "ladder[facing=south]", + "65:4": "ladder[facing=west]", + "65:5": "ladder[facing=east]", + "66:0": "rail[shape=north_south]", + "66:1": "rail[shape=east_west]", + "66:2": "rail[shape=ascending_east]", + "66:3": "rail[shape=ascending_west]", + "66:4": "rail[shape=ascending_north]", + "66:5": "rail[shape=ascending_south]", + "66:6": "rail[shape=south_east]", + "66:7": "rail[shape=south_west]", + "66:8": "rail[shape=north_west]", + "66:9": "rail[shape=north_east]", + "67:0": "cobblestone_stairs[facing=east,half=bottom,shape=straight]", + "67:1": "cobblestone_stairs[facing=west,half=bottom,shape=straight]", + "67:2": "cobblestone_stairs[facing=south,half=bottom,shape=straight]", + "67:3": "cobblestone_stairs[facing=north,half=bottom,shape=straight]", + "67:4": "cobblestone_stairs[facing=east,half=top,shape=straight]", + "67:5": "cobblestone_stairs[facing=west,half=top,shape=straight]", + "67:6": "cobblestone_stairs[facing=south,half=top,shape=straight]", + "67:7": "cobblestone_stairs[facing=north,half=top,shape=straight]", + "68:2": "wall_sign[facing=north]", + "68:3": "wall_sign[facing=south]", + "68:4": "wall_sign[facing=west]", + "68:5": "wall_sign[facing=east]", + "69:0": "lever[face=ceiling,facing=west,powered=false]", + "69:1": "lever[face=wall,facing=east,powered=false]", + "69:2": "lever[face=wall,facing=west,powered=false]", + "69:3": "lever[face=wall,facing=south,powered=false]", + "69:4": "lever[face=wall,facing=north,powered=false]", + "69:5": "lever[face=floor,facing=north,powered=false]", + "69:6": "lever[face=floor,facing=west,powered=false]", + "69:7": "lever[face=ceiling,facing=north,powered=false]", + "69:8": "lever[face=ceiling,facing=west,powered=true]", + "69:9": "lever[face=wall,facing=east,powered=true]", + "69:10": "lever[face=wall,facing=west,powered=true]", + "69:11": "lever[face=wall,facing=south,powered=true]", + "69:12": "lever[face=wall,facing=north,powered=true]", + "69:13": "lever[face=floor,facing=north,powered=true]", + "69:14": "lever[face=floor,facing=west,powered=true]", + "69:15": "lever[face=ceiling,facing=north,powered=true]", + "70:0": "stone_pressure_plate[powered=false]", + "70:1": "stone_pressure_plate[powered=true]", + "71:0": "iron_door[facing=east,half=lower,hinge=right,open=false,powered=false]", + "71:1": "iron_door[facing=south,half=lower,hinge=right,open=false,powered=false]", + "71:2": "iron_door[facing=west,half=lower,hinge=right,open=false,powered=false]", + "71:3": "iron_door[facing=north,half=lower,hinge=right,open=false,powered=false]", + "71:4": "iron_door[facing=east,half=lower,hinge=right,open=true,powered=false]", + "71:5": "iron_door[facing=south,half=lower,hinge=right,open=true,powered=false]", + "71:6": "iron_door[facing=west,half=lower,hinge=right,open=true,powered=false]", + "71:7": "iron_door[facing=north,half=lower,hinge=right,open=true,powered=false]", + "71:8": "iron_door[facing=east,half=upper,hinge=left,open=false,powered=false]", + "71:9": "iron_door[facing=east,half=upper,hinge=right,open=false,powered=false]", + "71:10": "iron_door[facing=east,half=upper,hinge=left,open=false,powered=true]", + "71:11": "iron_door[facing=east,half=upper,hinge=right,open=false,powered=true]", + "72:0": "oak_pressure_plate[powered=false]", + "72:1": "oak_pressure_plate[powered=true]", + "73:0": "redstone_ore[lit=false]", + "74:0": "redstone_ore[lit=true]", + "75:1": "redstone_wall_torch[facing=east,lit=false]", + "75:2": "redstone_wall_torch[facing=west,lit=false]", + "75:3": "redstone_wall_torch[facing=south,lit=false]", + "75:4": "redstone_wall_torch[facing=north,lit=false]", + "75:5": "redstone_torch[lit=false]", + "76:1": "redstone_wall_torch[facing=east,lit=true]", + "76:2": "redstone_wall_torch[facing=west,lit=true]", + "76:3": "redstone_wall_torch[facing=south,lit=true]", + "76:4": "redstone_wall_torch[facing=north,lit=true]", + "76:5": "redstone_torch[lit=true]", + "77:0": "stone_button[face=ceiling,facing=north,powered=false]", + "77:1": "stone_button[face=wall,facing=east,powered=false]", + "77:2": "stone_button[face=wall,facing=west,powered=false]", + "77:3": "stone_button[face=wall,facing=south,powered=false]", + "77:4": "stone_button[face=wall,facing=north,powered=false]", + "77:5": "stone_button[face=floor,facing=north,powered=false]", + "77:8": "stone_button[face=ceiling,facing=north,powered=true]", + "77:9": "stone_button[face=wall,facing=east,powered=true]", + "77:10": "stone_button[face=wall,facing=west,powered=true]", + "77:11": "stone_button[face=wall,facing=south,powered=true]", + "77:12": "stone_button[face=wall,facing=north,powered=true]", + "77:13": "stone_button[face=floor,facing=north,powered=true]", + "78:0": "snow[layers=1]", + "78:1": "snow[layers=2]", + "78:2": "snow[layers=3]", + "78:3": "snow[layers=4]", + "78:4": "snow[layers=5]", + "78:5": "snow[layers=6]", + "78:6": "snow[layers=7]", + "78:7": "snow[layers=8]", + "79:0": "ice", + "80:0": "snow_block", + "81:0": "cactus[age=0]", + "81:1": "cactus[age=1]", + "81:2": "cactus[age=2]", + "81:3": "cactus[age=3]", + "81:4": "cactus[age=4]", + "81:5": "cactus[age=5]", + "81:6": "cactus[age=6]", + "81:7": "cactus[age=7]", + "81:8": "cactus[age=8]", + "81:9": "cactus[age=9]", + "81:10": "cactus[age=10]", + "81:11": "cactus[age=11]", + "81:12": "cactus[age=12]", + "81:13": "cactus[age=13]", + "81:14": "cactus[age=14]", + "81:15": "cactus[age=15]", + "82:0": "clay", + "83:0": "sugar_cane[age=0]", + "83:1": "sugar_cane[age=1]", + "83:2": "sugar_cane[age=2]", + "83:3": "sugar_cane[age=3]", + "83:4": "sugar_cane[age=4]", + "83:5": "sugar_cane[age=5]", + "83:6": "sugar_cane[age=6]", + "83:7": "sugar_cane[age=7]", + "83:8": "sugar_cane[age=8]", + "83:9": "sugar_cane[age=9]", + "83:10": "sugar_cane[age=10]", + "83:11": "sugar_cane[age=11]", + "83:12": "sugar_cane[age=12]", + "83:13": "sugar_cane[age=13]", + "83:14": "sugar_cane[age=14]", + "83:15": "sugar_cane[age=15]", + "84:0": "jukebox[has_record=false]", + "84:1": "jukebox[has_record=true]", + "85:0": "oak_fence[east=false,north=false,south=false,west=false]", + "86:0": "carved_pumpkin[facing=south]", + "86:1": "carved_pumpkin[facing=west]", + "86:2": "carved_pumpkin[facing=north]", + "86:3": "carved_pumpkin[facing=east]", + "87:0": "netherrack", + "88:0": "soul_sand", + "89:0": "glowstone", + "90:1": "portal[axis=x]", + "90:2": "portal[axis=z]", + "91:0": "jack_o_lantern[facing=south]", + "91:1": "jack_o_lantern[facing=west]", + "91:2": "jack_o_lantern[facing=north]", + "91:3": "jack_o_lantern[facing=east]", + "92:0": "cake[bites=0]", + "92:1": "cake[bites=1]", + "92:2": "cake[bites=2]", + "92:3": "cake[bites=3]", + "92:4": "cake[bites=4]", + "92:5": "cake[bites=5]", + "92:6": "cake[bites=6]", + "93:0": "repeater[delay=1,facing=south,locked=false,powered=false]", + "93:1": "repeater[delay=1,facing=west,locked=false,powered=false]", + "93:2": "repeater[delay=1,facing=north,locked=false,powered=false]", + "93:3": "repeater[delay=1,facing=east,locked=false,powered=false]", + "93:4": "repeater[delay=2,facing=south,locked=false,powered=false]", + "93:5": "repeater[delay=2,facing=west,locked=false,powered=false]", + "93:6": "repeater[delay=2,facing=north,locked=false,powered=false]", + "93:7": "repeater[delay=2,facing=east,locked=false,powered=false]", + "93:8": "repeater[delay=3,facing=south,locked=false,powered=false]", + "93:9": "repeater[delay=3,facing=west,locked=false,powered=false]", + "93:10": "repeater[delay=3,facing=north,locked=false,powered=false]", + "93:11": "repeater[delay=3,facing=east,locked=false,powered=false]", + "93:12": "repeater[delay=4,facing=south,locked=false,powered=false]", + "93:13": "repeater[delay=4,facing=west,locked=false,powered=false]", + "93:14": "repeater[delay=4,facing=north,locked=false,powered=false]", + "93:15": "repeater[delay=4,facing=east,locked=false,powered=false]", + "94:0": "repeater[delay=1,facing=south,locked=false,powered=true]", + "94:1": "repeater[delay=1,facing=west,locked=false,powered=true]", + "94:2": "repeater[delay=1,facing=north,locked=false,powered=true]", + "94:3": "repeater[delay=1,facing=east,locked=false,powered=true]", + "94:4": "repeater[delay=2,facing=south,locked=false,powered=true]", + "94:5": "repeater[delay=2,facing=west,locked=false,powered=true]", + "94:6": "repeater[delay=2,facing=north,locked=false,powered=true]", + "94:7": "repeater[delay=2,facing=east,locked=false,powered=true]", + "94:8": "repeater[delay=3,facing=south,locked=false,powered=true]", + "94:9": "repeater[delay=3,facing=west,locked=false,powered=true]", + "94:10": "repeater[delay=3,facing=north,locked=false,powered=true]", + "94:11": "repeater[delay=3,facing=east,locked=false,powered=true]", + "94:12": "repeater[delay=4,facing=south,locked=false,powered=true]", + "94:13": "repeater[delay=4,facing=west,locked=false,powered=true]", + "94:14": "repeater[delay=4,facing=north,locked=false,powered=true]", + "94:15": "repeater[delay=4,facing=east,locked=false,powered=true]", + "95:0": "white_stained_glass", + "95:1": "orange_stained_glass", + "95:2": "magenta_stained_glass", + "95:3": "light_blue_stained_glass", + "95:4": "yellow_stained_glass", + "95:5": "lime_stained_glass", + "95:6": "pink_stained_glass", + "95:7": "gray_stained_glass", + "95:8": "light_gray_stained_glass", + "95:9": "cyan_stained_glass", + "95:10": "purple_stained_glass", + "95:11": "blue_stained_glass", + "95:12": "brown_stained_glass", + "95:13": "green_stained_glass", + "95:14": "red_stained_glass", + "95:15": "black_stained_glass", + "96:0": "oak_trapdoor[facing=north,half=bottom,open=false]", + "96:1": "oak_trapdoor[facing=south,half=bottom,open=false]", + "96:2": "oak_trapdoor[facing=west,half=bottom,open=false]", + "96:3": "oak_trapdoor[facing=east,half=bottom,open=false]", + "96:4": "oak_trapdoor[facing=north,half=bottom,open=true]", + "96:5": "oak_trapdoor[facing=south,half=bottom,open=true]", + "96:6": "oak_trapdoor[facing=west,half=bottom,open=true]", + "96:7": "oak_trapdoor[facing=east,half=bottom,open=true]", + "96:8": "oak_trapdoor[facing=north,half=top,open=false]", + "96:9": "oak_trapdoor[facing=south,half=top,open=false]", + "96:10": "oak_trapdoor[facing=west,half=top,open=false]", + "96:11": "oak_trapdoor[facing=east,half=top,open=false]", + "96:12": "oak_trapdoor[facing=north,half=top,open=true]", + "96:13": "oak_trapdoor[facing=south,half=top,open=true]", + "96:14": "oak_trapdoor[facing=west,half=top,open=true]", + "96:15": "oak_trapdoor[facing=east,half=top,open=true]", + "97:0": "infested_stone", + "97:1": "infested_cobblestone", + "97:2": "infested_stone_bricks", + "97:3": "infested_mossy_stone_bricks", + "97:4": "infested_cracked_stone_bricks", + "97:5": "infested_chiseled_stone_bricks", + "98:0": "stone_bricks", + "98:1": "mossy_stone_bricks", + "98:2": "cracked_stone_bricks", + "98:3": "chiseled_stone_bricks", + "99:0": "brown_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]", + "99:1": "brown_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]", + "99:2": "brown_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]", + "99:3": "brown_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]", + "99:4": "brown_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]", + "99:5": "brown_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]", + "99:6": "brown_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]", + "99:7": "brown_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]", + "99:8": "brown_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]", + "99:9": "brown_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]", + "99:10": "mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]", + "99:14": "brown_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]", + "99:15": "mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]", + "100:0": "red_mushroom_block[north=false,east=false,south=false,west=false,up=false,down=false]", + "100:1": "red_mushroom_block[north=true,east=false,south=false,west=true,up=true,down=false]", + "100:2": "red_mushroom_block[north=true,east=false,south=false,west=false,up=true,down=false]", + "100:3": "red_mushroom_block[north=true,east=true,south=false,west=false,up=true,down=false]", + "100:4": "red_mushroom_block[north=false,east=false,south=false,west=true,up=true,down=false]", + "100:5": "red_mushroom_block[north=false,east=false,south=false,west=false,up=true,down=false]", + "100:6": "red_mushroom_block[north=false,east=true,south=false,west=false,up=true,down=false]", + "100:7": "red_mushroom_block[north=false,east=false,south=true,west=true,up=true,down=false]", + "100:8": "red_mushroom_block[north=false,east=false,south=true,west=false,up=true,down=false]", + "100:9": "red_mushroom_block[north=false,east=true,south=true,west=false,up=true,down=false]", + "100:10": "mushroom_stem[north=true,east=true,south=true,west=true,up=false,down=false]", + "100:14": "red_mushroom_block[north=true,east=true,south=true,west=true,up=true,down=true]", + "100:15": "mushroom_stem[north=true,east=true,south=true,west=true,up=true,down=true]", + "101:0": "iron_bars[east=false,north=false,south=false,west=false]", + "102:0": "glass_pane[east=false,north=false,south=false,west=false]", + "103:0": "melon_block", + "104:0": "pumpkin_stem[age=0]", + "104:1": "pumpkin_stem[age=1]", + "104:2": "pumpkin_stem[age=2]", + "104:3": "pumpkin_stem[age=3]", + "104:4": "pumpkin_stem[age=4]", + "104:5": "pumpkin_stem[age=5]", + "104:6": "pumpkin_stem[age=6]", + "104:7": "pumpkin_stem[age=7]", + "105:0": "melon_stem[age=0]", + "105:1": "melon_stem[age=1]", + "105:2": "melon_stem[age=2]", + "105:3": "melon_stem[age=3]", + "105:4": "melon_stem[age=4]", + "105:5": "melon_stem[age=5]", + "105:6": "melon_stem[age=6]", + "105:7": "melon_stem[age=7]", + "106:0": "vine[east=false,north=false,south=false,up=true,west=false]", + "106:1": "vine[east=false,north=false,south=true,up=true,west=false]", + "106:2": "vine[east=false,north=false,south=false,up=true,west=true]", + "106:3": "vine[east=false,north=false,south=true,up=true,west=true]", + "106:4": "vine[east=false,north=true,south=false,up=true,west=false]", + "106:5": "vine[east=false,north=true,south=true,up=true,west=false]", + "106:6": "vine[east=false,north=true,south=false,up=true,west=true]", + "106:7": "vine[east=false,north=true,south=true,up=true,west=true]", + "106:8": "vine[east=true,north=false,south=false,up=true,west=false]", + "106:9": "vine[east=true,north=false,south=true,up=true,west=false]", + "106:10": "vine[east=true,north=false,south=false,up=true,west=true]", + "106:11": "vine[east=true,north=false,south=true,up=true,west=true]", + "106:12": "vine[east=true,north=true,south=false,up=true,west=false]", + "106:13": "vine[east=true,north=true,south=true,up=true,west=false]", + "106:14": "vine[east=true,north=true,south=false,up=true,west=true]", + "106:15": "vine[east=true,north=true,south=true,up=true,west=true]", + "107:0": "oak_fence_gate[facing=south,in_wall=false,open=false,powered=false]", + "107:1": "oak_fence_gate[facing=west,in_wall=false,open=false,powered=false]", + "107:2": "oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "107:3": "oak_fence_gate[facing=east,in_wall=false,open=false,powered=false]", + "107:4": "oak_fence_gate[facing=south,in_wall=false,open=true,powered=false]", + "107:5": "oak_fence_gate[facing=west,in_wall=false,open=true,powered=false]", + "107:6": "oak_fence_gate[facing=north,in_wall=false,open=true,powered=false]", + "107:7": "oak_fence_gate[facing=east,in_wall=false,open=true,powered=false]", + "107:8": "oak_fence_gate[facing=south,in_wall=false,open=false,powered=true]", + "107:9": "oak_fence_gate[facing=west,in_wall=false,open=false,powered=true]", + "107:10": "oak_fence_gate[facing=north,in_wall=false,open=false,powered=true]", + "107:11": "oak_fence_gate[facing=east,in_wall=false,open=false,powered=true]", + "107:12": "oak_fence_gate[facing=south,in_wall=false,open=true,powered=true]", + "107:13": "oak_fence_gate[facing=west,in_wall=false,open=true,powered=true]", + "107:14": "oak_fence_gate[facing=north,in_wall=false,open=true,powered=true]", + "107:15": "oak_fence_gate[facing=east,in_wall=false,open=true,powered=true]", + "108:0": "brick_stairs[facing=east,half=bottom,shape=straight]", + "108:1": "brick_stairs[facing=west,half=bottom,shape=straight]", + "108:2": "brick_stairs[facing=south,half=bottom,shape=straight]", + "108:3": "brick_stairs[facing=north,half=bottom,shape=straight]", + "108:4": "brick_stairs[facing=east,half=top,shape=straight]", + "108:5": "brick_stairs[facing=west,half=top,shape=straight]", + "108:6": "brick_stairs[facing=south,half=top,shape=straight]", + "108:7": "brick_stairs[facing=north,half=top,shape=straight]", + "109:0": "stone_brick_stairs[facing=east,half=bottom,shape=straight]", + "109:1": "stone_brick_stairs[facing=west,half=bottom,shape=straight]", + "109:2": "stone_brick_stairs[facing=south,half=bottom,shape=straight]", + "109:3": "stone_brick_stairs[facing=north,half=bottom,shape=straight]", + "109:4": "stone_brick_stairs[facing=east,half=top,shape=straight]", + "109:5": "stone_brick_stairs[facing=west,half=top,shape=straight]", + "109:6": "stone_brick_stairs[facing=south,half=top,shape=straight]", + "109:7": "stone_brick_stairs[facing=north,half=top,shape=straight]", + "110:0": "mycelium[snowy=false]", + "111:0": "lily_pad", + "112:0": "nether_bricks", + "113:0": "nether_brick_fence[east=false,north=false,south=false,west=false]", + "114:0": "nether_brick_stairs[facing=east,half=bottom,shape=straight]", + "114:1": "nether_brick_stairs[facing=west,half=bottom,shape=straight]", + "114:2": "nether_brick_stairs[facing=south,half=bottom,shape=straight]", + "114:3": "nether_brick_stairs[facing=north,half=bottom,shape=straight]", + "114:4": "nether_brick_stairs[facing=east,half=top,shape=straight]", + "114:5": "nether_brick_stairs[facing=west,half=top,shape=straight]", + "114:6": "nether_brick_stairs[facing=south,half=top,shape=straight]", + "114:7": "nether_brick_stairs[facing=north,half=top,shape=straight]", + "115:0": "nether_wart[age=0]", + "115:1": "nether_wart[age=1]", + "115:2": "nether_wart[age=2]", + "115:3": "nether_wart[age=3]", + "116:0": "enchanting_table", + "117:0": "brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=false]", + "117:1": "brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=false]", + "117:2": "brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=false]", + "117:3": "brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=false]", + "117:4": "brewing_stand[has_bottle_0=false,has_bottle_1=false,has_bottle_2=true]", + "117:5": "brewing_stand[has_bottle_0=true,has_bottle_1=false,has_bottle_2=true]", + "117:6": "brewing_stand[has_bottle_0=false,has_bottle_1=true,has_bottle_2=true]", + "117:7": "brewing_stand[has_bottle_0=true,has_bottle_1=true,has_bottle_2=true]", + "118:0": "cauldron[level=0]", + "118:1": "cauldron[level=1]", + "118:2": "cauldron[level=2]", + "118:3": "cauldron[level=3]", + "119:0": "end_portal", + "120:0": "end_portal_frame[eye=false,facing=south]", + "120:1": "end_portal_frame[eye=false,facing=west]", + "120:2": "end_portal_frame[eye=false,facing=north]", + "120:3": "end_portal_frame[eye=false,facing=east]", + "120:4": "end_portal_frame[eye=true,facing=south]", + "120:5": "end_portal_frame[eye=true,facing=west]", + "120:6": "end_portal_frame[eye=true,facing=north]", + "120:7": "end_portal_frame[eye=true,facing=east]", + "121:0": "end_stone", + "122:0": "dragon_egg", + "123:0": "redstone_lamp[lit=false]", + "124:0": "redstone_lamp[lit=true]", + "125:0": "oak_slab[type=double]", + "125:1": "spruce_slab[type=double]", + "125:2": "birch_slab[type=double]", + "125:3": "jungle_slab[type=double]", + "125:4": "acacia_slab[type=double]", + "125:5": "dark_oak_slab[type=double]", + "126:0": "oak_slab[type=bottom]", + "126:1": "spruce_slab[type=bottom]", + "126:2": "birch_slab[type=bottom]", + "126:3": "jungle_slab[type=bottom]", + "126:4": "acacia_slab[type=bottom]", + "126:5": "dark_oak_slab[type=bottom]", + "126:8": "oak_slab[type=top]", + "126:9": "spruce_slab[type=top]", + "126:10": "birch_slab[type=top]", + "126:11": "jungle_slab[type=top]", + "126:12": "acacia_slab[type=top]", + "126:13": "dark_oak_slab[type=top]", + "127:0": "cocoa[age=0,facing=south]", + "127:1": "cocoa[age=0,facing=west]", + "127:2": "cocoa[age=0,facing=north]", + "127:3": "cocoa[age=0,facing=east]", + "127:4": "cocoa[age=1,facing=south]", + "127:5": "cocoa[age=1,facing=west]", + "127:6": "cocoa[age=1,facing=north]", + "127:7": "cocoa[age=1,facing=east]", + "127:8": "cocoa[age=2,facing=south]", + "127:9": "cocoa[age=2,facing=west]", + "127:10": "cocoa[age=2,facing=north]", + "127:11": "cocoa[age=2,facing=east]", + "128:0": "sandstone_stairs[facing=east,half=bottom,shape=straight]", + "128:1": "sandstone_stairs[facing=west,half=bottom,shape=straight]", + "128:2": "sandstone_stairs[facing=south,half=bottom,shape=straight]", + "128:3": "sandstone_stairs[facing=north,half=bottom,shape=straight]", + "128:4": "sandstone_stairs[facing=east,half=top,shape=straight]", + "128:5": "sandstone_stairs[facing=west,half=top,shape=straight]", + "128:6": "sandstone_stairs[facing=south,half=top,shape=straight]", + "128:7": "sandstone_stairs[facing=north,half=top,shape=straight]", + "129:0": "emerald_ore", + "130:2": "ender_chest[facing=north]", + "130:3": "ender_chest[facing=south]", + "130:4": "ender_chest[facing=west]", + "130:5": "ender_chest[facing=east]", + "131:0": "tripwire_hook[attached=false,facing=south,powered=false]", + "131:1": "tripwire_hook[attached=false,facing=west,powered=false]", + "131:2": "tripwire_hook[attached=false,facing=north,powered=false]", + "131:3": "tripwire_hook[attached=false,facing=east,powered=false]", + "131:4": "tripwire_hook[attached=true,facing=south,powered=false]", + "131:5": "tripwire_hook[attached=true,facing=west,powered=false]", + "131:6": "tripwire_hook[attached=true,facing=north,powered=false]", + "131:7": "tripwire_hook[attached=true,facing=east,powered=false]", + "131:8": "tripwire_hook[attached=false,facing=south,powered=true]", + "131:9": "tripwire_hook[attached=false,facing=west,powered=true]", + "131:10": "tripwire_hook[attached=false,facing=north,powered=true]", + "131:11": "tripwire_hook[attached=false,facing=east,powered=true]", + "131:12": "tripwire_hook[attached=true,facing=south,powered=true]", + "131:13": "tripwire_hook[attached=true,facing=west,powered=true]", + "131:14": "tripwire_hook[attached=true,facing=north,powered=true]", + "131:15": "tripwire_hook[attached=true,facing=east,powered=true]", + "132:0": "tripwire[attached=false,disarmed=false,east=false,north=false,powered=false,south=false,west=false]", + "132:1": "tripwire[attached=false,disarmed=false,east=false,north=false,powered=true,south=false,west=false]", + "132:4": "tripwire[attached=true,disarmed=false,east=false,north=false,powered=false,south=false,west=false]", + "132:5": "tripwire[attached=true,disarmed=false,east=false,north=false,powered=true,south=false,west=false]", + "132:8": "tripwire[attached=false,disarmed=true,east=false,north=false,powered=false,south=false,west=false]", + "132:9": "tripwire[attached=false,disarmed=true,east=false,north=false,powered=true,south=false,west=false]", + "132:12": "tripwire[attached=true,disarmed=true,east=false,north=false,powered=false,south=false,west=false]", + "132:13": "tripwire[attached=true,disarmed=true,east=false,north=false,powered=true,south=false,west=false]", + "133:0": "emerald_block", + "134:0": "spruce_stairs[facing=east,half=bottom,shape=straight]", + "134:1": "spruce_stairs[facing=west,half=bottom,shape=straight]", + "134:2": "spruce_stairs[facing=south,half=bottom,shape=straight]", + "134:3": "spruce_stairs[facing=north,half=bottom,shape=straight]", + "134:4": "spruce_stairs[facing=east,half=top,shape=straight]", + "134:5": "spruce_stairs[facing=west,half=top,shape=straight]", + "134:6": "spruce_stairs[facing=south,half=top,shape=straight]", + "134:7": "spruce_stairs[facing=north,half=top,shape=straight]", + "135:0": "birch_stairs[facing=east,half=bottom,shape=straight]", + "135:1": "birch_stairs[facing=west,half=bottom,shape=straight]", + "135:2": "birch_stairs[facing=south,half=bottom,shape=straight]", + "135:3": "birch_stairs[facing=north,half=bottom,shape=straight]", + "135:4": "birch_stairs[facing=east,half=top,shape=straight]", + "135:5": "birch_stairs[facing=west,half=top,shape=straight]", + "135:6": "birch_stairs[facing=south,half=top,shape=straight]", + "135:7": "birch_stairs[facing=north,half=top,shape=straight]", + "136:0": "jungle_stairs[facing=east,half=bottom,shape=straight]", + "136:1": "jungle_stairs[facing=west,half=bottom,shape=straight]", + "136:2": "jungle_stairs[facing=south,half=bottom,shape=straight]", + "136:3": "jungle_stairs[facing=north,half=bottom,shape=straight]", + "136:4": "jungle_stairs[facing=east,half=top,shape=straight]", + "136:5": "jungle_stairs[facing=west,half=top,shape=straight]", + "136:6": "jungle_stairs[facing=south,half=top,shape=straight]", + "136:7": "jungle_stairs[facing=north,half=top,shape=straight]", + "137:0": "command_block[conditional=false,facing=down]", + "137:1": "command_block[conditional=false,facing=up]", + "137:2": "command_block[conditional=false,facing=north]", + "137:3": "command_block[conditional=false,facing=south]", + "137:4": "command_block[conditional=false,facing=west]", + "137:5": "command_block[conditional=false,facing=east]", + "137:8": "command_block[conditional=true,facing=down]", + "137:9": "command_block[conditional=true,facing=up]", + "137:10": "command_block[conditional=true,facing=north]", + "137:11": "command_block[conditional=true,facing=south]", + "137:12": "command_block[conditional=true,facing=west]", + "137:13": "command_block[conditional=true,facing=east]", + "138:0": "beacon", + "139:0": "cobblestone_wall[east=false,north=false,south=false,up=false,west=false]", + "139:1": "mossy_cobblestone_wall[east=false,north=false,south=false,up=false,west=false]", + "140:0": "potted_cactus", + "140:1": "potted_cactus", + "140:2": "potted_cactus", + "140:3": "potted_cactus", + "140:4": "potted_cactus", + "140:5": "potted_cactus", + "140:6": "potted_cactus", + "140:7": "potted_cactus", + "140:8": "potted_cactus", + "140:9": "potted_cactus", + "140:10": "potted_cactus", + "140:11": "potted_cactus", + "140:12": "potted_cactus", + "140:13": "potted_cactus", + "140:14": "potted_cactus", + "140:15": "potted_cactus", + "141:0": "carrots[age=0]", + "141:1": "carrots[age=1]", + "141:2": "carrots[age=2]", + "141:3": "carrots[age=3]", + "141:4": "carrots[age=4]", + "141:5": "carrots[age=5]", + "141:6": "carrots[age=6]", + "141:7": "carrots[age=7]", + "142:0": "potatoes[age=0]", + "142:1": "potatoes[age=1]", + "142:2": "potatoes[age=2]", + "142:3": "potatoes[age=3]", + "142:4": "potatoes[age=4]", + "142:5": "potatoes[age=5]", + "142:6": "potatoes[age=6]", + "142:7": "potatoes[age=7]", + "143:0": "oak_button[face=ceiling,facing=north,powered=false]", + "143:1": "oak_button[face=wall,facing=east,powered=false]", + "143:2": "oak_button[face=wall,facing=west,powered=false]", + "143:3": "oak_button[face=wall,facing=south,powered=false]", + "143:4": "oak_button[face=wall,facing=north,powered=false]", + "143:5": "oak_button[face=floor,facing=north,powered=false]", + "143:8": "oak_button[face=ceiling,facing=north,powered=true]", + "143:9": "oak_button[face=wall,facing=east,powered=true]", + "143:10": "oak_button[face=wall,facing=west,powered=true]", + "143:11": "oak_button[face=wall,facing=south,powered=true]", + "143:12": "oak_button[face=wall,facing=north,powered=true]", + "143:13": "oak_button[face=floor,facing=north,powered=true]", + "144:0": "player_head[facing=down]", + "144:1": "player_head[facing=up]", + "144:2": "player_head[facing=north]", + "144:3": "player_head[facing=south]", + "144:4": "player_head[facing=west]", + "144:5": "player_head[facing=east]", + "144:8": "player_head[facing=down]", + "144:9": "player_head[facing=up]", + "144:10": "player_head[facing=north]", + "144:11": "player_head[facing=south]", + "144:12": "player_head[facing=west]", + "144:13": "player_head[facing=east]", + "145:0": "anvil[facing=south]", + "145:1": "anvil[facing=west]", + "145:2": "anvil[facing=north]", + "145:3": "anvil[facing=east]", + "145:4": "chipped_anvil[facing=south]", + "145:5": "chipped_anvil[facing=west]", + "145:6": "chipped_anvil[facing=north]", + "145:7": "chipped_anvil[facing=east]", + "145:8": "damaged_anvil[facing=south]", + "145:9": "damaged_anvil[facing=west]", + "145:10": "damaged_anvil[facing=north]", + "145:11": "damaged_anvil[facing=east]", + "146:2": "trapped_chest[facing=north,type=single]", + "146:3": "trapped_chest[facing=south,type=single]", + "146:4": "trapped_chest[facing=west,type=single]", + "146:5": "trapped_chest[facing=east,type=single]", + "147:0": "light_weighted_pressure_plate[power=0]", + "147:1": "light_weighted_pressure_plate[power=1]", + "147:2": "light_weighted_pressure_plate[power=2]", + "147:3": "light_weighted_pressure_plate[power=3]", + "147:4": "light_weighted_pressure_plate[power=4]", + "147:5": "light_weighted_pressure_plate[power=5]", + "147:6": "light_weighted_pressure_plate[power=6]", + "147:7": "light_weighted_pressure_plate[power=7]", + "147:8": "light_weighted_pressure_plate[power=8]", + "147:9": "light_weighted_pressure_plate[power=9]", + "147:10": "light_weighted_pressure_plate[power=10]", + "147:11": "light_weighted_pressure_plate[power=11]", + "147:12": "light_weighted_pressure_plate[power=12]", + "147:13": "light_weighted_pressure_plate[power=13]", + "147:14": "light_weighted_pressure_plate[power=14]", + "147:15": "light_weighted_pressure_plate[power=15]", + "148:0": "heavy_weighted_pressure_plate[power=0]", + "148:1": "heavy_weighted_pressure_plate[power=1]", + "148:2": "heavy_weighted_pressure_plate[power=2]", + "148:3": "heavy_weighted_pressure_plate[power=3]", + "148:4": "heavy_weighted_pressure_plate[power=4]", + "148:5": "heavy_weighted_pressure_plate[power=5]", + "148:6": "heavy_weighted_pressure_plate[power=6]", + "148:7": "heavy_weighted_pressure_plate[power=7]", + "148:8": "heavy_weighted_pressure_plate[power=8]", + "148:9": "heavy_weighted_pressure_plate[power=9]", + "148:10": "heavy_weighted_pressure_plate[power=10]", + "148:11": "heavy_weighted_pressure_plate[power=11]", + "148:12": "heavy_weighted_pressure_plate[power=12]", + "148:13": "heavy_weighted_pressure_plate[power=13]", + "148:14": "heavy_weighted_pressure_plate[power=14]", + "148:15": "heavy_weighted_pressure_plate[power=15]", + "149:0": "comparator[facing=south,mode=compare,powered=false]", + "149:1": "comparator[facing=west,mode=compare,powered=false]", + "149:2": "comparator[facing=north,mode=compare,powered=false]", + "149:3": "comparator[facing=east,mode=compare,powered=false]", + "149:4": "comparator[facing=south,mode=subtract,powered=false]", + "149:5": "comparator[facing=west,mode=subtract,powered=false]", + "149:6": "comparator[facing=north,mode=subtract,powered=false]", + "149:7": "comparator[facing=east,mode=subtract,powered=false]", + "149:8": "comparator[facing=south,mode=compare,powered=true]", + "149:9": "comparator[facing=west,mode=compare,powered=true]", + "149:10": "comparator[facing=north,mode=compare,powered=true]", + "149:11": "comparator[facing=east,mode=compare,powered=true]", + "149:12": "comparator[facing=south,mode=subtract,powered=true]", + "149:13": "comparator[facing=west,mode=subtract,powered=true]", + "149:14": "comparator[facing=north,mode=subtract,powered=true]", + "149:15": "comparator[facing=east,mode=subtract,powered=true]", + "150:0": "comparator[facing=south,mode=compare,powered=false]", + "150:1": "comparator[facing=west,mode=compare,powered=false]", + "150:2": "comparator[facing=north,mode=compare,powered=false]", + "150:3": "comparator[facing=east,mode=compare,powered=false]", + "150:4": "comparator[facing=south,mode=subtract,powered=false]", + "150:5": "comparator[facing=west,mode=subtract,powered=false]", + "150:6": "comparator[facing=north,mode=subtract,powered=false]", + "150:7": "comparator[facing=east,mode=subtract,powered=false]", + "150:8": "comparator[facing=south,mode=compare,powered=true]", + "150:9": "comparator[facing=west,mode=compare,powered=true]", + "150:10": "comparator[facing=north,mode=compare,powered=true]", + "150:11": "comparator[facing=east,mode=compare,powered=true]", + "150:12": "comparator[facing=south,mode=subtract,powered=true]", + "150:13": "comparator[facing=west,mode=subtract,powered=true]", + "150:14": "comparator[facing=north,mode=subtract,powered=true]", + "150:15": "comparator[facing=east,mode=subtract,powered=true]", + "151:0": "daylight_detector[inverted=false,power=0]", + "151:1": "daylight_detector[inverted=false,power=1]", + "151:2": "daylight_detector[inverted=false,power=2]", + "151:3": "daylight_detector[inverted=false,power=3]", + "151:4": "daylight_detector[inverted=false,power=4]", + "151:5": "daylight_detector[inverted=false,power=5]", + "151:6": "daylight_detector[inverted=false,power=6]", + "151:7": "daylight_detector[inverted=false,power=7]", + "151:8": "daylight_detector[inverted=false,power=8]", + "151:9": "daylight_detector[inverted=false,power=9]", + "151:10": "daylight_detector[inverted=false,power=10]", + "151:11": "daylight_detector[inverted=false,power=11]", + "151:12": "daylight_detector[inverted=false,power=12]", + "151:13": "daylight_detector[inverted=false,power=13]", + "151:14": "daylight_detector[inverted=false,power=14]", + "151:15": "daylight_detector[inverted=false,power=15]", + "152:0": "redstone_block", + "153:0": "nether_quartz_ore", + "154:0": "hopper[enabled=true,facing=down]", + "154:2": "hopper[enabled=true,facing=north]", + "154:3": "hopper[enabled=true,facing=south]", + "154:4": "hopper[enabled=true,facing=west]", + "154:5": "hopper[enabled=true,facing=east]", + "154:8": "hopper[enabled=false,facing=down]", + "154:10": "hopper[enabled=false,facing=north]", + "154:11": "hopper[enabled=false,facing=south]", + "154:12": "hopper[enabled=false,facing=west]", + "154:13": "hopper[enabled=false,facing=east]", + "155:0": "quartz_block", + "155:1": "chiseled_quartz_block", + "155:2": "quartz_pillar[axis=y]", + "155:3": "quartz_pillar[axis=x]", + "155:4": "quartz_pillar[axis=z]", + "156:0": "quartz_stairs[facing=east,half=bottom,shape=straight]", + "156:1": "quartz_stairs[facing=west,half=bottom,shape=straight]", + "156:2": "quartz_stairs[facing=south,half=bottom,shape=straight]", + "156:3": "quartz_stairs[facing=north,half=bottom,shape=straight]", + "156:4": "quartz_stairs[facing=east,half=top,shape=straight]", + "156:5": "quartz_stairs[facing=west,half=top,shape=straight]", + "156:6": "quartz_stairs[facing=south,half=top,shape=straight]", + "156:7": "quartz_stairs[facing=north,half=top,shape=straight]", + "157:0": "activator_rail[powered=false,shape=north_south]", + "157:1": "activator_rail[powered=false,shape=east_west]", + "157:2": "activator_rail[powered=false,shape=ascending_east]", + "157:3": "activator_rail[powered=false,shape=ascending_west]", + "157:4": "activator_rail[powered=false,shape=ascending_north]", + "157:5": "activator_rail[powered=false,shape=ascending_south]", + "157:8": "activator_rail[powered=true,shape=north_south]", + "157:9": "activator_rail[powered=true,shape=east_west]", + "157:10": "activator_rail[powered=true,shape=ascending_east]", + "157:11": "activator_rail[powered=true,shape=ascending_west]", + "157:12": "activator_rail[powered=true,shape=ascending_north]", + "157:13": "activator_rail[powered=true,shape=ascending_south]", + "158:0": "dropper[facing=down,triggered=false]", + "158:1": "dropper[facing=up,triggered=false]", + "158:2": "dropper[facing=north,triggered=false]", + "158:3": "dropper[facing=south,triggered=false]", + "158:4": "dropper[facing=west,triggered=false]", + "158:5": "dropper[facing=east,triggered=false]", + "158:8": "dropper[facing=down,triggered=true]", + "158:9": "dropper[facing=up,triggered=true]", + "158:10": "dropper[facing=north,triggered=true]", + "158:11": "dropper[facing=south,triggered=true]", + "158:12": "dropper[facing=west,triggered=true]", + "158:13": "dropper[facing=east,triggered=true]", + "159:0": "white_terracotta", + "159:1": "orange_terracotta", + "159:2": "magenta_terracotta", + "159:3": "light_blue_terracotta", + "159:4": "yellow_terracotta", + "159:5": "lime_terracotta", + "159:6": "pink_terracotta", + "159:7": "gray_terracotta", + "159:8": "light_gray_terracotta", + "159:9": "cyan_terracotta", + "159:10": "purple_terracotta", + "159:11": "blue_terracotta", + "159:12": "brown_terracotta", + "159:13": "green_terracotta", + "159:14": "red_terracotta", + "159:15": "black_terracotta", + "160:0": "white_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:1": "orange_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:2": "magenta_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:3": "light_blue_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:4": "yellow_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:5": "lime_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:6": "pink_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:7": "gray_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:8": "light_gray_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:9": "cyan_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:10": "purple_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:11": "blue_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:12": "brown_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:13": "green_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:14": "red_stained_glass_pane[east=false,north=false,south=false,west=false]", + "160:15": "black_stained_glass_pane[east=false,north=false,south=false,west=false]", + "161:0": "acacia_leaves[check_decay=false,decayable=true]", + "161:1": "dark_oak_leaves[check_decay=false,decayable=true]", + "161:4": "acacia_leaves[check_decay=false,decayable=false]", + "161:5": "dark_oak_leaves[check_decay=false,decayable=false]", + "161:8": "acacia_leaves[check_decay=true,decayable=true]", + "161:9": "dark_oak_leaves[check_decay=true,decayable=true]", + "161:12": "acacia_leaves[check_decay=true,decayable=false]", + "161:13": "dark_oak_leaves[check_decay=true,decayable=false]", + "162:0": "acacia_log[axis=y]", + "162:1": "dark_oak_log[axis=y]", + "162:4": "acacia_log[axis=x]", + "162:5": "dark_oak_log[axis=x]", + "162:8": "acacia_log[axis=z]", + "162:9": "dark_oak_log[axis=z]", + "162:12": "acacia_bark", + "162:13": "dark_oak_bark", + "163:0": "acacia_stairs[facing=east,half=bottom,shape=straight]", + "163:1": "acacia_stairs[facing=west,half=bottom,shape=straight]", + "163:2": "acacia_stairs[facing=south,half=bottom,shape=straight]", + "163:3": "acacia_stairs[facing=north,half=bottom,shape=straight]", + "163:4": "acacia_stairs[facing=east,half=top,shape=straight]", + "163:5": "acacia_stairs[facing=west,half=top,shape=straight]", + "163:6": "acacia_stairs[facing=south,half=top,shape=straight]", + "163:7": "acacia_stairs[facing=north,half=top,shape=straight]", + "164:0": "dark_oak_stairs[facing=east,half=bottom,shape=straight]", + "164:1": "dark_oak_stairs[facing=west,half=bottom,shape=straight]", + "164:2": "dark_oak_stairs[facing=south,half=bottom,shape=straight]", + "164:3": "dark_oak_stairs[facing=north,half=bottom,shape=straight]", + "164:4": "dark_oak_stairs[facing=east,half=top,shape=straight]", + "164:5": "dark_oak_stairs[facing=west,half=top,shape=straight]", + "164:6": "dark_oak_stairs[facing=south,half=top,shape=straight]", + "164:7": "dark_oak_stairs[facing=north,half=top,shape=straight]", + "165:0": "slime_block", + "166:0": "barrier", + "167:0": "iron_trapdoor[facing=north,half=bottom,open=false]", + "167:1": "iron_trapdoor[facing=south,half=bottom,open=false]", + "167:2": "iron_trapdoor[facing=west,half=bottom,open=false]", + "167:3": "iron_trapdoor[facing=east,half=bottom,open=false]", + "167:4": "iron_trapdoor[facing=north,half=bottom,open=true]", + "167:5": "iron_trapdoor[facing=south,half=bottom,open=true]", + "167:6": "iron_trapdoor[facing=west,half=bottom,open=true]", + "167:7": "iron_trapdoor[facing=east,half=bottom,open=true]", + "167:8": "iron_trapdoor[facing=north,half=top,open=false]", + "167:9": "iron_trapdoor[facing=south,half=top,open=false]", + "167:10": "iron_trapdoor[facing=west,half=top,open=false]", + "167:11": "iron_trapdoor[facing=east,half=top,open=false]", + "167:12": "iron_trapdoor[facing=north,half=top,open=true]", + "167:13": "iron_trapdoor[facing=south,half=top,open=true]", + "167:14": "iron_trapdoor[facing=west,half=top,open=true]", + "167:15": "iron_trapdoor[facing=east,half=top,open=true]", + "168:0": "prismarine", + "168:1": "prismarine_bricks", + "168:2": "dark_prismarine", + "169:0": "sea_lantern", + "170:0": "hay_block[axis=y]", + "170:4": "hay_block[axis=x]", + "170:8": "hay_block[axis=z]", + "171:0": "white_carpet", + "171:1": "orange_carpet", + "171:2": "magenta_carpet", + "171:3": "light_blue_carpet", + "171:4": "yellow_carpet", + "171:5": "lime_carpet", + "171:6": "pink_carpet", + "171:7": "gray_carpet", + "171:8": "light_gray_carpet", + "171:9": "cyan_carpet", + "171:10": "purple_carpet", + "171:11": "blue_carpet", + "171:12": "brown_carpet", + "171:13": "green_carpet", + "171:14": "red_carpet", + "171:15": "black_carpet", + "172:0": "terracotta", + "173:0": "coal_block", + "174:0": "packed_ice", + "175:0": "sunflower[half=lower]", + "175:1": "lilac[half=lower]", + "175:2": "tall_grass[half=lower]", + "175:3": "large_fern[half=lower]", + "175:4": "rose_bush[half=lower]", + "175:5": "peony[half=lower]", + "175:8": "peony[half=upper]", + "175:9": "peony[half=upper]", + "175:10": "peony[half=upper]", + "175:11": "peony[half=upper]", + "176:0": "white_banner[rotation=0]", + "176:1": "white_banner[rotation=1]", + "176:2": "white_banner[rotation=2]", + "176:3": "white_banner[rotation=3]", + "176:4": "white_banner[rotation=4]", + "176:5": "white_banner[rotation=5]", + "176:6": "white_banner[rotation=6]", + "176:7": "white_banner[rotation=7]", + "176:8": "white_banner[rotation=8]", + "176:9": "white_banner[rotation=9]", + "176:10": "white_banner[rotation=10]", + "176:11": "white_banner[rotation=11]", + "176:12": "white_banner[rotation=12]", + "176:13": "white_banner[rotation=13]", + "176:14": "white_banner[rotation=14]", + "176:15": "white_banner[rotation=15]", + "177:2": "white_wall_banner[facing=north]", + "177:3": "white_wall_banner[facing=south]", + "177:4": "white_wall_banner[facing=west]", + "177:5": "white_wall_banner[facing=east]", + "178:0": "daylight_detector[inverted=true,power=0]", + "178:1": "daylight_detector[inverted=true,power=1]", + "178:2": "daylight_detector[inverted=true,power=2]", + "178:3": "daylight_detector[inverted=true,power=3]", + "178:4": "daylight_detector[inverted=true,power=4]", + "178:5": "daylight_detector[inverted=true,power=5]", + "178:6": "daylight_detector[inverted=true,power=6]", + "178:7": "daylight_detector[inverted=true,power=7]", + "178:8": "daylight_detector[inverted=true,power=8]", + "178:9": "daylight_detector[inverted=true,power=9]", + "178:10": "daylight_detector[inverted=true,power=10]", + "178:11": "daylight_detector[inverted=true,power=11]", + "178:12": "daylight_detector[inverted=true,power=12]", + "178:13": "daylight_detector[inverted=true,power=13]", + "178:14": "daylight_detector[inverted=true,power=14]", + "178:15": "daylight_detector[inverted=true,power=15]", + "179:0": "red_sandstone", + "179:1": "chiseled_red_sandstone", + "179:2": "cut_red_sandstone", + "180:0": "red_sandstone_stairs[facing=east,half=bottom,shape=straight]", + "180:1": "red_sandstone_stairs[facing=west,half=bottom,shape=straight]", + "180:2": "red_sandstone_stairs[facing=south,half=bottom,shape=straight]", + "180:3": "red_sandstone_stairs[facing=north,half=bottom,shape=straight]", + "180:4": "red_sandstone_stairs[facing=east,half=top,shape=straight]", + "180:5": "red_sandstone_stairs[facing=west,half=top,shape=straight]", + "180:6": "red_sandstone_stairs[facing=south,half=top,shape=straight]", + "180:7": "red_sandstone_stairs[facing=north,half=top,shape=straight]", + "181:0": "red_sandstone_slab[type=double]", + "181:8": "smooth_red_sandstone", + "182:0": "red_sandstone_slab[type=bottom]", + "182:8": "red_sandstone_slab[type=top]", + "183:0": "spruce_fence_gate[facing=south,in_wall=false,open=false,powered=false]", + "183:1": "spruce_fence_gate[facing=west,in_wall=false,open=false,powered=false]", + "183:2": "spruce_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "183:3": "spruce_fence_gate[facing=east,in_wall=false,open=false,powered=false]", + "183:4": "spruce_fence_gate[facing=south,in_wall=false,open=true,powered=false]", + "183:5": "spruce_fence_gate[facing=west,in_wall=false,open=true,powered=false]", + "183:6": "spruce_fence_gate[facing=north,in_wall=false,open=true,powered=false]", + "183:7": "spruce_fence_gate[facing=east,in_wall=false,open=true,powered=false]", + "183:8": "spruce_fence_gate[facing=south,in_wall=false,open=false,powered=true]", + "183:9": "spruce_fence_gate[facing=west,in_wall=false,open=false,powered=true]", + "183:10": "spruce_fence_gate[facing=north,in_wall=false,open=false,powered=true]", + "183:11": "spruce_fence_gate[facing=east,in_wall=false,open=false,powered=true]", + "183:12": "spruce_fence_gate[facing=south,in_wall=false,open=true,powered=true]", + "183:13": "spruce_fence_gate[facing=west,in_wall=false,open=true,powered=true]", + "183:14": "spruce_fence_gate[facing=north,in_wall=false,open=true,powered=true]", + "183:15": "spruce_fence_gate[facing=east,in_wall=false,open=true,powered=true]", + "184:0": "birch_fence_gate[facing=south,in_wall=false,open=false,powered=false]", + "184:1": "birch_fence_gate[facing=west,in_wall=false,open=false,powered=false]", + "184:2": "birch_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "184:3": "birch_fence_gate[facing=east,in_wall=false,open=false,powered=false]", + "184:4": "birch_fence_gate[facing=south,in_wall=false,open=true,powered=false]", + "184:5": "birch_fence_gate[facing=west,in_wall=false,open=true,powered=false]", + "184:6": "birch_fence_gate[facing=north,in_wall=false,open=true,powered=false]", + "184:7": "birch_fence_gate[facing=east,in_wall=false,open=true,powered=false]", + "184:8": "birch_fence_gate[facing=south,in_wall=false,open=false,powered=true]", + "184:9": "birch_fence_gate[facing=west,in_wall=false,open=false,powered=true]", + "184:10": "birch_fence_gate[facing=north,in_wall=false,open=false,powered=true]", + "184:11": "birch_fence_gate[facing=east,in_wall=false,open=false,powered=true]", + "184:12": "birch_fence_gate[facing=south,in_wall=false,open=true,powered=true]", + "184:13": "birch_fence_gate[facing=west,in_wall=false,open=true,powered=true]", + "184:14": "birch_fence_gate[facing=north,in_wall=false,open=true,powered=true]", + "184:15": "birch_fence_gate[facing=east,in_wall=false,open=true,powered=true]", + "185:0": "jungle_fence_gate[facing=south,in_wall=false,open=false,powered=false]", + "185:1": "jungle_fence_gate[facing=west,in_wall=false,open=false,powered=false]", + "185:2": "jungle_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "185:3": "jungle_fence_gate[facing=east,in_wall=false,open=false,powered=false]", + "185:4": "jungle_fence_gate[facing=south,in_wall=false,open=true,powered=false]", + "185:5": "jungle_fence_gate[facing=west,in_wall=false,open=true,powered=false]", + "185:6": "jungle_fence_gate[facing=north,in_wall=false,open=true,powered=false]", + "185:7": "jungle_fence_gate[facing=east,in_wall=false,open=true,powered=false]", + "185:8": "jungle_fence_gate[facing=south,in_wall=false,open=false,powered=true]", + "185:9": "jungle_fence_gate[facing=west,in_wall=false,open=false,powered=true]", + "185:10": "jungle_fence_gate[facing=north,in_wall=false,open=false,powered=true]", + "185:11": "jungle_fence_gate[facing=east,in_wall=false,open=false,powered=true]", + "185:12": "jungle_fence_gate[facing=south,in_wall=false,open=true,powered=true]", + "185:13": "jungle_fence_gate[facing=west,in_wall=false,open=true,powered=true]", + "185:14": "jungle_fence_gate[facing=north,in_wall=false,open=true,powered=true]", + "185:15": "jungle_fence_gate[facing=east,in_wall=false,open=true,powered=true]", + "186:0": "dark_oak_fence_gate[facing=south,in_wall=false,open=false,powered=false]", + "186:1": "dark_oak_fence_gate[facing=west,in_wall=false,open=false,powered=false]", + "186:2": "dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "186:3": "dark_oak_fence_gate[facing=east,in_wall=false,open=false,powered=false]", + "186:4": "dark_oak_fence_gate[facing=south,in_wall=false,open=true,powered=false]", + "186:5": "dark_oak_fence_gate[facing=west,in_wall=false,open=true,powered=false]", + "186:6": "dark_oak_fence_gate[facing=north,in_wall=false,open=true,powered=false]", + "186:7": "dark_oak_fence_gate[facing=east,in_wall=false,open=true,powered=false]", + "186:8": "dark_oak_fence_gate[facing=south,in_wall=false,open=false,powered=true]", + "186:9": "dark_oak_fence_gate[facing=west,in_wall=false,open=false,powered=true]", + "186:10": "dark_oak_fence_gate[facing=north,in_wall=false,open=false,powered=true]", + "186:11": "dark_oak_fence_gate[facing=east,in_wall=false,open=false,powered=true]", + "186:12": "dark_oak_fence_gate[facing=south,in_wall=false,open=true,powered=true]", + "186:13": "dark_oak_fence_gate[facing=west,in_wall=false,open=true,powered=true]", + "186:14": "dark_oak_fence_gate[facing=north,in_wall=false,open=true,powered=true]", + "186:15": "dark_oak_fence_gate[facing=east,in_wall=false,open=true,powered=true]", + "187:0": "acacia_fence_gate[facing=south,in_wall=false,open=false,powered=false]", + "187:1": "acacia_fence_gate[facing=west,in_wall=false,open=false,powered=false]", + "187:2": "acacia_fence_gate[facing=north,in_wall=false,open=false,powered=false]", + "187:3": "acacia_fence_gate[facing=east,in_wall=false,open=false,powered=false]", + "187:4": "acacia_fence_gate[facing=south,in_wall=false,open=true,powered=false]", + "187:5": "acacia_fence_gate[facing=west,in_wall=false,open=true,powered=false]", + "187:6": "acacia_fence_gate[facing=north,in_wall=false,open=true,powered=false]", + "187:7": "acacia_fence_gate[facing=east,in_wall=false,open=true,powered=false]", + "187:8": "acacia_fence_gate[facing=south,in_wall=false,open=false,powered=true]", + "187:9": "acacia_fence_gate[facing=west,in_wall=false,open=false,powered=true]", + "187:10": "acacia_fence_gate[facing=north,in_wall=false,open=false,powered=true]", + "187:11": "acacia_fence_gate[facing=east,in_wall=false,open=false,powered=true]", + "187:12": "acacia_fence_gate[facing=south,in_wall=false,open=true,powered=true]", + "187:13": "acacia_fence_gate[facing=west,in_wall=false,open=true,powered=true]", + "187:14": "acacia_fence_gate[facing=north,in_wall=false,open=true,powered=true]", + "187:15": "acacia_fence_gate[facing=east,in_wall=false,open=true,powered=true]", + "188:0": "spruce_fence[east=false,north=false,south=false,west=false]", + "189:0": "birch_fence[east=false,north=false,south=false,west=false]", + "190:0": "jungle_fence[east=false,north=false,south=false,west=false]", + "191:0": "dark_oak_fence[east=false,north=false,south=false,west=false]", + "192:0": "acacia_fence[east=false,north=false,south=false,west=false]", + "193:0": "spruce_door[facing=east,half=lower,hinge=right,open=false,powered=false]", + "193:1": "spruce_door[facing=south,half=lower,hinge=right,open=false,powered=false]", + "193:2": "spruce_door[facing=west,half=lower,hinge=right,open=false,powered=false]", + "193:3": "spruce_door[facing=north,half=lower,hinge=right,open=false,powered=false]", + "193:4": "spruce_door[facing=east,half=lower,hinge=right,open=true,powered=false]", + "193:5": "spruce_door[facing=south,half=lower,hinge=right,open=true,powered=false]", + "193:6": "spruce_door[facing=west,half=lower,hinge=right,open=true,powered=false]", + "193:7": "spruce_door[facing=north,half=lower,hinge=right,open=true,powered=false]", + "193:8": "spruce_door[facing=east,half=upper,hinge=left,open=false,powered=false]", + "193:9": "spruce_door[facing=east,half=upper,hinge=right,open=false,powered=false]", + "193:10": "spruce_door[facing=east,half=upper,hinge=left,open=false,powered=true]", + "193:11": "spruce_door[facing=east,half=upper,hinge=right,open=false,powered=true]", + "194:0": "birch_door[facing=east,half=lower,hinge=right,open=false,powered=false]", + "194:1": "birch_door[facing=south,half=lower,hinge=right,open=false,powered=false]", + "194:2": "birch_door[facing=west,half=lower,hinge=right,open=false,powered=false]", + "194:3": "birch_door[facing=north,half=lower,hinge=right,open=false,powered=false]", + "194:4": "birch_door[facing=east,half=lower,hinge=right,open=true,powered=false]", + "194:5": "birch_door[facing=south,half=lower,hinge=right,open=true,powered=false]", + "194:6": "birch_door[facing=west,half=lower,hinge=right,open=true,powered=false]", + "194:7": "birch_door[facing=north,half=lower,hinge=right,open=true,powered=false]", + "194:8": "birch_door[facing=east,half=upper,hinge=left,open=false,powered=false]", + "194:9": "birch_door[facing=east,half=upper,hinge=right,open=false,powered=false]", + "194:10": "birch_door[facing=east,half=upper,hinge=left,open=false,powered=true]", + "194:11": "birch_door[facing=east,half=upper,hinge=right,open=false,powered=true]", + "195:0": "jungle_door[facing=east,half=lower,hinge=right,open=false,powered=false]", + "195:1": "jungle_door[facing=south,half=lower,hinge=right,open=false,powered=false]", + "195:2": "jungle_door[facing=west,half=lower,hinge=right,open=false,powered=false]", + "195:3": "jungle_door[facing=north,half=lower,hinge=right,open=false,powered=false]", + "195:4": "jungle_door[facing=east,half=lower,hinge=right,open=true,powered=false]", + "195:5": "jungle_door[facing=south,half=lower,hinge=right,open=true,powered=false]", + "195:6": "jungle_door[facing=west,half=lower,hinge=right,open=true,powered=false]", + "195:7": "jungle_door[facing=north,half=lower,hinge=right,open=true,powered=false]", + "195:8": "jungle_door[facing=east,half=upper,hinge=left,open=false,powered=false]", + "195:9": "jungle_door[facing=east,half=upper,hinge=right,open=false,powered=false]", + "195:10": "jungle_door[facing=east,half=upper,hinge=left,open=false,powered=true]", + "195:11": "jungle_door[facing=east,half=upper,hinge=right,open=false,powered=true]", + "196:0": "acacia_door[facing=east,half=lower,hinge=right,open=false,powered=false]", + "196:1": "acacia_door[facing=south,half=lower,hinge=right,open=false,powered=false]", + "196:2": "acacia_door[facing=west,half=lower,hinge=right,open=false,powered=false]", + "196:3": "acacia_door[facing=north,half=lower,hinge=right,open=false,powered=false]", + "196:4": "acacia_door[facing=east,half=lower,hinge=right,open=true,powered=false]", + "196:5": "acacia_door[facing=south,half=lower,hinge=right,open=true,powered=false]", + "196:6": "acacia_door[facing=west,half=lower,hinge=right,open=true,powered=false]", + "196:7": "acacia_door[facing=north,half=lower,hinge=right,open=true,powered=false]", + "196:8": "acacia_door[facing=east,half=upper,hinge=left,open=false,powered=false]", + "196:9": "acacia_door[facing=east,half=upper,hinge=right,open=false,powered=false]", + "196:10": "acacia_door[facing=east,half=upper,hinge=left,open=false,powered=true]", + "196:11": "acacia_door[facing=east,half=upper,hinge=right,open=false,powered=true]", + "197:0": "dark_oak_door[facing=east,half=lower,hinge=right,open=false,powered=false]", + "197:1": "dark_oak_door[facing=south,half=lower,hinge=right,open=false,powered=false]", + "197:2": "dark_oak_door[facing=west,half=lower,hinge=right,open=false,powered=false]", + "197:3": "dark_oak_door[facing=north,half=lower,hinge=right,open=false,powered=false]", + "197:4": "dark_oak_door[facing=east,half=lower,hinge=right,open=true,powered=false]", + "197:5": "dark_oak_door[facing=south,half=lower,hinge=right,open=true,powered=false]", + "197:6": "dark_oak_door[facing=west,half=lower,hinge=right,open=true,powered=false]", + "197:7": "dark_oak_door[facing=north,half=lower,hinge=right,open=true,powered=false]", + "197:8": "dark_oak_door[facing=east,half=upper,hinge=left,open=false,powered=false]", + "197:9": "dark_oak_door[facing=east,half=upper,hinge=right,open=false,powered=false]", + "197:10": "dark_oak_door[facing=east,half=upper,hinge=left,open=false,powered=true]", + "197:11": "dark_oak_door[facing=east,half=upper,hinge=right,open=false,powered=true]", + "198:0": "end_rod[facing=down]", + "198:1": "end_rod[facing=up]", + "198:2": "end_rod[facing=north]", + "198:3": "end_rod[facing=south]", + "198:4": "end_rod[facing=west]", + "198:5": "end_rod[facing=east]", + "199:0": "chorus_plant[down=false,east=false,north=false,south=false,up=false,west=false]", + "200:0": "chorus_flower[age=0]", + "200:1": "chorus_flower[age=1]", + "200:2": "chorus_flower[age=2]", + "200:3": "chorus_flower[age=3]", + "200:4": "chorus_flower[age=4]", + "200:5": "chorus_flower[age=5]", + "201:0": "purpur_block", + "202:0": "purpur_pillar[axis=y]", + "202:4": "purpur_pillar[axis=x]", + "202:8": "purpur_pillar[axis=z]", + "203:0": "purpur_stairs[facing=east,half=bottom,shape=straight]", + "203:1": "purpur_stairs[facing=west,half=bottom,shape=straight]", + "203:2": "purpur_stairs[facing=south,half=bottom,shape=straight]", + "203:3": "purpur_stairs[facing=north,half=bottom,shape=straight]", + "203:4": "purpur_stairs[facing=east,half=top,shape=straight]", + "203:5": "purpur_stairs[facing=west,half=top,shape=straight]", + "203:6": "purpur_stairs[facing=south,half=top,shape=straight]", + "203:7": "purpur_stairs[facing=north,half=top,shape=straight]", + "204:0": "purpur_slab[type=double]", + "205:0": "purpur_slab[type=bottom]", + "205:8": "purpur_slab[type=top]", + "206:0": "end_stone_bricks", + "207:0": "beetroots[age=0]", + "207:1": "beetroots[age=1]", + "207:2": "beetroots[age=2]", + "207:3": "beetroots[age=3]", + "208:0": "grass_path", + "209:0": "end_gateway", + "210:0": "repeating_command_block[conditional=false,facing=down]", + "210:1": "repeating_command_block[conditional=false,facing=up]", + "210:2": "repeating_command_block[conditional=false,facing=north]", + "210:3": "repeating_command_block[conditional=false,facing=south]", + "210:4": "repeating_command_block[conditional=false,facing=west]", + "210:5": "repeating_command_block[conditional=false,facing=east]", + "210:8": "repeating_command_block[conditional=true,facing=down]", + "210:9": "repeating_command_block[conditional=true,facing=up]", + "210:10": "repeating_command_block[conditional=true,facing=north]", + "210:11": "repeating_command_block[conditional=true,facing=south]", + "210:12": "repeating_command_block[conditional=true,facing=west]", + "210:13": "repeating_command_block[conditional=true,facing=east]", + "211:0": "chain_command_block[conditional=false,facing=down]", + "211:1": "chain_command_block[conditional=false,facing=up]", + "211:2": "chain_command_block[conditional=false,facing=north]", + "211:3": "chain_command_block[conditional=false,facing=south]", + "211:4": "chain_command_block[conditional=false,facing=west]", + "211:5": "chain_command_block[conditional=false,facing=east]", + "211:8": "chain_command_block[conditional=true,facing=down]", + "211:9": "chain_command_block[conditional=true,facing=up]", + "211:10": "chain_command_block[conditional=true,facing=north]", + "211:11": "chain_command_block[conditional=true,facing=south]", + "211:12": "chain_command_block[conditional=true,facing=west]", + "211:13": "chain_command_block[conditional=true,facing=east]", + "212:0": "frosted_ice[age=0]", + "212:1": "frosted_ice[age=1]", + "212:2": "frosted_ice[age=2]", + "212:3": "frosted_ice[age=3]", + "213:0": "magma_block", + "214:0": "nether_wart_block", + "215:0": "red_nether_bricks", + "216:0": "bone_block[axis=y]", + "216:4": "bone_block[axis=x]", + "216:8": "bone_block[axis=z]", + "217:0": "structure_void", + "218:0": "observer[facing=down,powered=false]", + "218:1": "observer[facing=up,powered=false]", + "218:2": "observer[facing=north,powered=false]", + "218:3": "observer[facing=south,powered=false]", + "218:4": "observer[facing=west,powered=false]", + "218:5": "observer[facing=east,powered=false]", + "218:8": "observer[facing=down,powered=true]", + "218:9": "observer[facing=up,powered=true]", + "218:10": "observer[facing=north,powered=true]", + "218:11": "observer[facing=south,powered=true]", + "218:12": "observer[facing=west,powered=true]", + "218:13": "observer[facing=east,powered=true]", + "219:0": "white_shulker_box[facing=down]", + "219:1": "white_shulker_box[facing=up]", + "219:2": "white_shulker_box[facing=north]", + "219:3": "white_shulker_box[facing=south]", + "219:4": "white_shulker_box[facing=west]", + "219:5": "white_shulker_box[facing=east]", + "220:0": "orange_shulker_box[facing=down]", + "220:1": "orange_shulker_box[facing=up]", + "220:2": "orange_shulker_box[facing=north]", + "220:3": "orange_shulker_box[facing=south]", + "220:4": "orange_shulker_box[facing=west]", + "220:5": "orange_shulker_box[facing=east]", + "221:0": "magenta_shulker_box[facing=down]", + "221:1": "magenta_shulker_box[facing=up]", + "221:2": "magenta_shulker_box[facing=north]", + "221:3": "magenta_shulker_box[facing=south]", + "221:4": "magenta_shulker_box[facing=west]", + "221:5": "magenta_shulker_box[facing=east]", + "222:0": "light_blue_shulker_box[facing=down]", + "222:1": "light_blue_shulker_box[facing=up]", + "222:2": "light_blue_shulker_box[facing=north]", + "222:3": "light_blue_shulker_box[facing=south]", + "222:4": "light_blue_shulker_box[facing=west]", + "222:5": "light_blue_shulker_box[facing=east]", + "223:0": "yellow_shulker_box[facing=down]", + "223:1": "yellow_shulker_box[facing=up]", + "223:2": "yellow_shulker_box[facing=north]", + "223:3": "yellow_shulker_box[facing=south]", + "223:4": "yellow_shulker_box[facing=west]", + "223:5": "yellow_shulker_box[facing=east]", + "224:0": "lime_shulker_box[facing=down]", + "224:1": "lime_shulker_box[facing=up]", + "224:2": "lime_shulker_box[facing=north]", + "224:3": "lime_shulker_box[facing=south]", + "224:4": "lime_shulker_box[facing=west]", + "224:5": "lime_shulker_box[facing=east]", + "225:0": "pink_shulker_box[facing=down]", + "225:1": "pink_shulker_box[facing=up]", + "225:2": "pink_shulker_box[facing=north]", + "225:3": "pink_shulker_box[facing=south]", + "225:4": "pink_shulker_box[facing=west]", + "225:5": "pink_shulker_box[facing=east]", + "226:0": "gray_shulker_box[facing=down]", + "226:1": "gray_shulker_box[facing=up]", + "226:2": "gray_shulker_box[facing=north]", + "226:3": "gray_shulker_box[facing=south]", + "226:4": "gray_shulker_box[facing=west]", + "226:5": "gray_shulker_box[facing=east]", + "227:0": "light_gray_shulker_box[facing=down]", + "227:1": "light_gray_shulker_box[facing=up]", + "227:2": "light_gray_shulker_box[facing=north]", + "227:3": "light_gray_shulker_box[facing=south]", + "227:4": "light_gray_shulker_box[facing=west]", + "227:5": "light_gray_shulker_box[facing=east]", + "228:0": "cyan_shulker_box[facing=down]", + "228:1": "cyan_shulker_box[facing=up]", + "228:2": "cyan_shulker_box[facing=north]", + "228:3": "cyan_shulker_box[facing=south]", + "228:4": "cyan_shulker_box[facing=west]", + "228:5": "cyan_shulker_box[facing=east]", + "229:0": "purple_shulker_box[facing=down]", + "229:1": "purple_shulker_box[facing=up]", + "229:2": "purple_shulker_box[facing=north]", + "229:3": "purple_shulker_box[facing=south]", + "229:4": "purple_shulker_box[facing=west]", + "229:5": "purple_shulker_box[facing=east]", + "230:0": "blue_shulker_box[facing=down]", + "230:1": "blue_shulker_box[facing=up]", + "230:2": "blue_shulker_box[facing=north]", + "230:3": "blue_shulker_box[facing=south]", + "230:4": "blue_shulker_box[facing=west]", + "230:5": "blue_shulker_box[facing=east]", + "231:0": "brown_shulker_box[facing=down]", + "231:1": "brown_shulker_box[facing=up]", + "231:2": "brown_shulker_box[facing=north]", + "231:3": "brown_shulker_box[facing=south]", + "231:4": "brown_shulker_box[facing=west]", + "231:5": "brown_shulker_box[facing=east]", + "232:0": "green_shulker_box[facing=down]", + "232:1": "green_shulker_box[facing=up]", + "232:2": "green_shulker_box[facing=north]", + "232:3": "green_shulker_box[facing=south]", + "232:4": "green_shulker_box[facing=west]", + "232:5": "green_shulker_box[facing=east]", + "233:0": "red_shulker_box[facing=down]", + "233:1": "red_shulker_box[facing=up]", + "233:2": "red_shulker_box[facing=north]", + "233:3": "red_shulker_box[facing=south]", + "233:4": "red_shulker_box[facing=west]", + "233:5": "red_shulker_box[facing=east]", + "234:0": "black_shulker_box[facing=down]", + "234:1": "black_shulker_box[facing=up]", + "234:2": "black_shulker_box[facing=north]", + "234:3": "black_shulker_box[facing=south]", + "234:4": "black_shulker_box[facing=west]", + "234:5": "black_shulker_box[facing=east]", + "235:0": "white_glazed_terracotta[facing=south]", + "235:1": "white_glazed_terracotta[facing=west]", + "235:2": "white_glazed_terracotta[facing=north]", + "235:3": "white_glazed_terracotta[facing=east]", + "236:0": "orange_glazed_terracotta[facing=south]", + "236:1": "orange_glazed_terracotta[facing=west]", + "236:2": "orange_glazed_terracotta[facing=north]", + "236:3": "orange_glazed_terracotta[facing=east]", + "237:0": "magenta_glazed_terracotta[facing=south]", + "237:1": "magenta_glazed_terracotta[facing=west]", + "237:2": "magenta_glazed_terracotta[facing=north]", + "237:3": "magenta_glazed_terracotta[facing=east]", + "238:0": "light_blue_glazed_terracotta[facing=south]", + "238:1": "light_blue_glazed_terracotta[facing=west]", + "238:2": "light_blue_glazed_terracotta[facing=north]", + "238:3": "light_blue_glazed_terracotta[facing=east]", + "239:0": "yellow_glazed_terracotta[facing=south]", + "239:1": "yellow_glazed_terracotta[facing=west]", + "239:2": "yellow_glazed_terracotta[facing=north]", + "239:3": "yellow_glazed_terracotta[facing=east]", + "240:0": "lime_glazed_terracotta[facing=south]", + "240:1": "lime_glazed_terracotta[facing=west]", + "240:2": "lime_glazed_terracotta[facing=north]", + "240:3": "lime_glazed_terracotta[facing=east]", + "241:0": "pink_glazed_terracotta[facing=south]", + "241:1": "pink_glazed_terracotta[facing=west]", + "241:2": "pink_glazed_terracotta[facing=north]", + "241:3": "pink_glazed_terracotta[facing=east]", + "242:0": "gray_glazed_terracotta[facing=south]", + "242:1": "gray_glazed_terracotta[facing=west]", + "242:2": "gray_glazed_terracotta[facing=north]", + "242:3": "gray_glazed_terracotta[facing=east]", + "243:0": "light_gray_glazed_terracotta[facing=south]", + "243:1": "light_gray_glazed_terracotta[facing=west]", + "243:2": "light_gray_glazed_terracotta[facing=north]", + "243:3": "light_gray_glazed_terracotta[facing=east]", + "244:0": "cyan_glazed_terracotta[facing=south]", + "244:1": "cyan_glazed_terracotta[facing=west]", + "244:2": "cyan_glazed_terracotta[facing=north]", + "244:3": "cyan_glazed_terracotta[facing=east]", + "245:0": "purple_glazed_terracotta[facing=south]", + "245:1": "purple_glazed_terracotta[facing=west]", + "245:2": "purple_glazed_terracotta[facing=north]", + "245:3": "purple_glazed_terracotta[facing=east]", + "246:0": "blue_glazed_terracotta[facing=south]", + "246:1": "blue_glazed_terracotta[facing=west]", + "246:2": "blue_glazed_terracotta[facing=north]", + "246:3": "blue_glazed_terracotta[facing=east]", + "247:0": "brown_glazed_terracotta[facing=south]", + "247:1": "brown_glazed_terracotta[facing=west]", + "247:2": "brown_glazed_terracotta[facing=north]", + "247:3": "brown_glazed_terracotta[facing=east]", + "248:0": "green_glazed_terracotta[facing=south]", + "248:1": "green_glazed_terracotta[facing=west]", + "248:2": "green_glazed_terracotta[facing=north]", + "248:3": "green_glazed_terracotta[facing=east]", + "249:0": "red_glazed_terracotta[facing=south]", + "249:1": "red_glazed_terracotta[facing=west]", + "249:2": "red_glazed_terracotta[facing=north]", + "249:3": "red_glazed_terracotta[facing=east]", + "250:0": "black_glazed_terracotta[facing=south]", + "250:1": "black_glazed_terracotta[facing=west]", + "250:2": "black_glazed_terracotta[facing=north]", + "250:3": "black_glazed_terracotta[facing=east]", + "251:0": "white_concrete", + "251:1": "orange_concrete", + "251:2": "magenta_concrete", + "251:3": "light_blue_concrete", + "251:4": "yellow_concrete", + "251:5": "lime_concrete", + "251:6": "pink_concrete", + "251:7": "gray_concrete", + "251:8": "light_gray_concrete", + "251:9": "cyan_concrete", + "251:10": "purple_concrete", + "251:11": "blue_concrete", + "251:12": "brown_concrete", + "251:13": "green_concrete", + "251:14": "red_concrete", + "251:15": "black_concrete", + "252:0": "white_concrete_powder", + "252:1": "orange_concrete_powder", + "252:2": "magenta_concrete_powder", + "252:3": "light_blue_concrete_powder", + "252:4": "yellow_concrete_powder", + "252:5": "lime_concrete_powder", + "252:6": "pink_concrete_powder", + "252:7": "gray_concrete_powder", + "252:8": "light_gray_concrete_powder", + "252:9": "cyan_concrete_powder", + "252:10": "purple_concrete_powder", + "252:11": "blue_concrete_powder", + "252:12": "brown_concrete_powder", + "252:13": "green_concrete_powder", + "252:14": "red_concrete_powder", + "252:15": "black_concrete_powder", + "255:0": "structure_block[mode=save]", + "255:1": "structure_block[mode=load]", + "255:2": "structure_block[mode=corner]", + "255:3": "structure_block[mode=data]" + }, + "clientCalculatedBlocks": { + "block_snowy": [ + "grass_block", + "dirt", + "coarse_dirt", + "podzol", + "mycelium" + ], + "directional": [ + "fire", + "redstone_wire", + "oak_fence", + "iron_bars", + "glass_pane", + "vine", + "nether_brick_fence", + "tripwire", + "cobblestone_wall", + "mossy_cobblestone_wall", + "white_stained_glass_pane", + "orange_stained_glass_pane", + "magenta_stained_glass_pane", + "light_blue_stained_glass_pane", + "yellow_stained_glass_pane", + "lime_stained_glass_pane", + "pink_stained_glass_pane", + "gray_stained_glass_pane", + "light_gray_stained_glass_pane", + "cyan_stained_glass_pane", + "purple_stained_glass_pane", + "blue_stained_glass_pane", + "brown_stained_glass_pane", + "green_stained_glass_pane", + "red_stained_glass_pane", + "black_stained_glass_pane", + "spruce_fence", + "birch_fence", + "jungle_fence", + "dark_oak_fence", + "acacia_fence", + "chorus_plant" + ], + "door": [ + "oak_door", + "iron_door", + "spruce_door", + "birch_door", + "jungle_door", + "acacia_door", + "dark_oak_door" + ], + "repeater_locked": [ + "repeater" + ], + "gate_in_wall": [ + "oak_fence_gate", + "spruce_fence_gate", + "birch_fence_gate", + "jungle_fence_gate", + "dark_oak_fence_gate", + "acacia_fence_gate" + ] + } +} diff --git a/src/react/AddServerOrConnect.tsx b/src/react/AddServerOrConnect.tsx new file mode 100644 index 00000000..36fd5264 --- /dev/null +++ b/src/react/AddServerOrConnect.tsx @@ -0,0 +1,256 @@ +import React, { useEffect } from 'react' +import { appQueryParams } from '../appParams' +import { fetchServerStatus, isServerValid } from '../api/mcStatusApi' +import { parseServerAddress } from '../parseServerAddress' +import Screen from './Screen' +import Input, { INPUT_LABEL_WIDTH, InputWithLabel } from './Input' +import Button from './Button' +import SelectGameVersion from './SelectGameVersion' +import { usePassesScaledDimensions } from './UIProvider' + +export interface BaseServerInfo { + ip: string + name?: string + versionOverride?: string + proxyOverride?: string + usernameOverride?: string + /** Username or always use new if true */ + authenticatedAccountOverride?: string | true +} + +interface Props { + onBack: () => void + onConfirm: (info: BaseServerInfo) => void + title?: string + initialData?: BaseServerInfo + parseQs?: boolean + onQsConnect?: (server: BaseServerInfo) => void + placeholders?: Pick + accounts?: string[] + authenticatedAccounts?: number + versions?: string[] +} + +export default ({ onBack, onConfirm, title = 'Add a Server', initialData, parseQs, onQsConnect, placeholders, accounts, versions }: Props) => { + const isSmallHeight = !usePassesScaledDimensions(null, 350) + const qsParamName = parseQs ? appQueryParams.name : undefined + const qsParamIp = parseQs ? appQueryParams.ip : undefined + const qsParamVersion = parseQs ? appQueryParams.version : undefined + const qsParamProxy = parseQs ? appQueryParams.proxy : undefined + const qsParamUsername = parseQs ? appQueryParams.username : undefined + const qsParamLockConnect = parseQs ? appQueryParams.lockConnect : undefined + + const parsedQsIp = parseServerAddress(qsParamIp) + const parsedInitialIp = parseServerAddress(initialData?.ip) + + const [serverName, setServerName] = React.useState(initialData?.name ?? qsParamName ?? '') + const [serverIp, setServerIp] = React.useState(parsedQsIp.serverIpFull || parsedInitialIp.serverIpFull || '') + const [versionOverride, setVersionOverride] = React.useState(initialData?.versionOverride ?? /* legacy */ initialData?.['version'] ?? qsParamVersion ?? '') + const [proxyOverride, setProxyOverride] = React.useState(initialData?.proxyOverride ?? qsParamProxy ?? '') + const [usernameOverride, setUsernameOverride] = React.useState(initialData?.usernameOverride ?? qsParamUsername ?? '') + const lockConnect = qsParamLockConnect === 'true' + + const smallWidth = !usePassesScaledDimensions(400) + const initialAccount = initialData?.authenticatedAccountOverride + const [accountIndex, setAccountIndex] = React.useState(initialAccount === true ? -2 : initialAccount ? (accounts?.includes(initialAccount) ? accounts.indexOf(initialAccount) : -2) : -1) + + const freshAccount = accountIndex === -2 + const noAccountSelected = accountIndex === -1 + const authenticatedAccountOverride = noAccountSelected ? undefined : freshAccount ? true : accounts?.[accountIndex] + + let ipFinal = serverIp + ipFinal = ipFinal.replace(/:$/, '') + const commonUseOptions: BaseServerInfo = { + name: serverName, + ip: ipFinal, + versionOverride: versionOverride || undefined, + proxyOverride: proxyOverride || undefined, + usernameOverride: usernameOverride || undefined, + authenticatedAccountOverride, + } + + const [fetchedServerInfoIp, setFetchedServerInfoIp] = React.useState(undefined) + const [serverOnline, setServerOnline] = React.useState(null as boolean | null) + const [onlinePlayersList, setOnlinePlayersList] = React.useState([]) + + useEffect(() => { + const controller = new AbortController() + + const checkServer = async () => { + if (!qsParamIp || !isServerValid(qsParamIp)) return + + try { + const status = await fetchServerStatus(qsParamIp) + if (!status) return + + setServerOnline(status.raw.online) + setOnlinePlayersList(status.raw.players?.list.map(p => p.name_raw) ?? []) + setFetchedServerInfoIp(qsParamIp) + } catch (err) { + console.error('Failed to fetch server status:', err) + } + } + + void checkServer() + return () => controller.abort() + }, [qsParamIp]) + + const validateUsername = (username: string) => { + if (!username) return undefined + if (onlinePlayersList.includes(username)) { + return { border: 'red solid 1px' } + } + const MINECRAFT_USERNAME_REGEX = /^\w{3,16}$/ + if (!MINECRAFT_USERNAME_REGEX.test(username)) { + return { border: 'red solid 1px' } + } + return undefined + } + + const validateServerIp = () => { + if (!serverIp) return undefined + if (serverOnline) { + return { border: 'lightgreen solid 1px' } + } else { + return { border: 'red solid 1px' } + } + } + + const displayConnectButton = qsParamIp + const serverExamples = ['example.com:25565', 'play.hypixel.net', 'ws://play.pcm.gg', 'wss://play.webmc.fun'] + // pick random example + const example = serverExamples[Math.floor(Math.random() * serverExamples.length)] + + return +
{ + e.preventDefault() + onConfirm(commonUseOptions) + }} + > +
+ { + setServerIp(value) + setServerOnline(false) + }} + validateInput={serverOnline === null || fetchedServerInfoIp !== serverIp ? undefined : validateServerIp} + placeholder={example} + /> + {!lockConnect && <> +
+ setServerName(value)} placeholder='Defaults to IP' /> +
+ } + {isSmallHeight ?
:
Overrides:
} +
+ + { return { value: v, label: v } }) ?? []} + onChange={(value) => { + setVersionOverride(value) + }} + placeholder="Optional, but recommended to specify" + disabled={lockConnect} + /> +
+ + setProxyOverride(value)} + placeholder={serverIp.startsWith('ws://') || serverIp.startsWith('wss://') ? 'Not needed for websocket servers' : placeholders?.proxyOverride} + /> + setUsernameOverride(value)} + placeholder={placeholders?.usernameOverride} + validateInput={!serverOnline || fetchedServerInfoIp !== serverIp ? undefined : validateUsername} + /> + + + {!lockConnect && <> + { + onBack() + }}> + Cancel + + + {displayConnectButton ? translate('Save') : {translate('Save')}} + + } + {displayConnectButton && ( +
+ { + onQsConnect?.(commonUseOptions) + }} + > + {translate('Connect')} + +
+ )} +
+ + +} + +const ButtonWrapper = ({ ...props }: React.ComponentProps) => { + props.style ??= {} + props.style.width = INPUT_LABEL_WIDTH + return } + {actionsSlot} + {!lockConnect && } + {backAction &&
+ ) +} diff --git a/src/react/AppStatusProvider.tsx b/src/react/AppStatusProvider.tsx new file mode 100644 index 00000000..9c7b34ac --- /dev/null +++ b/src/react/AppStatusProvider.tsx @@ -0,0 +1,242 @@ +import { proxy, useSnapshot } from 'valtio' +import { useEffect, useRef, useState } from 'react' +import { activeModalStack, activeModalStacks, hideModal, insertActiveModalStack, miscUiState } from '../globalState' +import { guessProblem } from '../errorLoadingScreenHelpers' +import type { ConnectOptions } from '../connect' +import { downloadPacketsReplay, packetsRecordingState, replayLogger } from '../packetsReplay/packetsReplayLegacy' +import { getProxyDetails } from '../microsoftAuthflow' +import { downloadAutoCapturedPackets, getLastAutoCapturedPackets } from '../mineflayer/plugins/packetsRecording' +import { appQueryParams } from '../appParams' +import AppStatus from './AppStatus' +import DiveTransition from './DiveTransition' +import { useDidUpdateEffect } from './utils' +import { useIsModalActive } from './utilsApp' +import Button from './Button' +import { updateAuthenticatedAccountData, updateLoadedServerData, AuthenticatedAccount } from './serversStorage' +import { showOptionsModal } from './SelectOption' +import LoadingChunks from './LoadingChunks' +import MessageFormattedString from './MessageFormattedString' + +const initialState = { + status: '', + lastStatus: '', + maybeRecoverable: true, + descriptionHint: '', + isError: false, + hideDots: false, + loadingChunksData: null as null | Record, + loadingChunksDataPlayerChunk: null as null | { x: number, z: number }, + isDisplaying: false, + minecraftJsonMessage: null as null | Record, + showReconnect: false +} +export const appStatusState = proxy(initialState) +export const resetAppStatusState = () => { + Object.assign(appStatusState, initialState) +} + +export const lastConnectOptions = { + value: null as ConnectOptions | null +} +globalThis.lastConnectOptions = lastConnectOptions + +const saveReconnectOptions = (options: ConnectOptions) => { + sessionStorage.setItem('reconnectOptions', JSON.stringify({ + value: options, + timestamp: Date.now() + })) +} + +export const reconnectReload = () => { + if (lastConnectOptions.value) { + saveReconnectOptions(lastConnectOptions.value) + window.location.reload() + } +} + +export const quickDevReconnect = () => { + if (!lastConnectOptions.value) { + return + } + + resetAppStatusState() + window.dispatchEvent(new window.CustomEvent('connect', { + detail: lastConnectOptions.value + })) +} + +export default () => { + const lastState = useRef(JSON.parse(JSON.stringify(appStatusState))) + const currentState = useSnapshot(appStatusState) + const { active: replayActive } = useSnapshot(packetsRecordingState) + + const isOpen = useIsModalActive('app-status') + + if (isOpen) { + lastState.current = JSON.parse(JSON.stringify(currentState)) + } + + const usingState = (isOpen ? currentState : lastState.current) as typeof currentState + const { isError, lastStatus, maybeRecoverable, status, hideDots, descriptionHint, loadingChunksData, loadingChunksDataPlayerChunk, minecraftJsonMessage, showReconnect } = usingState + + useDidUpdateEffect(() => { + // todo play effect only when world successfully loaded + if (!isOpen) { + const startDiveAnimation = (divingElem: HTMLElement) => { + divingElem.style.animationName = 'dive-animation' + divingElem.parentElement!.style.perspective = '1200px' + divingElem.onanimationend = () => { + divingElem.parentElement!.style.perspective = '' + divingElem.onanimationend = null + } + } + + const divingElem = document.querySelector('#viewer-canvas') + let observer: MutationObserver | null = null + if (divingElem) { + startDiveAnimation(divingElem as HTMLElement) + } else { + observer = new MutationObserver((mutations) => { + const divingElem = document.querySelector('#viewer-canvas') + if (divingElem) { + startDiveAnimation(divingElem as HTMLElement) + observer!.disconnect() + } + }) + observer.observe(document.body, { + childList: true, + subtree: true + }) + } + return () => { + if (observer) { + observer.disconnect() + } + } + } + }, [isOpen]) + + useEffect(() => { + const controller = new AbortController() + window.addEventListener('keyup', (e) => { + if ('input textarea select'.split(' ').includes((e.target as HTMLElement).tagName?.toLowerCase() ?? '')) return + if (activeModalStack.at(-1)?.reactType !== 'app-status') return + // todo do only if reconnect is possible + if (e.code !== 'KeyR' || !lastConnectOptions.value) return + quickDevReconnect() + }, { + signal: controller.signal + }) + return () => controller.abort() + }, []) + + const displayAuthButton = status.includes('This server appears to be an online server and you are providing no authentication.') + || JSON.stringify(minecraftJsonMessage ?? {}).toLowerCase().includes('authenticate') + const hasVpnText = (text: string) => text.includes('VPN') || text.includes('Proxy') + const displayVpnButton = hasVpnText(status) || (minecraftJsonMessage && hasVpnText(JSON.stringify(minecraftJsonMessage))) + const authReconnectAction = async () => { + let accounts = [] as AuthenticatedAccount[] + updateAuthenticatedAccountData(oldAccounts => { + accounts = oldAccounts + return oldAccounts + }) + + const account = await showOptionsModal('Choose account to connect with', [...accounts.map(account => account.username), 'Use other account']) + if (!account) return + lastConnectOptions.value!.authenticatedAccount = accounts.find(acc => acc.username === account) || true + quickDevReconnect() + } + + const lastAutoCapturedPackets = getLastAutoCapturedPackets() + const lockConnect = appQueryParams.lockConnect === 'true' + const wasDisconnected = showReconnect + let backAction = undefined as (() => void) | undefined + if (maybeRecoverable && (!lockConnect || !wasDisconnected)) { + backAction = () => { + if (!wasDisconnected) { + hideModal(undefined, undefined, { force: true }) + return + } + resetAppStatusState() + miscUiState.gameLoaded = false + miscUiState.loadedDataVersion = null + window.loadedData = undefined + if (activeModalStacks['main-menu']) { + insertActiveModalStack('main-menu') + if (activeModalStack.at(-1)?.reactType === 'app-status') { + hideModal(undefined, undefined, { force: true }) // workaround: hide loader that was shown on world loading + } + } else { + hideModal(undefined, undefined, { force: true }) + } + } + } + return + { + displayAuthButton ? '' : (isError ? guessProblem(status) : '') || descriptionHint + }{ + minecraftJsonMessage && + }} + backAction={backAction} + actionsSlot={ + <> + {displayAuthButton && +
+} diff --git a/src/react/Book.module.css b/src/react/Book.module.css new file mode 100644 index 00000000..d672baf6 --- /dev/null +++ b/src/react/Book.module.css @@ -0,0 +1,605 @@ +.bookWrapper * { + box-sizing: border-box; +} +.bookWrapper { + box-sizing: border-box; + position: absolute; + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 0.5vh; +} +.bookContainer { + position: relative; + display: flex; + flex-direction: column; + justify-content: space-between; + align-items: center; + gap: 3%; + padding: 0; +} + +.bookImages { + position: relative; +} + +.outSide { + display: none; + position: absolute; + z-index: 2; + top: 0; + left: 50%; + transform: translateX(-50%); + width: 40%; + height: 100%; + margin: 0 auto; +} +.titleIcon { + display: none; + position: absolute; + top: 0; + left: 50%; + transform: translateX(-50%); + width: 50%; + height: 100%; + margin: 0 auto; + z-index: 2; +} +.titleContent { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + position: relative; + width: 100%; + height: 100%; + overflow: hidden; +} +.titleContent span { + font-size: 10px; +} +.titleContent input { + text-align: center; + width: 100%; + height: 10%; + font-size: 10px; + margin: 4% 0%; + padding: 2% 4%; + background-color: transparent; + color: white; + caret-color: greenyellow; + font-family: inherit; + border: 1px solid black; + padding: 8px 15px; +} + +.insideIcon { + width: 100%; + height: 20vh; +} +.insideHalfIcon { + position: absolute; + top: 0; + left: 0; + width: 50%; + height: 100%; +} + +.inside { + position: absolute; + top: 0%; + width: 90%; + height: 100%; + display: flex; + justify-content: flex-start; + align-items: flex-start; + gap: 5%; + background-color: transparent; + box-shadow: none; + padding: 3% 0%; +} +.inside.uneditable { + height: 90%; +} + +.page { + position: relative; + width: 50%; + height: 100%; + overflow-y: auto; + background-color: transparent; + overflow: hidden; +} + +.messageFormattedString { + position: relative; + width: 100%; + height: 100%; + white-space: pre-wrap; + font-family: minecraft; + font-size: 10px; + padding: 10px; +} + +.messageFormattedString > span { + text-shadow: none !important; +} + +.textArea { + position: relative; + width: 100%; + height: 100%; + border: none; + outline: none; + resize: none; + font-family: minecraft; + font-size: 10px; + background-color: transparent; + box-shadow: none; + overflow: hidden; + text-overflow: ellipsis; +} +.textArea > span { + animation: blink 1s step-end infinite; + border-bottom: 2px solid white; +} + +@keyframes blink { + from, + to { + border-color: transparent; + } + 50% { + border-color: #fff; + } +} + +.controlPrev, .controlNext, +.controlPrev::before, .controlNext::before, +.controlPrev::after, .controlNext::after { + border: none !important; + background-color: transparent !important; + text-shadow: none !important; + width: auto !important; +} + +.inside Button.controlPrev { + position: absolute !important; + background-image: url('./book_icons/prev.webp'); + background-size: contain; + background-repeat: no-repeat; + background-position: center; + left: 2%; + bottom: 6%; + margin: 0; + padding: 4%; +} +.inside Button.controlPrev:active { + background-image: url('./book_icons/prev-click.webp') !important; +} +.inside Button.controlNext { + position: absolute !important; + background-image: url('./book_icons/next.webp') !important; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + right: 2%; + bottom: 6%; + margin: 0; + padding: 4%; +} +.inside Button.controlNext:active { + background-image: url('./book_icons/next-click.webp') !important; +} + +.actions { + display: flex; + flex-wrap: wrap; + width: 50%; + gap: 0.5vw; + row-gap: 0.5vw; + align-items: center; + justify-content: center; +} + +.actions button { + cursor: pointer; + font-family: minecraft; + width: 45%; +} + +/* Animations */ + +@keyframes titleAnimation { + 0% { + transform: translateX(-50%) rotateY(85deg); + } + 100% { + transform: translateX(-50%) rotateY(0); + } +} + +@keyframes titleContentAnimation { + 0% { + transform: translateX(-50%) rotateY(85deg); + } + 100% { + transform: translateX(-50%) rotateY(0); + } +} + +@keyframes insideAnimation { + 0% { + clip-path: inset(0% 0% 0% 0%); + transform: translateX(0%); + } + 25% { + transform: translateX(5%); + } + 50% { + clip-path: inset(0% 0% 0% 50%); + transform: translateX(0%); + } + 99% { + opacity: 1; + } + 100% { + clip-path: inset(0% 0% 0% 75%); + transform: translateX(-25%); + opacity: 0; + } +} + +@keyframes pageAnimation { + 0% { + transform: translateX(0) rotateY(0); + } + 99% { + display: flex; + } + 100% { + transform: translateX(55%) rotateY(90deg); + padding: 0%; + display: none; + } +} +@keyframes pageTextAnimation { + 0% { + transform: translateX(0) rotateY(0); + } + 100% { + transform: translateX(65%) rotateY(88deg); + display: none; + } +} +@keyframes pageSecondTextAnimation { + 0% { + transform: translateX(0%); + } + 25% { + transform: translateX(10%); + } + 50% { + transform: translateX(0%); + display: flex; + } + 100% { + transform: translateX(-50%); + display: none; + } +} + +.pageAnimation { + animation: pageAnimation .15s forwards; +} + +.titleAnimation { + display: flex; + animation: titleAnimation .3s forwards; +} + +.titleContentAnimation { + display: flex; + animation: titleContentAnimation .3s forwards; +} + +.insideAnimation { + animation: insideAnimation .3s forwards; +} + +.pageTextAnimation { + animation: pageTextAnimation .15s forwards; +} + +.pageSecondTextAnimation { + animation: pageSecondTextAnimation .3s forwards; +} + +.hidden { + display: none !important; +} + +/* Animation Reverse */ + +@keyframes titleAnimationReverse { + 0% { + transform: translateX(-50%) rotateY(0); + } + 50% { + transform: translateX(0%) + } + 100% { + transform: translateX(-50%) rotateY(-90deg); + display: none; + } +} + +@keyframes titleContentAnimationReverse { + 0% { + transform: translateX(-50%) rotateY(0); + } + 50% { + transform: translateX(10%) + } + 100% { + transform: translateX(-50%) rotateY(-90deg); + display: none; + } +} + +@keyframes insideAnimationReverse { + 0% { + clip-path: inset(0% 0% 0% 50%); + transform: translateX(0%); + opacity: 1; + } + 50% { + clip-path: inset(0% 0% 0% 50%); + } + 100% { + clip-path: inset(0% 0% 0% 0%); + transform: translateX(0%); + } +} + +@keyframes pageAnimationReverse { + 0% { + transform: translateX(55%) rotateY(-90deg); + padding: 0%; + display: none; + } + 1% { + display: flex; + } + 100% { + transform: translateX(0) rotateY(0); + } +} + +@keyframes pageTextAnimationReverse { + 0% { + transform: translateX(65%) rotateY(88deg); + display: none; + } + 100% { + transform: translateX(0) rotateY(0); + } +} + +@keyframes pageSecondTextAnimationReverse { + 0% { + transform: translateX(-50%); + display: none; + } + 50% { + transform: translateX(0%); + display: flex; + } + 75% { + transform: translateX(10%); + } + 100% { + transform: translateX(0%); + } +} + +@keyframes pageButtonAnimationReverse { + 0% { + opacity: 0; + } + 99% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.titleAnimationReverse { + display: flex; + animation: titleAnimationReverse .3s forwards; +} + +.titleContentAnimationReverse { + display: flex; + animation: titleContentAnimationReverse .3s forwards; +} + +.insideAnimationReverse { + animation: insideAnimationReverse .3s forwards; +} + +.pageAnimationReverse { + animation: pageAnimationReverse .15s forwards; +} + +.pageTextAnimationReverse { + animation: pageTextAnimationReverse .15s forwards; +} + +.pageSecondTextAnimationReverse { + animation: pageSecondTextAnimationReverse .3s forwards; +} + +.pageButtonAnimationReverse { + animation: pageButtonAnimationReverse .3s forwards +} + +@media screen and (min-width: 972px) and (max-width: 1024px) { + .textArea, .text { + font-size: 10px; + } +} + +@media screen and (max-width: 972px) { + .outSide { + width: 80%; + padding: 4% 0%; + } + .titleIcon { + width: 100%; + } + .titleContent span { + font-size: 10px; + } + .titleContent input { + font-size: 10px; + } + + .insideIcon { + width: 100%; + height: 40vh; + } + .inside { + padding: 9% 8%; + } + .insideHalfIcon { + display: none; + } + + .page { + width: 100%; + height: 100%; + } + .inside Button.controlPrev { + left: 10%; + bottom: 6%; + padding: 6%; + } + .inside Button.controlNext { + right: 15%; + bottom: 6%; + padding: 6%; + } + + .textArea, .text { + font-size: 10px; + } + /* Animations width < 768px */ + @keyframes titleAnimation { + 0% { + transform: translateX(-0%) rotateY(90deg); + } + 100% { + transform: translateX(-50%) rotateY(0); + } + } + @keyframes titleContentAnimation { + 0% { + transform: translateX(-0%) rotateY(90deg); + } + 100% { + transform: translateX(-50%) rotateY(0); + } + } + @keyframes insideAnimation { + 0% { + transform: translateX(0) rotateY(0); + } + 100% { + transform: translateX(50%) rotateY(-90deg); + } + } + + @keyframes pageTextAnimation { + 0% { + transform: translateX(0) rotateY(0); + } + 100% { + transform: translateX(50%) rotateY(-90deg); + display: none; + } + } + + /* Animations Reverse width < 768px */ + @keyframes titleAnimationReverse { + 0% { + transform: translateX(-60%) rotateY(0); + } + 75% { + opacity: 1; + } + 100% { + opacity: 0; + transform: translateX(0%) rotateY(90deg); + } + } + @keyframes titleContentAnimationReverse { + 0% { + transform: translateX(-60%) rotateY(0); + } + 100% { + transform: translateX(0%) rotateY(90deg); + } + } + @keyframes insideAnimationReverse { + 0% { + z-index: 5; + transform: translateX(50%) rotateY(-90deg); + } + 100% { + transform: translateX(0) rotateY(0); + } + } + + @keyframes pageTextAnimationReverse { + 0% { + transform: translateX(25%) rotateY(-20deg); + } + 100% { + transform: translateX(0) rotateY(0); + display: flex; + } + } +} + +@media screen and (max-width: 591px) { + .textArea .text { + font-size: 14px; + } +} + +@media screen and (max-height: 768px) { + .textArea, .text { + font-size: 5px; + } + .outSide { + padding: 4% 0%; + } + .titleContent span { + font-size: 5px; + } +} +@media screen and (max-height: 632px) { + .titleContent span { + font-size: 5px; + } +} +@media screen and (max-height: 392px) { + .insideIcon { + height: 40vh; + } +} diff --git a/src/react/Book.module.css.d.ts b/src/react/Book.module.css.d.ts new file mode 100644 index 00000000..06d3d007 --- /dev/null +++ b/src/react/Book.module.css.d.ts @@ -0,0 +1,38 @@ +// This file is automatically generated. +// Please do not change this file! +interface CssExports { + actions: string; + blink: string; + bookContainer: string; + bookImages: string; + bookWrapper: string; + controlNext: string; + controlPrev: string; + hidden: string; + inside: string; + insideAnimation: string; + insideAnimationReverse: string; + insideHalfIcon: string; + insideIcon: string; + messageFormattedString: string; + outSide: string; + page: string; + pageAnimation: string; + pageAnimationReverse: string; + pageButtonAnimationReverse: string; + pageSecondTextAnimation: string; + pageSecondTextAnimationReverse: string; + pageTextAnimation: string; + pageTextAnimationReverse: string; + text: string; + textArea: string; + titleAnimation: string; + titleAnimationReverse: string; + titleContent: string; + titleContentAnimation: string; + titleContentAnimationReverse: string; + titleIcon: string; + uneditable: string; +} +declare const cssExports: CssExports; +export default cssExports; diff --git a/src/react/Book.stories.tsx b/src/react/Book.stories.tsx new file mode 100644 index 00000000..f772122d --- /dev/null +++ b/src/react/Book.stories.tsx @@ -0,0 +1,25 @@ +import { Meta, Story } from '@storybook/react' +import Book, { BookProps } from './Book' + +export default { + title: 'Book', + component: Book, +} as Meta + +const Template: Story = (args) => + +export const Default = Template.bind({}) +Default.args = { + textPages: [ + 'Page 1: This is some text for page 1.', + 'Page 2: This is some text for page 2.', + 'Page 3: This is some text for page 3.', + 'Page 4: This is some text for page 4.', + 'Page 5: This is some text for page 5.', + ], + editable: true, + onSign: (pages, title) => console.log('Signed with pages:', pages, 'Title:', title), + onEdit: (pages) => console.log('Edit with pages:', pages), + onClose: () => console.log('Closed book'), + author: 'Author' +} diff --git a/src/react/Book.tsx b/src/react/Book.tsx new file mode 100644 index 00000000..0c53a221 --- /dev/null +++ b/src/react/Book.tsx @@ -0,0 +1,323 @@ +import React, { useState, useRef, useEffect, useCallback } from 'react' +import insideIcon from './book_icons/book.webp' +import insideHalfIcon from './book_icons/book-half.webp' +import singlePageInsideIcon from './book_icons/notebook.webp' +import titleIcon from './book_icons/title.webp' +import styles from './Book.module.css' +import Button from './Button' +import MessageFormattedString from './MessageFormattedString' + +export interface BookProps { + textPages: string[] + editable: boolean + onSign: (textPages: string[], title: string) => void + onEdit: (textPages: string[]) => void + onClose: () => void + author: string +} + +const Book: React.FC = ({ textPages, editable, onSign, onEdit, onClose, author }) => { + const [pages, setPages] = useState(textPages) + const [currentPage, setCurrentPage] = useState(0) + const [isSinglePage, setIsSinglePage] = useState(window.innerWidth < 972) + const [insideImage, setInsideImage] = useState(window.innerWidth < 972 ? singlePageInsideIcon : insideIcon) + const [animateInsideIcon, setAnimateInsideIcon] = useState(0) + const [animatePageIcon, setAnimatePageIcon] = useState(0) + const [animateTitleIcon, setAnimateTitleIcon] = useState(0) + const [signClickedOnce, setSignClickedOnce] = useState(false) + const textAreaRefs = useRef([]) + const inputRef = useRef(null) + + const handleResize = useCallback(() => { + const isSingle = window.innerWidth < 972 + setIsSinglePage(isSingle) + setInsideImage(isSingle ? singlePageInsideIcon : insideIcon) + }, []) + + useEffect(() => { + handleResize() + window.addEventListener('resize', handleResize) + return () => window.removeEventListener('resize', handleResize) + }, [handleResize]) + + useEffect(() => { + const index = currentPage * (isSinglePage ? 1 : 2) + if (textAreaRefs.current[index]) textAreaRefs.current[index].focus() + }, [currentPage, isSinglePage]) + + useEffect(() => { + if (signClickedOnce) { + setTimeout(() => { + inputRef.current!.focus() + }, 300) // wait for animation + } + }, [signClickedOnce]) + + const handlePageChange = (direction: number) => { + setCurrentPage((prevPage) => Math.min(Math.max(prevPage + direction, 0), Math.ceil(pages.length / (isSinglePage ? 1 : 2)) - 1)) + } + + const updatePage = (index, text) => { + setPages((prevPages) => { + const updatedPages = [...prevPages] + updatedPages[index] = text + return updatedPages + }) + } + + const handleTextChange = (e, pageIndex) => { + const text = e.target.value + updatePage(pageIndex, text) + + const nextPageIndex = pageIndex + 1 + const isMaxLengthReached = text.length >= e.target.maxLength + + if (isMaxLengthReached) { + if (nextPageIndex < pages.length) { + setCurrentPage(Math.floor(nextPageIndex / (isSinglePage ? 1 : 2))) + } else { + setPages((prevPages) => [...prevPages, '']) + setCurrentPage(Math.floor(nextPageIndex / (isSinglePage ? 1 : 2))) + } + textAreaRefs.current[nextPageIndex]?.focus() + } else if (text === '' && pageIndex > 0 && e.nativeEvent.inputType === 'deleteContentBackward') { + setCurrentPage(Math.floor((pageIndex - 1) / (isSinglePage ? 1 : 2))) + textAreaRefs.current[pageIndex - 1]?.focus() + } + } + + useEffect(() => { + const index = currentPage * (isSinglePage ? 1 : 2) + textAreaRefs.current[index]?.focus() + }, [currentPage, isSinglePage]) + + const handlePaste = (e: React.ClipboardEvent, pageIndex: number) => { + const pasteText = e.clipboardData.getData('text') + const updatedPages = [...pages] + const currentText = updatedPages[pageIndex] + const selectionStart = e.currentTarget.selectionStart || 0 + const selectionEnd = e.currentTarget.selectionEnd || 0 + + const newText = currentText.slice(0, selectionStart) + pasteText + currentText.slice(selectionEnd) + updatedPages[pageIndex] = newText + setPages(updatedPages) + + if (newText.length > e.currentTarget.maxLength) { + const remainingText = newText.slice(e.currentTarget.maxLength) + updatedPages[pageIndex] = newText.slice(0, e.currentTarget.maxLength) + setPages(updatedPages) + + const nextPageIndex = pageIndex + 1 + + if (nextPageIndex < pages.length) { + handlePasteRemainingText(remainingText, nextPageIndex) + } else { + setPages((prevPages) => [...prevPages, remainingText]) + setCurrentPage(Math.floor(nextPageIndex / (isSinglePage ? 1 : 2))) + focusOnTextArea(nextPageIndex) + } + } + } + + const handlePasteRemainingText = (remainingText: string, nextPageIndex: number) => { + const updatedPages = [...pages] + updatedPages[nextPageIndex] = remainingText + setPages(updatedPages) + focusOnTextArea(nextPageIndex) + } + + const focusOnTextArea = (index: number) => { + setTimeout(() => { + textAreaRefs.current[index]?.focus() + }, 0) + } + + const handleSign = useCallback(() => { + if (editable && signClickedOnce) { + const title = inputRef.current?.value || '' + onSign(pages, title) + } + setSignClickedOnce(true) + setAnimatePageIcon(1) + setAnimateInsideIcon(1) + setTimeout(() => { + setAnimateTitleIcon(1) + }, 150) + }, [pages, onSign, editable, signClickedOnce]) + + const handleEdit = useCallback(() => { + setSignClickedOnce(false) + onEdit(pages) + }, [pages, onEdit]) + + const handleCancel = useCallback(() => { + if (signClickedOnce) { + setSignClickedOnce(false) + setAnimateTitleIcon(2) + setTimeout(() => { + setAnimateInsideIcon(2) + setTimeout(() => { + setAnimatePageIcon(2) + }, 150) + }, 150) + } else { + onClose() + } + }, [signClickedOnce, onClose]) + + const setRef = (index: number) => (el: HTMLTextAreaElement | null) => { + textAreaRefs.current[index] = el! + } + + const getAnimationClass = (animationState, baseClass) => { + switch (animationState) { + case 1: + return `${baseClass} ${styles.pageAnimation}` + case 2: + return `${baseClass} ${styles.pageAnimationReverse}` + default: + return baseClass + } + } + + const renderPage = (index) => ( +
+ {editable ? ( +